Pada tutorial ini akan dibahas mengenai
algoritma brute force, algoritma ini merupakan sebuah pendekatan yang lempang
(straightforward) untuk memecahkan suatu masalah yang biasanya didasarkan pada
pernyataan masalah dan definisi konsep yang dilibatkan, algoritma ini dapat
memecahkan masalah dengan sangat sederhana langsung dengan cara yang jelas.
Tutorial ini
menggunakan kasus mencari bilangan prima dan sorting menggunakan C++. Untuk
memulainya, lakukan langkah-langkah berikut :
1. Jika belum
memiliki compiler c++ nya, maka harus mendownload terlebih dahulu ( disini saya
menggunakan dev c++ ).
2. Jika sudah
ketikkan listing program berikut :
LISTING PROGRAM
#include<stdio.h>
#include<conio.h>
#include<iostream>
void prima(),sort();
main(){
start:
int x;
printf ("\n Nama \t: Masyeni");
printf ("\n Kelas \t: 3IA10");
printf ("\n NPM \t: 55413344 \n");
printf ("\n \t \t Algoritma Brute Force \n");
printf ("\n ===================================================");
printf ("\n \t 1. Bilangan Prima");
printf ("\n \t 2. Sorting Bilangan");
printf ("\n \t 3. Exit");
printf ("\n ================================================
\n");
printf ("\n Masukkan Pilihan (1-3) : ");
scanf ("%d",&x);
switch(x){
case
1 : prima();
goto start;
case
2 : sort();
goto start;
case 3 : return 0;
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;
printf ("\t \t \t Bilangan Prima \n \n \n");
printf ("Masukkan bilangan yang ingin diinput:
");
scanf("%d",&bil);
printf
("\nBilangan prima dari %d adalah \n", 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 sort(){
int i,j,temp,n,bil[100];
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]);
}
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
("\nHasil sorting adalah: \n");
for(i=0;i<n;i++){
printf ("%d",bil[i]);
if
(i!= n-1){
printf (", ");
}
}
getch();
}
|
LOGIKA PROGRAM
Apabila
sudah mengetikkan programnya, disimpan dengan nama primasort.cpp
§ #include
<stdio.h> merupakan Library untuk input/output pada program,tanpa menyertakan
code ini kita tidak bisa melakukan pengoperasian
input dan output.
§ #include<conio.h> merupakan fungsi library console
i/o untuk memanggil fungsi input output untuk menggunakan perintah getch.
§ #include<iostream>merupakan file header yang menjadi
standard library dari c++ yang memiliki fungsi cin dan cout.
§ void prima(),sort(); merupakan prosedur dengan menggunakan void
yang terdiri dari prosedur prima(), dan sort(). Fungsi tersebut tidak
mengembalikan suatu nilai keluaran yang di dapat dari hasil proses fungsi
tersebut.
§ main(){ merupakan fungsi utama dari sebuah program yang dieksekusi pertama
kali dengan nama start.
§ start:
int x;
printf
("\n Nama \t: Masyeni");
printf
("\n Kelas \t: 3IA10");
printf
("\n NPM \t: 55413344 \n");
printf
("\n \t \t Algoritma Brute Force \n");
printf
("\n ================================================");
printf
("\n \t 1. Bilangan Prima");
printf
("\n \t 2. Sorting Bilangan");
printf
("\n \t 3. Exit");
printf
("\n ============================================= \n");
printf
("\n Masukkan Pilihan (1-3) : ");
scanf
("%d",&x);
merupakan
isi dari fungsi main yang akan menampilkan keluaran nama, kelas, npm dan
tampilan menu untuk di pilih yang nantinya pilihan tersebut akan masuk pada
scanf yang akan menjadi variable x.
§ switch(x){, merupakan sebuah perulangan pada c++ yang disini digunakan pada
menu yang dibuat sebelumnya, perintah ini mendeklarasikan menu dalam bentuk
prosedur yang akan dipanggil sesuai pilihan.
§ case 1 : prima();
goto start;
case 2 : sort();
goto start;
case 3 : return 0;
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;
}
Case
1 digunakan untuk memanggil prosedur prima()
Case 2 digunakan untuk
memanggil prosedur sort()
§ void prima(){
int bil,j;
printf ("\t \t \t Bilangan
Prima \n \n \n");
printf ("Masukkan bilangan yang
ingin diinput: ");
scanf("%d",&bil);
printf
("\nBilangan prima dari %d adalah \n", bil);
merupakan
isi dari prosedur prima() yang isinya untuk mencetak keluaran dengan teks
berupa bilangan prima dan masukkan bilangan prima, ketika masukan bilangan
prima, fungsi ini akan mencari hasilnya dengan menggunakan perulangan
§ for.
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();
}
Merupakan sebuah
perulangan for untuk menentukan bilangan prima yang di inputkan dengan
perulangan ini diberi nilai awal j=2 karena bilangan prima dimulai dari 2, j
bernilai kurang dari sama dengan bil dan j bertambah atau increment 1.
If disini berfungsi
melakukan perhitungan modular untuk mengetahui sisa pembagi dari bilangan itu
sendiri agar kita dapat mengetahui dimana yang termasuk ke bilangan primanya.
§ void sort(){
int
i,j,temp,n,bil[100];
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]);
}
Merupakan
isi dari procedure sort() yang didalamnya terdapat variable local I, j, temp n
bil yang bertipe data integer dan index array bil[100]. Terdapat perulangan for
untuk menunjukkan berapa saja data yang akan dimasukkan.
§ 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 ("\nHasil sorting adalah:
\n");
for(i=0;i<n;i++){
printf
("%d",bil[i]);
if (i!= n-1){
printf
(", ");
}
}
getch();
}
Merupakan perulangan for lanjutan dari procedure
sort() yang berfungsi melakukan proses sorting dimana proses sorting dilakukan
dengan mengurutkan nilai dari yang terkecil hingga terbesar.
For untuk nilai var awal i=0 akan berhenti
hingga nilai var I kurang dari nilai n-1 increment dan for untuk nilai j sama
dengan n-1 akan berhenti hingga nilai j lebih dari I decrement .
Fungsi if berguna untuk melihat nilai bil[i] dan
bil[j] yang akan menghasilkan tampilan perintah printf().
Getch, Merupakan syntax untuk membaca hasil langsung dari console.
OUTPUT
§ Tampilan awal ketika run
§ Tampilan
pilihan 1. Bilangan prima
§ Tampilan
pilihan 2. Sorting Bilangan