Pada tutorial
ini akan dibahas mengenai algortima divide and conquer dimana algoritma ini
merupakan strategi pemecahan masalah yang besar dengan cara melakukan pembagian
masalah yang besar menjadi beberapa bagian yang lebih kecil secara rekursif.
Algortima ini memiliki 3 proses utama yaitu : Divide, Conquer dan Combine.
Tutorial ini 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>
int a[100];
int max, min;
void maxmin(int i, int j){
int max1,
min1, mid;
if (i==j){
max=min=a[i];
}
else
if(i==j-1){
if(a[i]>a[j]){
max=a[i];
min=a[j];
}
else{
max=a[j];
min=a[i];
}
}
else{
mid=(i+j)/2;
maxmin(i,
mid);
max1=max;
min1=min;
maxmin(mid+1,j);
if(max<min1)
max=max1;
if
(min>min1)
min=min1;
}
}
int main(){
int i, num;
printf("\n\t\t\tMaxmin
Dengan Minimum\n");
printf("Masukkan
Banyak Angka : ");
scanf("%i",
&num);
printf("\n
Masukkan Angka-angkanya : ");
for (i=0;
i<num;i++){
scanf("%i",&a[i]);
}
max=a[0];
min=a[0];
maxmin(0,
num-1);
printf("Maximum
Angka : %i\n",max);
printf("Minimum
Angka : %i\n",min);
getch();
return 0;
}
|
LOGIKA PROGRAM
§ #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.
§ int a[100];
int max,
min;
Pendeklarasian
variable a sebagai type integer dalam bentuk array, max dan min dengan type
integer.
§ void maxmin(int i, int j){
Merupakan
Main procedure atau bisa dibilang
sebagai program utama berbentuk prosedur untuk mengurutkan data
yang akan kita masukan (input).
§ int i, num;
Merupakan
peendeklarasian variabel I dan num sebagai integer.
§ printf("Masukkan Banyak Angka : ");
printf
adalah untuk menampilkan output dengan type data string yang dideklarasikan
yaitu “Masukkan Banyak Angka : “ pada saat program dijalankan.
§ scanf("%i", &num);
scanf
adalah membaca input-an dari dari variabel yang diinput yaitu variabel num dengan &num. %i berfungsi
untuk menentukan variabel num yg diinput bertipe data integer atau decimal.
§ for (i=0; i<num;i++){
scanf("%i",&a[i]);
}
Merupakan
perulangan for yang mendeklarasikan nilai awal variabel i=0, nilai i lebih
kecil dari num dan increment i (i++) nilai I bertambah 1. Lalu dibaca dengan
fungsi scanf dari var a.
§ getch();
Merupakan
syntax untuk membaca hasil langsung dari console.
§ return 0;
return
0 merupakan pengembalian statement yang sudah diolah, dengan tanpa nilai.
OUTPUT