-->

C++ : Sorting Bilangan Menggunakan Algortima Brute Force

            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





LihatTutupKomentar