Senin, 03 Desember 2012

DIVIDE AND CONQUER

A. Penjelasan Divide and Conquer
Divide and Conquer merupakan algoritma yang berprinsip memecah – mecah permasalahan yang terlalu besar menjadi beberapa bagian kecil sehingga lebih mudah untuk diselesaikan. 
Langkah-langkah umum algoritma Divide and Conquer :
Divide : Membagi masalah menjadi beberapa upa–masalah yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil ( idealnya berukuran hampir sama ).
Conquer : Memecahkan ( menyelesaikan ) masing-masing upa-masalah ( secara rekursif ).
Combine : Menggabungkan solusi masing-masing upa-masalah sehingga membentuk solusi masalah semula
Contoh Penerapan Divide and Conquer, yaitu :
a. Pemecahan Masalah Convex Hull dengan Algoritma Divide and Conquer :
Permasalahan convex hull adalah permasalahan yang memiliki aplikasi terapan yang cukup banyak, seperti pada permasalahan grafika komputer, otomasi desain, pengenalan pola (pattern recognition), dan penelitian operasi. 
b. Persoalan Minimum dan Maksimum ( MinMaks ), dan
c. Optimasi Konversi Bilangan Desimal Ke Biner


B. Listing dan Logika Program

Pada kali saya akan menjelaskan logika pada listing listing yang akan saya tampilkan.
Pada listing pertama saya akan menjelaskan bahwa beberapa bagian yang harus di perhatikan adalah header dan fungsi. Header adalah dimana kita memasukkan  library yang ada dalam C++  kedalam kode program. Fungsi adalah “tempat” dimana kita bisa “ bereksperimen ”. Dimana didalamnya terdapat semua statement yang kita buat. Pada listing baris pertama ada perintah #include . Tanda ‘#’ adalah preprocessor directive. Preprocessor directive adalah perintah – perintah yang diberikan kepada compiler untuk melakukan definisi, memasukkan file library, dan lain – lain. Perintah cstdio sama dengan header untuk perintah C seperti printf dan scanf.
Pada perintah void maxmin(int i, int j); ini adalah Fungsi void yang sering disebut juga prosedur . Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut. Variabel yang berupa void merupakan variabel yang tanpa isi tipe data dan pengembalian nilai. Pada listing diatas terdapat tipe data integer. Integer atau int adalah tipe data bilangan bulat ( integer ). Contoh perintah tipe integer pada perintah diatas adalah int max1, int min1, mid; ini merupakan bahwa variabel max, min dan mid mempunyai ukuran nilai bilangan bulat (integer).
Selain itu, perintah yang ada di listing atas adalah if … else. Pada listing tersebut terdapat dua perintah if … else. Pada perintah if … else pertama menyatakan kondisi yang pertama kali akan di eksekusi adalah kondisi yang terluar dalam hal ini kondisi–1. Jika pernyataan kondisi–1 salah maka pernyataan else terluar ( pasangan dari if bersangkutan ) akan dieksekusi jika else tidk ditulis maka proses seleksi akan dihentikan. Sedangkan, jika kondisi–1 bernilai benar, maka kondisi selanjutnya akan dieksekusi begitu seterusnya dan jika else ( kondisi–2 ) bernilai salah maka akan seperti pada poin pertama diatas akan dihentikan.
Dan sekarang saya akan menjelaskan perintah – perintah yang ada di listing samping ini. Tadi sudah dijelaskan if … else dan sekarang saya akan menjelaskan perintah if itu sendiri. Pada kondisi if ini jika bernilai benar maka pernyataan akan di proses. Sedangkan jika kondisinya bernilai salah maka pernyataan tidak akan diproses.
Pada fungsi scanf( ) berguna untuk meninput data baik berupa bilangan, karakter, ataupun kalimat secara terformat. Perintah printf( ) ini berfungsi menampilkan hasil dengan kode terformat. Maka dalam arti kata, printf ini untuk menampilkan semua jenis data, misalnya adalah number, string dan karakter. Berikut adalah kode – kode format untuk fungsi printf( ), %d pada perintah tersebut adalah untuk menampilkan nilai desimal integer. Perintah getch( ) dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan enter. Fungsi getch( ) merupakan singkatan dari get character artinya baca karakter tetapi isian data yang dimasukkan tidak akan ditampilkan di layar. Setelah selesai semua perintah yang saya masukkan maka saya akan mengcompile agar mengetahui apakah program itu benar dan dapat dir u atau masih ada beberapa perintah yang masih salah.
Maka dari semua perintah dari listing – listing di atas yang sudah di compile akan menghasilkan output seperti dibawah ini.

C. Output dari Program
















Tidak ada komentar:

Posting Komentar