Sabtu, 27 Februari 2010

Pembuatan program DIVIDE AND CONQUER dengan menggunakan C++

Pembuatan program DIVIDE AND CONQUER dengan menggunakan C++


Coding Program

#include

#include

int max,min;

int a[100];

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]

{

max=a[j];

min=a[i];

}

else

{

max=a[i];

min=a[j];

}

}

else

{

mid=(i+j)/2;

maxmin(i,mid);

max1=max;

min1=min;

maxmin(mid+1,j);

if(max

max=max1;

if(min>min1)

min=min1;

}

}

void main()

{

int i,num;

clrscr();

printf("\n\t\t\tMAXIMUM & MINIMUM\n\n");

printf("\n Masukkan Banyak Angka:");

scanf("%d",&num);

printf("Masukkan Angkanya:\n");

for (i=1;i<=num;i++)

{

scanf("%d",&a[i]);

}

max=a[0];

min=a[0];

maxmin(1,num);

printf("Maximum Angka: %d\n",max);

printf("Minimum Angka: %d\n",min);

getch();

}


Penjelasan Program

Pada materi kali ini membahas tentang algoritma Devide and Conquer yaitu lagoritma yang memecahkan masalah menjadi bagian-bagian kecil yang kemudian tiap-tiap bagian tersebut dicari pemecahannya (perlakuan tiap bagian sama). Setelah tiap bagian kecil tersebut terpecahkan kemuadian tiap-tiap bagian tersebut dikumpulkan kembali dan diambillah pemecahan masalah tiap bagian untuk dibandingkan kembali manakah pemecahan masalah yang terbaik.

Ini merupakan sebuah program yang mengimplementasikan algoritna DnC yang telah disebutkan diata. Contohnya mencari nilai maskimal dan minimal dari sekumpulan bilangan (baik acak maupun terurut), maka sekumpulan bilangan tersebut akan dipecah-pecah menjadi bagian-bagian terkecil kemudian nantinya akan dicari nilai maksimal dan minimal bilangan tersebut.

Deklarasi program kita diawali menggunakan perintah #include yang berfungsi sebagai pengatur compiler agar dapat membaca berkas header yang nanti digunakan. Header yang digunakan berhubungan dengan library yang berikan perintah pada I/O yaitu conio.h dan stdio.h . Kemudian dilanjutkan dengan deklarasi variabel umum (nantinya bisa digunakan secara keseluruhan dalam program). Variabel yang digunakan adalah max, min yang bertipe integer dan a sebagai array dimana memiliki nilai quota 100 buah.

Program dimulai dari bagian void main (), kemudian dideklarasikan kembali variabel i dan num bertipe integer. Perintah clear screen digunakan untuk membersikan layar dari tampilan yang sebelumnya. Kemudian dicetak sebuah string namun sebelumnya diberikan tabulasi sebanyak tiga kali (efek perintah \t) yang dilanjutkan dengan pencetakan string MAKSIMUM & MINIMUM. Tabulasi ini bermaksud agar pencetakan string ini berada di tegah layar (jadi seperti sebuah judul). Lalu mencetak string Masukan Banyak Angka yang kemudian user diminta untuk memasukkan nilai dari banyaknya angka. Inputan tadi akan dimasukkan kedalam variabel sum bertipe integer, jika input bukan bertipe integer maka program akan eror. Selanjutnya dicetak string Masukkan Angkanya yang tentunya dilanjutkan dengan permintaan input data oleh user. Karena masukkan angka harus sejumlah dengan banyaknya angka maka digunakan perintah perulangan for. Perulangan dimulai dari inputan pertama hingga data ke num (sama nilainya dengan jumlah inputan num). Inputan ini akan dimasukkan kedalam array a[i], i menunjukkan urutan aray ke sekian.

Program dilanjutkan dengan memberikan nilai variabel max = nilai awal dari array a (jika inputan awal bernilai 4 maka a[0] akan bernilai 4). Variabel max = nilai awal dari array a (jika inputan awal bernilai 4 maka a[0] akan bernilai 4).Kemudian program dilanjutkan dengan memanggil fungsi maxmin.

Fungsi maxmin merupakan inti dari devide an qonquer. Disini dideklarasilan variabel baru yaitu max1, min1, mid yang bertipe integer. Fungsi ini terbagi menjadi dua bagian/kondisi yaitu jika nilai inputan user hanya 1 dan nilai inputan user bernilai banyak. Oleh karena itu alur program ini menggunakan perintah if (seleksi kondisi). Untuk kondisi yang pertama, jika nilai inputan user hanya satu maka nilai maksimum dan minimum akan bernilai sama.

