Laporan Akhir Lab TI Perancangan & Analisis Algoritma Pertemuan 2 Divide and Conquer
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
Belum ada Komentar untuk "Laporan Akhir Lab TI Perancangan & Analisis Algoritma Pertemuan 2 Divide and Conquer"
Posting Komentar