Laporan Akhir Lab TI PAA Pertemuan 1 Pengenalan Perancangan & Analisis Algoritma
Listing Program
#include<stdio.h>
#include<conio.h>
#define size 99
void sort (int a[],int siz)
{
int pass,hold,j;
for(pass=1;pass<=siz-1;pass++)
{
for(j=0;j<=siz-2;j++){
if(a[j+1]<a[j=2]){
hold = a[j+1];
a[j+1]=a[j+2];
a[j+2]=hold;
}}}}
main()
{
int x[size],i,uang,n,k,hasil[size];
printf("PAA-ALGORITMA GREEDY\n");
printf("\nMasukan berapa jenis koin : ");
scanf("%d",&n);
printf("\n\nMasukan Jenis Koin : \n");
for(i=1;i<=n;i++)
{
printf("Koin ke %d : ",i);
scanf("%d",&x[i]);
}
sort(x,n);
printf("\nKoin yang tersedia : \n");
for(i=1;i<=n;i++)
{
printf("%d",x[i]);
printf("\n");
}
printf("\n");
printf("\nMasukan Nilai yang dipecah : ");
scanf("%d",&uang);
printf("\n");
for(i=1;i<=n;i++)
{
hasil[i]=uang/x[i];
uang=uang%x[i];
k=uang%x[i];
}
for(i=1;i<=n;i++)
{
printf("Koin %d",x[i]);
printf("-an sebanyak : %d",hasil[i]);
printf("\n\n");
}
if(k!=0){
printf("Tidak ada Solusi");
}
else{
printf("Ada Solusi");
}
getch();
return 0;
}
Logika Program
Pada pertemuaan kali ini saya akan membuat logika dar program yang saya buat. Disini saya menggunakan bahasa C++. Berikut adalah logikanya.
#include<stdio.h>
Dalam c++ jika kita menginginkan penggunaan input dan output, atau bisa diartikan sebagai standard library yang berfungsi untuk I/O package maksudnya digunakan jika kita ingin pada program kita menggunakan fungsi standard input atau output bisa dikatakan seperti portable input/output package. Tanpa menggunakan library ini, kita tidak bisa menggunakan perintah-perintah input/output pada program kita.
#include<conio.h>
Pernyataan conio.h adalah library pada C yang digunakan untuk mengkoneksikan pernyataan clrscr() dengan program yang kita buat. Tanpa menggunakan library ini, kita tidak bisa menggunakan fungsi prototype seperti: gotoxy(), clrscr(), clreol(). Dan juga file header ini berfungsi untuk menampilkan hasil antarmuka kepada pengguna.
#define size 99
Library di atas berguna untuk menentukan size dari inputan banyak datanya adalah 99, artinya jika data lebih banyak dari 99, maka program akan berhenti mengeksekusi.
void sort (int a[],int siz)
Pernyataan diatas adalah main procedure (prosedur utama dalam program ini). Pada program ini, program utama berbentuk prosedur untuk mengurutkan data yang kita input, disini yang akan diurutkan adalah variable masukan dari int[] dan int.
{
Kurung kurawal pertama digunakan untuk memulai membuat program.
int pass,hold,j;
for(pass=1;pass<=siz-1;pass++){
for(j=0;j<=siz-2;j++){
if(a[j+1]<a[j+2]){
hold = a[j+1];
a[j+1]=a[j+2];
a[j+2]=hold;
Ini merupakan perulangan pass dengan nilai awal 1, hingga pass lebih kecil sama dengan siz lalu pass berulang secara increment . Iterasi i dengan nilai awal i=0, hingga i lebih kecil sama dengan variable siz-2 dan i berulang secara increment. Serta ada penyeleksian kondisi dimana jika a indeks ke i+1 lebih kecil dari a indeks i+2, maka akan memberi nilai pada hold.
main()
Pernyataan di atas digunakan sebagai badan program. Fungsinya sama seperti public.static.void.main(String args[]) { pada bahasa pemrograman java.
int x[size],i,uang,n,k,hasil[size];
Pernyataan di atas digunakan untuk mendefinisikan variable yang akan digunakan dalam programnya. Tanda kurung siku [ ] menandakan variable tersebut bertipe array.
printf("\nMasukan berapa jenis koin : ");
Pernyataan printf di atas digunakan untuk mencetak tulisan yang ada diantara tanda kutip “ ”. \n digunakan untuk member jeda (enter) pada saat program dieksekusi.
scanf("%d", &n);
Pernyataan scanf digunakan untuk menyimpan angka yang kita input ketika program dieksekusi. Disini terdapat %d yang mengartikan data inputan akan ditampilkan dalam bentuk decimal, dan &n mempunyai arti data inputan akan disimpan sementara pada variable n.
printf("\n\nMasukan Jenis Koin : \n");
for (i=1;i<=n;i++){
printf("Koin ke %d : ",i);
scanf(" %d", &x[i]);
Pertama kita akan mencetak kalimat yg di dalam tanda kutip, lalu kita input jumlah koin yang diinginkan. Misalnya jenis koin yang kita input = 3. Maka untuk i sama dengan 1, i kurang dari sama dengan n, maka i akan bertambah 1. Maka selanjutnya akan menjalankan perintah menampilkan koin ke 1 lalu kita input angka begitupun seterusnya hingga koin ke 3.
sort(x,n);
printf("\nKoin yang tersedia (Rp): \n");
Setelah kita memasukkan jenis koin yang kita inginkan, maka program tersebut akan mencetak secara berurutan dari nominal terkecil hingga nominal terbesar, dan \n digunakan untuk memberi jeda atau enter.
for(i=1;i<=n;i++)
untuk I sam dengan 1, dan I kurang dari sama dengan n, maka I akan bertambah.
printf("%d",x[i]);
printf("\n");
Mencetak hasil dari angka atau jumlah koin yang kita inputkan tadi dan memberikan jeda(enter) untuk syntak berikutnya.
printf("\nMasukan Nilai yang dipecah : Rp ");
mencetak kalimat yang berada di dalam tanda kutip, lalu diberikan jeda untuk memproses syntak berikutnya.
scanf("%d", &uang);
printf("\n");
Digunakan untuk menyimpan angka yang kita input ketika program dieksekusi. %d yang mengartikan data inputan akan ditampilkan dalam bentuk decimal, dan &uang mengartikan data inputan akan disimpan sementara pada variable uang lalu memberikan jeda(enter) kepada syntak selanjutnya.
for(i=1;i<=1;i++) {
hasil[i]=uang/x[i];
uang=uang%x[i];
k=uang%x[i]; }
Pernyataan for di atas digunakan sebagai kondisi perulangan pada program, sedangkan pernyataan hasil[i]=uang/x[i]; digunakan sebegai rumus perhitungan untuk mendapatkan kombinasi koin apa saja yang digunakan untuk menukarkan koin yang ingin kita tukarkan dengan koin yang tersedia, lalu pernyataan uang=uang%x[i]; digunakan untuk menentukan berapa banyaknya kombinasi koin dalam pertukaran koinnya.
for(i=1;i<=1;i++)
untuk I sama dengan 1, I kurang dari sama dengan 1 maka I akan bertambah.
printf("hasil algoritma greedynya adalah : \n");
mencetak kalimat yang berada di dalam tanda kutip setelah itu membuat jeda(enter).
printf("koin %d", x[i]);
printf("-an sebanyak : %dkeping", hasil[i]);
printf("\n \n");
Untuk mencetak koi n yang kita inputkn sebelumnya untuk di pecah dengan hasil perhitungan dari rumus hasil[i]=uang/x[i]. Dan \n untuk memberikan jeda atau enter ke perintah selanjutnya.
if(k!=0){
printf("tidak ada solusi"); }
else{
printf("Ada solusi"); }
Jika k tidak sama dengan 0, maka pada layar akan muncul tulisan Tidak Ada Solusi namun jika k sama dengan 0 maka yang keluar adalah tulisan Ada Solusi.
getch();
Berguna unutk membaca sebuah karakter, bisa juga membaca tombol, getch() tidak akan menampilkan karakter dari tombol yang ditekan. Sebuah getch() bisa pula digunakan untuk menunggu sembarang tombol ditekan. Pada keadaan seperti ini, hasil dari fungsi ini tidak perlu diletakkan ke variable, atau dipascal dapat diartikan sebagai readln
return 0;
Angka 0 ini akan dikembalikan kepada sistem operasi. Nilai ini digunakan oleh sistem operasi untuk disimpan di variabel ERRORLEVEL pada MS DOS, dimana 0 artinya ‘sukses’.
}
Kurung kurawal terakhir untuk mengakhiri program yang kita buat.
Output
Belum ada Komentar untuk "Laporan Akhir Lab TI PAA Pertemuan 1 Pengenalan Perancangan & Analisis Algoritma"
Posting Komentar