Untuk selain kondisi tersebut (kondisi kedua) yaitu nilai inputan data lebih dari dua maka akan ditanyakan kepada kondisi lain lagi yaitu jika nilai dari data pertama lebih kecil dari data kedua maka akan dicek nilai array i dengan array j, jika lebih besar nilai array j ketimbang array j maka yang menjadi nilai maksimum adalah nilai array a data ke j dan minimum adalah array a ke i. Namun jika nilai array a ke i lebih dbesar dari array a ke j maka yang menjadi nilai maksimum adalah array a data ke i dan minimum adalah array a data ke j. Ini dilakukan jika inputan data oleh user hnya dua bilangan.

Jika kondisi nilai array i ternyata tidak sama dengan nilai array j-1 maka masuk dalam blok program baru. Nilai i dan j dijumlahkan kemudian dibagi 2 yang kemudian dimasukkan dalam variabel mid (ini menyatakan nilai tengah dari barisan bilangan). Kemudain dipanggil lagi fungsi maxmin dengan nilai i dan mid (kalo yang tadi kan nilainya 1 dan j). Dinyatakan nilai variable max1 adalah nilai max dan min1 adalah min. Kemudian diproses kembali kedua fariabel ini dengan memanggil fungsi maxmin dengan inputan nilai mid+1 dengan j. Lalu jika nilai max lebih besar dari max1 maka masukkan nilai max1 sebagai max (berarti saat ini nilai max telah berganti dengan nilai max1). Selain itu jika nilai min lebih besar dari min1 maka nilai min tetap menjadi nilai minimum baris bilangan. Selesailah proses devide and conquer.

Proses terakhir adalah pencetakan nilai maksimum dan minimum. Program mencetak string Maximum angka : yang dilanjutmkan dengan pencetakan nilai variabel max (tadi telah dijelaskan bahwa variabel max telah memiliki nilai maksimal baris bilangan). Dan dicetak pula string Minimum angka : dilanjutkan dengan pencetakan nilai variabel max (tadi telah dijelaskan bahwa variabel min telah memiliki nilai minimal baris bilangan. Program berhenti sesaat hingga user memasukkan inputan tombol apapun. Setelah itu program berakhir.

Jadi ketika program dijalankan maka akan langsung keluar tulisan MAXIMUM & MINIMUM pada tengah layar (menyerupai sebuah judul program) dilanjutkan dengan pencetakan string Masukkan Banyak Angka :. Selanjutnya user akan diminta untuk memasukkan nilai numerik antara 1-100. Setelah user selesai memasukkan nilai maka dilanjutkan dengan pencetakan string Masukkan Angkanya: kemudian user akan diminta untuk memasukkan data kembali sebanyak nilai yang telah user berikan pada awal program. Pada saat ini program melakukan looping dan memasukkan nilai inputan user kedalam sebuah array a. Selanjutnya program akan mendefinisikan nilai dari variabel max sebagai array a ke 0 (data pertama) dan nilai dari variabel min sebagai array a ke 0 (data pertama) juga. Selanjutnya akan dipanggil fungsi maxmin. Disi terjadi proses pemecahan masalah dengan menggunakan algoritma DnC. Akhirnya akan dicetak string Maximum Angka : diikuti nilai maksimum dari bilaangan dan dibawahnya pencetakan sring Minimum Angka: dikuti pencetakan nilai minimum bilangan. Program pun berhenti.


Output Program





Jumat, 26 Februari 2010

Pembuatan jaringan Peer to Peer

Pembuatan jaringan Peer to Peer :

Peer-to-Peer network adalah jaringan komputer yang terdiri dari beberapa komputer (biasanya tidak lebih dari 10 komputer dengan 1-2 printer). Dalam sistem jaringan ini yang diutamakan adalah penggunaan program, data, printer dan sumber daya lainnya secara bersama-sama. Dalam pembuatan jaringan peer-to-peer diperlukan minimal dua buah komputer yang saling terhubung dengan menggunakan LAN card/Ethernet card beserta kabel jaringan. Setelah itu dilakukan pengaturan IP di tiap-tiap komputer sehingga komputer tersebut punya masing-masing alamat yang nantinya berguna sebagai alamat tujuan pengiriman data dan sumberdaya lainnya.

Untuk menyeting jaringan peer to peer tersebut lakukan langkah-langkah berikut :



Pertama siapkan 2 buah komputer yg akan dihubungkan secara LAN atau peer to peer dengan menggunakan kabel cross,

Kemudian samakan kedua IP address dike-2 komputer tersebut misalnya computer pertama IPnya 206.198.0.1 dan computer kedua 206.198.0.2 pada IP configuration pada kedua computer tersebut, atau dengan cara mencari pada menu network dikedua komputer tersebut.

Setelah kedua computer itu dihubungkan dan disamakan IP adressnya, maka bisa kita chek dengan menggunakan command prompt pada salah satu komputer yg kita kehendaki, dan dengan menggunakan perintah ping IP address computer yg dipanggil contoh : ping 206.198.0.2, bila keluar data seperti refly form, serta data-data lainnya seperti minimum, maximum dll. maka kedua komputer tersebut sudah terhubung secara peer to peer.



Silahkan Mencoba ^_^..