Jumat, 18 Mei 2012

Macam-Macam Perintah Perulangan


1.                   Perulangan For, program hanya akan menjalankan inisialisasi sebanyak satu kali kemudian akan dicek pada pernyataabn kondisi, bila kondisi bernilai benar maka modifier akan dijalankan diikuti dengan pernyataan. Setelah itu program akan kembali melakukan pengecekan kondisi dan apabila masih bernilai benar akan dilanjutkan dengan menjalankan modifier dan pernyataan. Program akan berputar mengecek kondisi, modifier dan pernyataan. Lalu sampai kapan ? Tentunya sampai kondisi tidak terpenuhi atau bernilai salah. Makanya kita kadang menemukan program yang outputnya tidak berhenti karena perulanganya berjalan terus. hal itu disebabkan karena kondisi selalu bernilai benar. 
2.                   Perulangan While, Pada perintah While  pengecekan dilakukan pada awal blok dan pengulangan akan berhenti ketika kondisi "false".
3.                   Perulangan Do-While, Pengecekan dilakukan di akhir blok, danpengulangan akan berhenti jika kondisi "false".
4.                   Persamaan Perulangan While dan Do-While adalah hanya menggunakan 1 parameter. Meskipun demikian tetap menghasilkan perulangan yang sama dengan for yang menggunakan  3 buah parameter . Hal ini dikarenakan bagian inisialisasi dan modifiernya kita masukkan dalam baris program biasa sehingga hasil outputnya pun tetap sama dengan menggunakan for

Program sederhana Menggunakan perulangan FOR

 Script ...

#include<iostream.h>
#include<iomanip.h>
void main()
{
for(int i=1;i<=100;i=i+2)
cout<<setw(5)<<i;
}

Penjelasan,,,

Program Ini sama Dengan peruangan While cara kerjanya,, yaitu jika ekspresi bernilai benar maka akan Di eksekusi,, tapi jika bernilai salah atau false maka akan melompat ke perinta atau baris terakhir.

Program Sederhana Menggunakan Perulangan While


Contoh Program sederhana…..

Program ini dibuat untuk mencari nilai sitelah di tambahkan 3, tetapi hanya sampai angka 50.
Contohnya anka yang di ambil adalah 5 maka Outputnya adalah  5,8,11. Dan seterusnya sampai angka kurang dari 50.

  Setelah proramnya di lihat jangan lupa lihat juga penjelasanya….

