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 < max1)
max = max1;
if(min > min1)
min = min1;
}}
int
main(){
int i,num;
printf("\n\t\t\tMaximum Dengan
Minimum\n\n");
printf("Masukan Banyak Angka: ");
scanf("%i", &num);
printf("\nMasukan Angka-Angkanya:
\n");
for(i=0; i<num; i++) {
scanf("%i", &a[i]);
}
printf("\nAngka-Angkanya
adalah: \n");
for(i=0; i<num; i++) {
printf("%i",
a[i]);
}
max = a[0];
min = a[0];
maxmin(0,num-1);
printf("\n\nMaksimum
Angka: %i\n", max);
printf("Minimum
Angka: %i", min);
getch();
return 0;
}
Logika Program
Pada
pertemuaan kali ini saya akan membuat program divide and conquer dan saya logika
dar program yang saya buat. Disini saya menggunakan bahasa C++. Berikut adalah
logikanya.
#include<stdio.h>
Dalam
c++ jika kita menginginkan penggunaan input dan output, atau bisa diartikan
sebagai standard library yang berfungsi untuk I/O package maksudnya
digunakan jika kita ingin pada program kita menggunakan fungsi standard input
atau output bisa dikatakan seperti portable input/output package. Tanpa
menggunakan library ini, kita tidak bisa menggunakan perintah-perintah
input/output pada program kita.
#include<conio.h>
Pernyataan
conio.h adalah library
pada C yang digunakan untuk mengkoneksikan pernyataan clrscr() dengan program
yang kita buat. Tanpa menggunakan library ini, kita tidak bisa menggunakan
fungsi prototype seperti: gotoxy(), clrscr(), clreol(). Dan juga file header ini berfungsi untuk menampilkan hasil antarmuka kepada
pengguna.
int a[100];
Fungsi diatas untuk mendeklarasikan
a sebagai integer dan berbentuk aray.
int max,min;
Fungsi diatas untuk
mendeklarasikan max, min sebagai
integer.
void maxmin(int i, int j)
Fungsi diatas adalah untuk
melakukan perhitungan maxmin dengan variable utamanya i dengan tipe data
integer dan j dengan tipe datanya integer. Void
karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat
dari hasil proses fungsi tersebut.
int max1,min1,mid;
Fungsi diatas mempunyai
ukuran nilai bilangan bulat (integer).
if(i==j) {
Fungsi diatas adalah untuk
melakukan kondisi percabangan dalam suatu program.
max=min=a[i]; }
else if(i==j-1) {
Fungsi diatas
adalah kondisi kedua (alternative) sebuah percabangan dalam suatu program,
pernyataan ini akan dieksekusi jika kondisi dalam pernyataan utama tidak
terpenuhi.
if(a[i] > a[j]) {
Fungsi diatas jika variable i
lebih besar dari variable j maka lakukan perintah selanjutnya.
max=a[i];
min=a[j];}}
Fungsi diatas berfungsi untuk mengeksekusi nilai
i akan masuk sebagai max dan j sebagai min.
else {max=a[j];
min = a[j]; }}
else {mid = (i+j)/2;
maxmin(i,mid);
max1 = max;
min1 = min;
maxmin(mid+1,j);
if(max < max1)
max = max1;
if(min > min1)
min = min1;
Fungsi diatas apabila perintah yang sebelumnya
tidak terpenuhi maka lakukan perintah diatas. jika kondisi yang sebelumnya
sudah terpenuhi maka perintah yang diatas tidak di jalankan.
int main(){
Fungsi diatas merupakan
badan dari program.
int i,num;
printf("\n\t\t\tMaximum
Dengan Minimum\n\n");
Fungsi diatas untuk mendeklarasikan i dan num sebagai
integer. Dan pernyataan printf di
atas digunakan untuk mencetak tulisan yang ada diantara tanda kutip , yaitu
Maximum dan Minimum. Pernyataan \n digunakan untuk memberikan jeda (enter) pada
saat program dieksekusi, sedangkan pernyataan \t digunakan agar tulisan utama
yang
dicetak menjorok kedalam
(tab) pada saat dieksekusi.
printf("Masukan Banyak Angka: ");
Fungsi diatas untuk mencetak
kalimat yang berada di dalam tanda kutip, lalu kita akan mulai menginputkan
angka.
scanf("%i", &num);
Fungsi diatas
scanf digunakan untuk menyimpan angka yang kita input ketika program
dieksekusi. Disini terdapat %i yang mengartikan data inputan akan ditampilkan
dalam bentuk integer decimal , dan &num mengartikan data inputan akan
disimpan sementara pada variable num.
printf("\nMasukan Angka-Angkanya: \n");
Fungsi diatas adalah untuk
mencetak kalimat yang berada dalam tanda kutip, \n adalah untuk memberikan jeda
ke perintah selanjutnya. Lalu kita inputkan data sesuai dengan banyaknya jumlah
data yang tadi kita input.
for(i=0; i<num;
i++) {
scanf("%i",
&a[i]); }
Fungsi for di atas digunakan sebagai kondisi perulangan pada
program, program akan mengeksekusi dimulai dari 0 hingga terpenuhi kondisi
i<num , dan variable i akan terus bertambah 1 jika terpenuhi kondisi
i<num. Hasil dari eksekusi perulangan di atass akan tersimpan kedalam baris
pernyataan scanf(“%i”,&a[ i ]).
printf("\nAngka-Angkanya adalah: \n");
Fungsi diatas akan mencetak
kalimat yang berada di dalam tanda kutip pada layar.
for(i=0; i<num;
i++) {
printf("%i",
a[i]);}
program akan mengeksekusi dimulai dari 0 hingga terpenuhi kondisi
i<num , dan variable i akan terus bertambah 1 jika terpenuhi kondisi
i<num. lalu akan mencetak hasil dari pernyataan ("%i",
a[i])
max = a[0];
min = a[0];
maxmin(0,num-1);
Fungsi diatas nilai max dan min diisi nilai
array indeks 0. Perintah maxmin(0,num-1) adalah untuk menjalankan perintah
diatas.
printf("\n\nMaksimum Angka: %i\n", max);
Fungsi diatas untuk mencetak
kalimat yang berada di dalam tanda kutip, yang dimana angka tersebut dalam
bentuk integer decimal, lalu akan muncul nilai yang maksimum dari data yang
kita inputkan.
printf("Minimum Angka: %i", min);
Fungsi diatas untuk mencetak
kalimat yang berada di dalam tanda kutip, yang dimana angka tersebut dalam
bentuk integer decimal, lalu akan muncul nilai yang minimum dari data yang kita
inputkan.
getch();
Fungsi diatas
getch() untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan
tidak perlu diakhiri dengan menekan tombol enter, dan karakter yang dimasukan
tidak akan ditampilkan di layar.
return 0;
Fungsi diatas angka 0 ini akan dikembalikan kepada sistem operasi.
Nilai ini digunakan oleh sistem operasi untuk disimpan dimana 0 artinya
‘sukses’.
Output
EmoticonEmoticon