Pada pembuatan program kali ini, kita akan mencoba untuk mencari nilai minimal dan maksimal dari beberapa bilangan.
Kita akan mencoba menentukan nilai minimum dan maksimum menggunakan algoritma Divide and Conquere.
Langkah yang pertama pada pembuatan program kali ini adalah dengan membuat terlebih dahulu header programnya.
#include
Berikutnya membuat deklarasi yang akan digunakan pada program tersebut dan mengumpulkan atau menentukan tipe data yang akan dugunakan oleh variable tersebut dalam program yang akan kita buat.
int jum, mxb, mnb;
int tab[10];
langkah berikutnya adalah kita akan menentukan atau membuat prosedur-prosedur program tersebut.Untuk prosedur yang pertama kita akan mencetak dan menyimpan nilai dari variable yang telah kita gunakan.
void input()
{
int i;
printf("Masukkan jumlah : ");
scanf("%d", &jum);
for(i = 1; i <= jum; i++)
{
printf("Angka ke- %d : ",i);
scanf("%d", &tab[i]);
}
}
Prosedur diatas akan meminta kita untuk memasukkan berapa banyak nilai yang akan kita masukkan lalu dia akan menyimpannnya dalam variable jum.
Lalu program itu akan melakukan perintah perulangan sebanyak nilai yang kita input sebelumnya.Pada program tersebut kita akan mendapatkan menu awal untuk memasukkan jumlah angka / bilangan sebanyak yang kita inginkan.
Selanjutnya kita membuat prosedur untuk menentukan nilai maksimium dari nilai yang telah kita input sebelumnya.
int cekmx(int tb[10], int a, int b)
{
int k, max1, max2;
if(a == b)
{
mxb = tb[a];
}
else
{
if(a == b - 1)
{
if(tb[a] <>
mxb = tb[b];
else
mxb = tb[a];
}
Prosedur diatas akan menentukan nilai maksimal dari nilai yang telah kita input sebelumnya dengan syarat dan kondisi yang telah ditentukan untuk memenuhi sebagai nilai maksimal (nilai yang paling besar).
Berikutnya kita akan mencoba mengurutkan bilangan tersebut satu-satu untuk menentukan nilai maksimum dari bilangan yang ada.
else
{
k = (a + b) / 2;
max1 = cekmx(tb, a, k);
max2 = cekmx(tb, k + 1, b);
if(max1 <>
mxb = max2;
else
mxb = max1;
}
}
return mxb;
Prosedur diatas akan mencari nilai maksimum dari tiap-tiap atau masing-masing bilangan yang telah kita input tadi secara berurutan (satu persatu).
Program tersebut akan membandingkan nilai yang ada untuk menentukan nilai yang kita cari adalah benar-benar nilai maksimum.
Prosedur selanjutnya adalah prosedur untuk menentukan atau mencari nila maksimum dari bilangan yang telah kita input tadi.
}
int cekmn(int tb[10], int a, int b)
{
int q, mn1, mn2;
if(a == b)
{
mnb = tb[a];
}
else
{
if(a == b - 1)
{
if(tb[a] <>
mnb = tb[a];
else
mnb = tb[b];
}
Pada prosedur bagian ini sama seperti debgan prosedur untuk mencari nilai maksimum.
Program ini akan mengecek satu persatu bilangan untuk mencari nilai minimum dari bilangan yang ada.
Selanjutnya adalah untuk mengurutkan bilangan tersebut satu persatu untuk mencari nilai minimum dari bilangan tersebut.
else
{
q = (a + b) / 2;
mn1 = cekmn(tb, a, q);
mn2 = cekmn(tb, q + 1, b);
if(mn1 <>
mnb = mn1;
else
mnb = mn2;
}
}
return mnb;
}
Prosedur ini akan mencari dengan cara membandingkan nilai yang ada secara satu persatu,jika sudah ada bilangan yang memenuhi kondisi di atas maka angka atau bilangan tersebut adalah bilangan yang bernilai minimum dan bilangan tersebut akan dikembalikan pada variable mnb.
Prosedur yang terakhir adalah prosedur untuk menyimpan,mencetak hasil dari program yang telah kita buat tadi.
Untuk mencoba program tersebut dapat berjalan dengan baik atau tidak,maka kita compile terlebih dahulu programnya dengan menekan tombol Alt+F9,
Jika tidak terdapat error pada program tersebut kita dapat melanjutkan untuk melihat hasil (output) dari program tersebut dengan menjalankan (Run) program tersebut dengan menekan Ctrl+F9.Untuk membersihkan layer pada saat kita menjalankan program tersebut maka kita gunakan CLRSCR untuk membersihkan layer tersebut.
Tidak ada komentar:
Posting Komentar