void main(){
                int a;
                cout<<"selamat datang di program saya"<<endl;
                cout<<"------------------------------"<<endl;
                cout<<"  -------------------------  "<<endl;
                cout<<"berapa umur idola kamu sekarang = ";
                cin>>a;
                while(a<=50){
                cout<<" setiap 3 Tahun Kemudian Umurnya menjadi ="<<a<<endl;
                a = a + 3;
                }
                cout<<"Terima Kasih";

Program dijalankan dari baris pertama, dimana variabel   bertipe data INTEGER (int), atau inputya harus angka.              
cin, artinya program akan menunggu inputan  untuk memberi nilai kepada variabel a agar program dapat dilanjutkan , nilai disini harus berupa angka            
misalnya variabel a  ingin di beri nilai 44. maka yang di ketik pada keyboard adalah  angka 44 untuk menginput di jendela output
Expresi (a<=50) dinilai, karena variabel a bernilai 44 (dimana 44 < 15 ) maka variabel a menjadi (44<=50), atau bernilai benar.
(a<=50), karena variabel a bernilai 44 maka ekspresi (a<=50) dibaca 44 kurang dari sama dengan 50 , atau ekspresi tersebut bernilai true.
karena ekspresi bernilai benar, maka semua statemen yang berada di dalam while , dapat dijalankan.
Setelah itu akan  Mulai di jalankan statemen dalam while, yaitu tampilkan output,

kemudian cursor pindah pada baris selanjutnya (endl) dan Akan Mulai menjalankan statement dalam while, akan ditampilkan output,
kemudian  pindah pada baris selanjunya yaitu (endl).
a = 44 + 3, karena nilai a sekarang  adalah 44, maka ekspresi menjadi
                a = 44 + 3, atau
                a = 47.
Semua statmen dalam badan while telah dijalankan.

Setelah semua statement  dalam badan while dijalankan, ekspresi_ bolean kembali diperiksa.
(a<=50), karena variabel saat ini mempunyai nilai 47, maka ekspresi menjadi (47<=50), atau  47 kurang dari sama dengan 50 sehingga bernilai true.  

 Karena ekspresi_bolean bernilai benar maka semua isi dari badan while, di eksekusi ulang.
                Yaitu mulai dari menampilkan
“Out-nya : “, nilai var a (47), dan cursor pindah ke baris selanjutnya (endl).
a = a + 3, karena nilai a sekarang sudah menjadi 47, maka menjadi
                a = 47 + 3, atau
                a = 50.  
Semua statement dalam while telah dijalankan.

Setelah semua statement  dalam badan while dijalankan, ekspresi_ bolean kembali diperiksa.
(a<=50), karena variabel saat ini mempunyai nilai 50, maka ekspresi menjadi (50<=50), atau  50 kurang dari sama dengan 50 sehingga bernilai true.  
Karena ekspresi_bolean bernilai benar maka semua isi dari badan while, di eksekusi ulang.

Jika  isi badan while bernilai benar maka  semua statement dalam badan while telah  dijalankan, kemudian ekspresi bolean akan kembali di periksa, jika bernilai true maka ekspresi akan di jalankan dan kembali akan memeriksa ekspresi bolean tetapi jika bernilai salah /false  maka tidak akan di eksekusi lagi, dan melompat ke baris terakhir..

Metode Sorting pada Pemrograman C++


Pengertian Sorting
Dalam arti bahasa sorting adalah penyortiran atau memilih-milih. Pada struktur data Sorting adalah sebuahmetode untuk pengurutan data, misalnya dari data yang terbesar ke data yang terkecil. Dengan cara program yang dibuat harus dapat membandingkan antar data yang di inputkan.
Artinya jika ada deretan data, maka data yang pertama akan membandingkan dengan data yang kedua. Jika data yang pertama lebih besar dari pada data yang kedua maka data yang pertama akan bertukar posisi dengan data yang kedua, begitu seterusnya sampai benar-benar data terurut dari yang terbesar hingga yang terkecil.
Metode sorting sangat banyak dan berkembang ada  
·                     Bubble sort
·                     Selection Sort
·                      Insertion sort 
·                     Merge sort
·                      Quick sort.
·                     dll

1. Pengetian Metode Bubbel Sort

Bubble sort (metode gelembung) adalah metode atau algoritma pengurutan dengan cara melakukan penukaran data dengan tempat disebelahnya jika data sebelum lebih besar dari pada data sesudahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan, atau telah terurut dengan benar. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci atau data akan dengan lambat menggelembung atau membandingan data ke posisinya yang tepat.
Metode ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lain yang kita pelajari, metode ini merupakan metode yang paling tidak efisien karena memiliki banyak pertukara sehingga memerlukan pengalokasian memori yang besar untuk menjalankan metode ini.

2. Pengertian Metode Selection Sort

Selection Sort berbeda dengan Bubble sort. Selection Sort pada dasarnya memilih data yang akan diurutkan menjadi dua bagian, yaitu bagaian yang sudah diurutkan dan bagian yang belum di urutkan.
Langkah pertama dicari data terkecil dari data pertama sampai data terakhir. Kemudian data terkecil ditukar dengan data pertama. Dengan demikian, data pertama sekarang mempunyai nilai paling kecil dibanding data yang lain. Langkah kedua, data terkecil kita cari mulai dari data kedua sampai terakhir. Data terkecil yang kita peroleh ditukar dengan data kedua dan demikian seterusnya sampai semua elemen dalam keadaan terurutkan. Metode ini lebih efektif dari pada metode bubble karena tidak memerlukan banyak pertukaran dan pengalokasian memori.

3. Merge Sort
Pengertian Merge Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknya daftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.
Algoritma merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk tabel yang terurut. Implementasi dasar dari algoritma merge sort memakai tiga buah tabel, dua untuk menyimpan elemen dari tabel yang telah di bagi dua dan satu untuk menyimpan elemen yang telah terurut. Namun algoritma ini dapat juga dilakukan langsung pada dua tabel, sehingga menghemat ruang atau memori yang dibutuhkan.
Algoritma Merge umumnya memiliki satu set pointer p0..n yang menunjuk suatu posisi di dalam satu set daftar L0..n . Pada awalnya mereka menunjuk item yang pertama pada setiap daftar. Algoritmanya sebagai berikut:
Selama p0..n masih menunjuk data yang di dalam sebagai pengganti pada akhirnya:
1.Melakukan sesuatu dengan data item yang menunjuk daftar mereka masing-masing.
2.Menemukan pointers points untuk item dengan kunci yang paling rendah

4. Quick Sort
Pengerian Quick Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknya daftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.
Algoritma merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk tabel yang terurut. Implementasi dasar dari algoritma merge sort memakai tiga buah tabel, dua untuk menyimpan elemen dari tabel yang telah di bagi dua dan satu untuk menyimpan elemen yang telah terurut. Namun algoritma ini dapat juga dilakukan langsung pada dua tabel, sehingga menghemat ruang atau memori yang dibutuhkan.
Algoritma Merge umumnya memiliki satu set pointer p0..n yang menunjuk suatu posisi di dalam satu set daftar L0..n . Pada awalnya mereka menunjuk item yang pertama pada setiap daftar. Algoritmanya sebagai berikut:
Selama p0..n masih menunjuk data yang di dalam sebagai pengganti pada akhirnya:
1.Melakukan sesuatu dengan data item yang menunjuk daftar mereka masing-masing.
2.Menemukan pointers points untuk item dengan kunci yang paling rendah; membantu salah satu pointer untuk item yang berikutnya dalam daftar.

Pada umumnya algoritma merge berjalan dalam waktu proposional untuk penjumlahan pada panjangnya daftar; Algoritma merge beroperasi pada bilangan besar dalam daftar yang akan segera mengalikan penjumlahan panjangnya daftar pada saat itu untuk keluaran gambar pointers points yang mana menunjuk pada item yang paling rendah, yang dapat terpengaruhi dengan suatu heap(tumpukan) yang didasarkan prioritas antrian dalam O(lg n) waktu, untuk O(m lg n) waktu (dimana n adalah bilangan pada daftar yang digabungkan, m adalah penjumlahan panjangnya daftar, dan lg adalah log basis 2). Ketika menggabungkan panjang m dua daftar, terdapat suatu perbandingan lompatan yang lebih rendah 2m-1 yang ada dalam kasus terburuk.
Keluaran data item Merge klasik (satu yang digunakan dalam merge sort)