You are on page 1of 9

LISTING PROGRAM #include<stdio.h> #include<conio.h> #include<iostream.

h> void prima (),bsort(),kalimatriks(); main() { start : int x; clrscr(); printf ("\n \t Algoritma Brute Force \n"); printf ("\n =========================================="); printf ("\n \t 1. Pencarian Bilangan Prima"); printf ("\n \t 2. Sorting Bilangan"); printf ("\n \t 3. Perkalian Matrix"); printf ("\n \t 4. Exit "); printf ("\n ========================================= \n"); printf ("\n Masukkan Pilihan (1-4) : "); scanf ("%d",&x); switch(x) { case 1 : prima (); goto start; case 2 : bsort(); goto start; case 3 : kalimatriks(); goto start; case 4 : return 0; default : clrscr(); printf("\n \n \n \n \n \n \t \t \t Anda Salah memasukkan Input"); printf("\n \t \t Program Akan Direstart Setelah Anda Menekan Tombol Enter"); getch(); goto start; } } void prima () { int bil,j; clrscr(); printf ("\t \t \t Pencarian Bilangan Prima \n \n \n"); printf ("Masukkan Data Yang Ingin Diinput: "); scanf("%d",&bil); for(j=2;j<=bil;j++)

{ if ((j%2>0)&&(j%3>0)&&(j%5>0)&&(j%7>0) || (j==2)||(j==3)||(j==5)|| (j==7)) printf ("%i ",j); } getch(); } void bsort() { int i,j,temp,n,bil[100]; clrscr(); printf ("\t \t \t Sorting Bilangan \n \n \n" ); printf ("Masukkan jumlah bilangan: " ); scanf ("%d",&n); for(i=0;i<n;i++) { printf ("Bilangan ke-%d \t: ",i+1); scanf ("%d",&bil[i]); } printf ("\n"); for(i=0;i<n-1;i++) { for(j=n-1;j>i;j--) { if (bil[i] > bil[j]) { temp = bil[i]; bil[i] = bil[j]; bil[j] = temp; } } } printf ("Sorting:"); for(i=0;i<n;i++) { printf ("%d",bil[i]); if (i!= n-1); { printf (","); } } getch(); } void kalimatriks() { int i,j,k,temp,ordo,ma[10][10],mb[10][10],mc[10][10]; clrscr();

printf ("\t \t \t Perkalian Matrix \n \n \n"); printf ("Masukkan Ordo Matriks: "); scanf ("%d", &ordo); printf ("Matriks A: "); for(i=0;i<ordo;i++) { for(j=0;j<ordo;j++) { gotoxy((j+1)*5,i+6); scanf ("%d", &ma[i][j]); } } printf ("\n"); printf ("Matriks B: "); for(i=0;i<ordo;i++) { for(j=0;j<ordo;j++) { gotoxy((j+1)*5,i+8+ordo); scanf ("%d", &mb[i][j]); } } for(i=0;i<ordo;i++) { for(j=0;j<ordo;j++) { temp = 0; for(k=0;k<ordo;k++) { temp += ma[i][k] * mb[k][j]; } mc[i][j] = temp; } } printf ("\n \n"); printf ("Hasil Matriks A * Matriks B: "); for(i=0;i<ordo;i++) { for(j=0;j<ordo;j++) { gotoxy((j+1)*5,i+11+ordo*2); printf ("%d",mc[i][j]); } } getch(); }

OUTPUT PROGRAM

Tampilan Menu Utama

Tampilan Menu 1, Pencarian Bilangan Prima

Tampilan Menu 2, Sorting Bilangan

Tampilan Menu 3, Perkalian Matrix

Tampilan Jika Salah Memasukkan Nilai Menu

LOGIKA PROGRAM Pada pertemuan kali ini membahas tentang algoritma Brute Force yaitu algoritma yang memecahkan masalah menjadi bagian-bagian kecil yang kemudian tiaptiap bagian tersebut dicari pemecahannya (perlakuan tiap bagian sama). Setelah tiap bagian kecil tersebut terpecahkan kemuadian tiap-tiap bagian tersebut dikumpulkan kembali dan diambillah pemecahan masalah tiap bagian untuk dibandingkan kembali manakah pemecahan masalah yang terbaik. Ini merupakan sebuah program yang mengimplementasikan algoritna DnC yang telah disebutkan diata. Contohnya mencari nilai maskimal dan minimal dari sekumpulan bilangan (baik acak maupun terurut), maka sekumpulan bilangan tersebut akan dipecah-pecah menjadi bagian-bagian terkecil kemudian nantinya akan dicari nilai maksimal dan minimal bilangan tersebut.

