Breaking News

Pengurutan Data (SORT) Pada Algoritma Pemrograman


Tujuan :
  1. Memahami algoritma untuk mengurut jajaran data acak menjadi jajaran data yang berurutan.
  2. Diharapkan mahasiswa mampu mengerti dan menguasai beberapa teori / metode pengurutan data, menyusun langkah-langkah (step) dan mampu merancang flowchart-nya.
Sort
Sort

 
Teori singkat :

Ada beberapa macam metoda untuk mengurutkan data, antara lain adalah :

a. Buble Sort :  Metoda pengurutan dengan membandingkan data (bilangan)dengan data pada urutan berikutnya, jika data pertama (yang dibandingkan) lebih besar dari data berikutnya maka kedua data dipertukarkan. Pembandingan dilanjutkan sampai data terakhir. Kemudian pembandingan dimulai dari data pertama lagi, dan seterusnya.

b. Selection Sort : Metoda pengurutan data dengan mencari data terkecil dari jajaran data acak. Data terkecil tersebut dipertukarkan dengan data pada urutan pertama. Proses dilanjutkan untuk jajaran data urutan kedua sampai terakhir. Kemudian data terkecil dipertukarkan dengan data kedua. Proses dilanjutkan sampai data terakhir.

c. Metoda-metoda yang lain (Buble Sort with Flag, shell, Shell Metzner, Quicksort dll) tidak dibahas dalam modul ini. 


Pada Bubble Sort dan Selection Sort terjadi pertukaran isi data pada dua urutan data yang berbeda. Mempertukarkan dua isi data ini, dapat dilakukan dengan pertolongan adanya satu variabel lain untuk tempat sementara dari salah satu data yang ditukarkan. Misalnya data pertama DAT[1] dipertukartkan dengan data kedua DAT[2] , dibutuhkan variabel tempat (Tempat), dengan pernyataan sebagai berikut.
Tempat = Dat (1)
Dat (1) = Dat (2)
Dat (2) = Tempat 
Contoh jajaran dta yang akan diurutkan 

Data                      12   20  14  9  34  76  5    8 
Urutan data ke       1     2    3    4  5    6    7    8


Langkah - langkah pengurutan dengan Bubble Sort urut naik


Baca juga ya tentang Penggabungan Data (Merging) Pada Algoritma Pemrograman

Pembandingan dimulai  dari data pertama sampai data terakhir. Pembandingan ini diulang terus selama dalam proses pembandingan terjadi proses penukaran data . Adanya proses penukaran ditandai dengan pengisian variabel tanda tukar dengan nilai 1 (tukar = 1) sebelumnya variabel tukar = 0

1. Membandingkan data ke1 dengan data ke 2, apakah Dat[1] > Dat[2] ?, jika bernilai true maka keduanya dipertukarkan. 

2. Membandingkan data ke2 dengan data ke 3, apakah Dat[2] > Dat[3] ?, jika bernilai true maka keduanya dipertukarkan. Bil;a Dat(2) lebih besar daripada Dat (3) maka keduanya dipertukarkan, jika Dat(2) lebih kecil maka tidak dipertukarkan. Proses dilanjutkan untuk data ke 3 dan diteruskan sampai data terakhir. 

Data                      12   20  14  9  34  76  5    8 
Urutan data ke       1     2    3    4  5    6    7    8

Sehingga menghasilkan jajaran data sebagai berikut :

Data                      12   20  14  9  34  76  5    8 
Urutan data ke       1     2    3    4  5    6    7    8 ......dst

3. Mengulangi langka ke 1 dan langkah ke 2 dan seterusnya. Pengulangan langkah ini dilakukan terus menerus bila dalam proses sebelumnya masih terjadi pertukaran data. Pengulangan berhenti / selesai bila variabel tukar = 0 yang berarti dalam proses pengulangan ini tidak terjadi pertukaran data (proses tidak melalui pernyataan pengisian variabel Tukar =1)

4. Proses pengurutan data selesai.


Soal Praktek :

1. Susunlah Algoritma dan Flowchart program untuk pengurutan data dengan metoda Bubble Sort sesuai dengan data dan langkah-langkah tersebut diatas. Gunakan loop for dalam for.

2. Susunlah program C++ untuk soal nomor 1 diatas, untuk membuktikan algoritma tersebut benar. 

3. Susunlah Algoritma dan flowchart program untuk pengurutan data dari jajaran 8 buah data acak dengan metoda Selection Sort.

Tugas :

1. Susunlah Algoritma dan flowchart program  untuk pengurutan sebuah jajaran data acak yang belum diketahui jumlah cacah datanya, dimana pengurutan data dilakukan dengan metode Bubble sort yang menghasilkan urutan Descending (urut turun).


2. Susunlah Program C++ untuk pengurutan data dengan metoda Selection Sort untuk sebuah jajaran data acak yang terdiri dari 10 cacah data sembarangan. Data dimasukkan melalui keyboard dan disimpan dalam Array dimensi satu. 



Terimakasih ^_^

1 comment: