Berikut adalah listing programnya.
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
·
Menggunakan library dasar pada bahasa C
yang bertujuan agar dapat meggunakan fungsi Input output.
void prima(), bsort();
- Pernyataan tersebut merupakan pendeklarasian method prima dan bsort yang tidak membalikan nilai dengan tipe void.
main()
{
start:
int x;
clrscr();
printf("\n\tAlgoritma
Brute Force\n");
printf("\n\t=======================");
printf("\n\t1.
Pencarian Bilangan Prima");
printf("\n\t2.
Sorting Bilangan");
printf("\n\t3.
Exit");
printf("===========================");
printf("\n\tMasukkan Pilihan (1-3) : ");
scanf("%d",&x);
- Mendeklarasikan variabel x dengan tipe data int kemudian membersihkan layar, lalu akan menampilkan output sesuai pada pernyataan printf lalu pada akhir listing di atas akan meminta memasukan pilihan yang di tamping pada variabel x
switch(x)
{
case 1:prima();
goto start;
case 2:bsort();
goto start;
case 3:return 0;
default:
clrscr();
printf("\n\n\n\n\n\n\t\t\tAnda
Salah Memasukkan Input!");
printf("\n\t\tProgram
akan di restart setelah Anda menekan tombol Enter");
getch();
goto start;
}
·
Input dari tahapan sebelum ini adalah
memasukan nilai untuk variabel x, lalu pada tahap ini variabel tadi akan
memasuki proses percabangan menggunakan switch. Jika memasukan input 1 maka
akan dijalankan method prima(), jika memilih 2 maka akan dijalankan methode
bsort. Sedangkan 3 akan membalikan nilai 0 yang dimana tidak terjadi apa-apa.
Jika terjadi kesalahan input maka akan menjakankan perintah-perintah pada
bagian “default:” sampai “goto start”.
void prima()
{
int
bil,j;
clrscr();
printf("\t\t\tPencarian Bil;angan Prima\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==5)||(j==7))
{
printf("%i ",j);
}
}
getch();
}
·
Pada method prima ini terdapat
pendeklarasian variabel bil dan j dengan tipe data int, kemudian akan
membersihkan layar.
·
Lalu akan dicontohkan untuk pecarian
bilangan prima ini, saya masukan nilai = 15
·
Lalu akan dilakukan perulangan dari
2-15(angka yang saya input) menggunakan perulangan for pada bahasa C dan pada
bagian dalam for terdapat percabangan if dengan kondisi jika j tidak habis di
bagi 2, 3, 5, 7 atau j sama dengan 2, 5, 7 maka print nilai dari variabel j
tersebut.
·
Perulangan 1 : j == 2
Maka
akan diprint : “2 “, karena memenuhi kondisi j == 2.
·
Perulangan 2 : j == 3
Maka
akan diprint : “3 “, karena memenuhi kondisi j == 3.
·
Perulangan 3 : j == 4
Tidak
akan di print, karena 4%2==0. Sedangkan pada kondisi if harus > 0 dan pada
kondisi && (DAN). Pada kondisi OR juga tidak sama dengan 2/5/7.
·
Perulangan 4 : j == 5
Maka
akan diprint : “5 “, karena memenuhi kondisi j == 5.
·
Perulangan 5 : j == 6
Tidak
akan di print, karena 6%3==0. Sedangkan pada kondisi if harus > 0 dan pada kondisi
&& (DAN). Pada kondisi OR juga tidak sama dengan 2/5/7.
·
Perulangan 6 : j == 7
Maka
akan diprint : “7 “, karena memenuhi kondisi j == 7.
·
Perulangan 7 : j == 8
Tidak
akan di print, karena 8%2==0. Sedangkan pada kondisi if harus > 0 dan pada
kondisi && (DAN). Pada kondisi OR juga tidak sama dengan 2/5/7.
·
Perulangan 8 : j == 9
Tidak
akan di print, karena 9%3==0. Sedangkan pada kondisi if harus > 0 dan pada
kondisi && (DAN). Pada kondisi OR juga tidak sama dengan 2/5/7.
·
Perulangan 9 : j == 10
Tidak
akan di print, karena 10%5==0. Sedangkan pada kondisi if harus > 0 dan pada
kondisi && (DAN). Pada kondisi OR juga tidak sama dengan 2/5/7.
·
Perulangan 10 : j == 11
Maka
akan diprint : “11 “, karena memenuhi kondisi (j%2>0) && (j%3>0)
&& (j%5>0) && (j%7>0)
·
Perulangan 11 : j == 12
Tidak
akan di print, karena 12%2==0 dan 12%3==0. Sedangkan pada kondisi if harus >
0 dan pada kondisi && (DAN). Pada kondisi OR juga tidak sama dengan
2/5/7.
·
Perulangan 12 : j == 13
Maka
akan diprint : “13 “, karena memenuhi kondisi (j%2>0) && (j%3>0)
&& (j%5>0) && (j%7>0)
·
Perulangan 13 : j == 14
Tidak
akan di print, karena 14%2==0 dan 14%7==0. Sedangkan pada kondisi if harus >
0 dan pada kondisi && (DAN). Pada kondisi OR juga tidak sama dengan
2/5/7.
·
Perulangan 14 : j == 15
Tidak
akan di print, karena 15%3==0 dan 15%5==0. Sedangkan pada kondisi if harus >
0 dan pada kondisi && (DAN). Pada kondisi OR juga tidak sama dengan
2/5/7.
Maka
output dari contoh di atas adalah : “2 3 5 7 11 13 ”
void bsort()
{
int
i,j,temp,n,bil[100];
clrscr();
printf("\t\tSorting Bilangan\n\n\n");
printf("Masukkan Jumlah Bilangan : ");
scanf("%d",&n);
- Pada bagian awal ketika menjalankan method bsort akan dilakukan input nilai bilangan untuk variabel n
- Saya contohkan memasukan 3
for(i=0;i<n;i++)
{
printf("Bilangan
ke-%d\t : ",i+1);
scanf("%d",&bil[i]);
}
- Nilai pada variabel n digunakan pada perulangan for dari 0 sampai kurang dari n, yang didalamnya adalah memasukan bilangan sebanyak n kali dan menyimpanya pada variabel aray bil dengan masing-masing indeks mengikuti nilai variabel i pada perulangan tersebut.
- Nilai yang saya masukkan adalah 11, 5, 20
printf("\n");
for(i=0;i<i;i++)
{
for(j=n-1;j>i;j--)
{
if(bil[i]>bil[j])
{
temp=bil[i];
bil[i]=bil[j];
bil[j]=temp;
}
}
}
- Pada bagian ini akan dilakukan sorting bilangan-bilangan yang telah dimasukkan, dengan menggunakan perulangan pertama sebanyak jumlah bilangan yang di input. Sedangkan perulangan kedua dilakukan dari n(jumlah bilangan yang di input) sampai selama lebih besar dari i. lalu akan di cek bilangan indeks 1 apakah lebih besar dari bil indeks j. jika benar tukar bilangan dengan menggunakan variabel tambahan(temp).
- Lakukan hal tersebut sampai perilangan berhenti.
printf("Sorting : ");
for(i=0;i<n;i++)
{
printf("%d",bil[i]);
if(i!=n-1)
{
printf(",");
}
}
getch();
}
- Pada bagian ini hilangan yang telah di sorting akan di print menggunakan perulangan for. Terdapat percabangan if, jika i tidak sama dengan n – 1 maka akan di print “,”. Perulangan ini digunakan agar saat perulangan terakhir setelah mencetak bilangan tidak di akhiri dengan tanda koma(“,”).
Berikut ini adalah outputnya.
Menu Utama
Pencarian Bilangan Prima
Sorting Bilangan
untuk program di code block ada ga bang?
ReplyDelete