Deklarasi program kita diawali menggunakan perintah #include yang berfungsi sebagai pengatur compiler agar dapat membaca berkas header yang nanti digunakan. Header yang digunakan berhubungan dengan library yang berikan perintah pada I/O yaitu conio.h, stdio.h dan iostream. Kemudian dilanjutkan dengan deklarasi fungsifungsi yang nantinya saya gunakan yaitu void prima (),bsort(),kalimatriks();. Ini berarti bahwa fungsi prima, bsort, dan kalimatriks tidak akan memiliki pertambahan nilai pada counter sehingga diakhir program tidak perlu ditambahkan pernyataan return 0. Program dimulai dari bagian main (), karena tidak menggunakan perintah void maka diakhir program ini harus ditambahkan perintah return 0 agar nilai counter kembali menjadi 0 dan program dapat dihentikan. Selanjutkan dideklararikan statement penunjuk yang berguna sebagai tujuan pemindahan/lompat baris pada program. Pada program ini digunakan sebuah label bernama start: yang berfungsi sebagai penunjuk lompat baris ketika kita ingin mengulang program. Lalu dideklasikan variabel x yang nantinya digunakan sebagai variabel penunjuk nnilai pilihan/switch. Ditambahkan pula perintah clrscr (); /clearscreen untuk menghapus tampilan layar sebelumnya. Pencetakan string tabel menu dilakukan dengan memberikan perintah printf (<string>);. Pada tabel menu akan dicetak Algoritma Brute Force. Pencetakan akan menjadi agak menjorok kedalam dengan maksud sebagai judul dari tamilan program. Kemudian dicetak simbol ==== dengan maksud sebagai sebuah bingkai menu. Didalam bingkai tersebut dicetak string 1. Pencarian Bilangan Prima, 2. Sorting Bilangan, 3. Perkalian Matrix, 4. Exit dan ditutup dengan pencetakan simbol ==== yang berfungsi sebagai penutup kotak menu. Dibawah string tersebut akan dicetak String Masukkan Pilihan (1-4) :. Setelah itu akan dimunta sebuah input nilai sesuai dengan nilai dari pilihan menu. Nilai ini dimasukkan dalam variabel x yang bernilai integer, jika input berupa alfabet maka program akan berhenti karena error. Nilai inputan (variabel x) tadi akan diolah dalam sebuah perintah kondisi/seleksi. Perintah yang digunakan adalah Switch, nilai input tadi akan disesuaikan dengan key/kunci dari case/masalah yang ada. Sesuai dengan bentuk menu, maka jika user memilih 1 maka akan masuk dalam case 1 yang berisikan pemanggilan methode prima (berisikan pencarian bilangan prima). Jika user memilih 2 maka akan masuk dalam case 2 yang berisikan pemanggilan methode bsort (berisikan pengurutan bilangan). Jika user memilih 3 maka akan masuk dalam case 3 yang berisikan

pemanggilan methode kalimatriks (berisikan perkalian dua buah martix). Jika user memilih 4 maka akan masuk dalam case 4 yang berisikan perintah mengakhiri program. Namun jika nilai input selain 1-4 maka akan keluar pernyataan salah input. Untuk lebih jelasnya akan saya jelaskan berdasarkan case-case yang ada. Pilihan 1: Jika user memasukkan pilihan 1 maka program akan membaca case 1 pada blog program switch. Case 1 berisikan pemanggilan methode prima. Methode prima ini berisikan pencarian bilangan prima. Methode diawali dengan penamaan methode. Namanya adalah prima, dengan atribut void yang berarti program counter tetap bernilai 0 sehingga program berhenti diakhir methode. Dilanjutkan deklarasi variable bil dan j sebagai integer dan dipanggil perintah clrscr untuk membersihkan layar. Pada baris awal akan dicetak string Pencarian Bilangan Prima agak menjorok kedalam, pencetakan ini bertujuan menandakan tulisan ini sebagai judul sub-program. Lalu dicetak Masukkan Data Yang Ingin Diinput yang dilanjutkan dengan permintaan kepada user untuk memasukkan seberapa banyak data yang ingin diinput. Masukkan data tersebut dimasukkan dalam variable bil dengan tipe Integer. Dalam pencarian bilangan prima, digunakan perintah for bersarang if. Jadi dideklarasikan variabel j bernilai 2, jika nilai modulo J dengan 2 dan modulo J dengan 3 dan dan modulo J dengan 5 dan modulo J dengan 7 bernilai benar semua kemudian dicek kembali apakah benar J bernilai 2 atau J bernilai 3 atau J bernilai 5 atau J bernilai 7. Kemudian akan dicetak nilai j, selanjutnya nilai J akan bertambah 1 nilai (menjadi j = 3) dan program logika dijalankan lagi hingga nilai j sama dengan nilai dalam variabel bil. Algoritma ini akan menyeleksi apakah suatu bilangan termasuk sebuah bilangan prima. Jika dia bilangan prima maka akn dicetak namun jika bukan bilangan prima akan ditangguhkan pencetakannya. Setelah methode selesai, akan kembali kedalam blok program case 1. Dari sini akan dipanggil label start yang berfungsi sebagai pengulang ke tampilan menu. Pilihan 2: Jika user memasukkan pilihan 2 maka program akan membaca case 2 pada blok program switch. Case 2 berisikan pemanggilan methode bsort (singkatan dari bubble sort yang merupakan salah satu teknik mengurutkan suatu bilangan. Methode bsort ini

berisikan pengurutan bilangan dari yang erkecil hingga yang terbesar. Methode diawali dengan penamaan methode. Namanya adalah bsort, dengan atribut void yang berarti program counter tetap bernilai 0 sehingga program berhenti diakhir methode. Dilanjutkan deklarasi variable i, j, temp,dan n sebagai integer, lalu sebuah array berquota 100 bernama bil dan dipanggil perintah clrscr untuk membersihkan layar. Pada baris awal akan dicetak string Sorting Bilangan agak menjorok kedalam, pencetakan ini bertujuan menandakan tulisan ini sebagai judul sub-program. Lalu dicetak Masukkan Jumlah Bilangan yang dilanjutkan dengan permintaan kepada user untuk memasukkan seberapa banyak data yang ingin diinput. Masukkan data tersebut dimasukkan dalam variable n dengan tipe Integer. Karena akan dimasukkan data sebanyak n buah, maka digunakan peruntah perulangan for. Didalam perulangan tersebut dicetak string Bilangan ke- (ututan input user) dilanjutkan dengan memasukkan nilai bilangan tersebut. Masukkan nilai haruslah berupa integer agar program dapat berlanjut ketahap selanjutnya. Setelah memasukkan nilai, mulai lah disorting/diurutkan bilangan-bilangan tersebut. Jadi Bilangan tersebut akan dibagi dua bagian yang kemudian dimasukkan kedalam dua buah array. Dari kedua array ini akan di ujikan satu persatu manakan nilai yang lebih besar dan mana yang lebih kecil. Setelah selesai di urutkan maka bilangan tersebut dimasukkan dalam var bil. Langkah selanjutnya adalah mencetak nilai-nilai dalam variabel array bil. Karena nilai telah diurutkan dan nilai array dari bil terkecil merupakan nilai bilangan terkecil maka ketuka dicetak akan menghasilkan pengurutan bilangan dari nilai terkecil ke terbesar. Setelah methode selesai, akan kembali kedalam blok program case 2. Dari sini akan dipanggil label start yang berfungsi sebagai pengulang ke tampilan menu. Pilihan 3: Jika user memasukkan pilihan 3 maka program akan membaca case 3 pada blok program switch. Case 3 berisikan pemanggilan methode kalimatriks. Methode kalimatriks ini berisikan pembuatan dua buah matriks kemudian matriks tersebut dikalikan. Methode diawali dengan penamaan methode. Namanya adalah kalimatriks, dengan atribut void yang berarti program counter tetap bernilai 0 sehingga program berhenti diakhir methode. Dilanjutkan deklarasi variable i, j, k, temp, dan ordo sebagai integer, lalu variabel array multidimensi bernama ma, mb, mc berquota 10*10 bernama

bil dan dipanggil perintah clrscr untuk membersihkan layar. Pada baris awal akan dicetak string Perkalian Matrix agak menjorok kedalam, pencetakan ini bertujuan menandakan tulisan ini sebagai judul sub-program. Lalu dicetak Masukkan Ordo Matriks yang dilanjutkan dengan permintaan kepada user untuk memasukkan seberapa banyak data yang ingin diinput. Masukkan data tersebut dimasukkan dalam variable ordo dengan tipe Integer. Selanjutnya adalah pembuatan matriks pertama. Setelah dicetak string Matriks A maka program masuk dalam looping for yang dikombinasikan dengan array. Hal ini berfungsi sebagai pemasukkan nilai array yang nantinya dimasnipulasikan sebagai nilai matriks. Setelah memasukkan nilai Matriks A maka akan diminta untuk memasukkan nilai Mantriks B. Proses yang dilakukan masih sama seperti pembuatan matriks A. Setelah iti kedua matriks akan dipanggil secara bersamaan. Proses perkalian matriks bisa dijabarkan baris satu matriks A dikalikan kolom satu matriks B dan seterusnya. Setelah dilakukan proses perkalian, maka akan dicetak hasil perkalian tersebut. Setelah methode selesai, akan kembali kedalam blok program case 2. Dari sini akan dipanggil label start yang berfungsi sebagai pengulang ke tampilan menu. Pilihan 4: Berisikan perintah Return 0 yang berfungsi sebagai penghenti program (sesuai dengan nama menunya Exit). Default : Jika User salah memasukkan nilai menu, maka program akan masuk pada pilihan default. Disini akan masuk layar baru (pembersihan layar karena perintah clrscr) kemudian akan dicetak string Anda Salah memasukkan Input ditingah-tengah layar. Dan dibawahnya ada tulisan Program Akan Direstart Setelah Anda Menekan Tombol Enter. Sesuai dengan tulisan tersebut, program akan direstart setelah user menekan tombol enter.

You might also like