Sorting dalam Bahasa Pemrograman C++
Sorting dalam Bahasa Pemrograman C++
Pengertian Sorting
Sorting yaitu pengurutan data-data baik dari data yang terkecil ke terbesar, maupun sebaliknya. Proses Pengurutan banyak ditemukan dalam komputer. Hal ini karena data yang sudah urut akan lebih cepat untuk dicari. Untuk membentuk data yang tidak urut menjadi data yang urut, terdapat berbagai metode dan algoritma yang bisa digunakan. Biasanya Sorting data ini digunakan dalam array 1 dimensi
Metode Selection Sort
Selection Sort merupakan metode pengurutan yang menyeleksi satu per satu data yang ada dalam array 1 dimensi. Penyeleksian ini dilakukan dengan cara membandingkan satu data dengan satu data yang lain dalam sebuah array 1 dimensi.
Metode Selection Sort secara ascending (data terkecil ke data terbesar/data terurut naik):
- Mencari data terkecil dari data pertama sampai dengan data yang terakhir, kemudian jika ditemukan data yang lebih kecil dari data yang pertama maka posisinya akan ditukar.
Ilustrasi: - Mencari data terkecil dari data kedua sampai dengan data yang
terakhir, kemudian jika ditemukan data yang lebih kecil dari data yang kedua maka posisinya akan ditukar.
- Mencari data terkecil dari data ketiga sampai dengan data yang terakhir, kemudian jika ditemukan data yang lebih kecil dari data yang ketiga maka posisinya akan ditukar.
- Begitu seterusnya sampai semua data terurut naik. Bila terdapat n buah data yang akan diurutkan maka membutuhkan n-1 langkah pengurutan, dengan data terakhir, yaitu data ke n tidak perlu diurutkan karena menjadi satu-satunya data.
Ilustrasi:
Contoh Studi Kasus:
Mengurutkan data nilai murid yang nilainya bilangan bulat (integer) dengan metode Selection Sort. data nilai murid diinputkan secara langsung oleh user program. Pilihan pengurutan data terdapat Ascending dan Descending.
Programnya:
Running Program Di atas:
Ascending Descending
Metode Insertion Sort
Pengurutan dengan Metode Insertion Sort yaitu dengan penyisipan adalah suatu metode yang melakukan pengurutan dengan cara menyisipkan data yang belum urut ke dalam bagian data yang telah terurut secara relatif, penyisipan dilakukan ke bagian sisi kiri. penyisipan yang dilakukan ini menimbulkan pergeseran data ke bagian kanan array.
Kemudian data[1] menjadi data yang dibandingkan dengan data[0]. data[1] lebih besar dari data[0] maka tidak perlu dilakukan penyisipan data ke kiri array. Kemudian data[0] dan [1] dianggap terurut secara relatif. sekarang data[2] dibandingkan dengan data yang ada kirinya, selama data yang ada dikiri lebih besar maka data[2] harus disisipkan agar data dikirinya lebih kecil dari data[2]. Disini data[0] dan [1] lebih besar dari data[2].
maka data yang ada pada data[0] dan [1] harus digeser ke kanan array.
data[0],[1],[2] telah terurut secara relatif kemudian data[3] akan dibandingkan dengan data yang ada disebelah kirinya, karena data[3] lebih besar daripada data yang ada dikirinya maka tidak perlu penyisipan.
Sekarang data[4] akan dibandingkan dengan data yang dikirinya.
data[3] lebih besar dari pada data[4] maka perlu dilakukan penyisipan data[4] ke kirinya. Kemudian pergeseran dari data [3] ke data[4].
Kemudian dilakukan perulangan apakah data-data yang sudah terurut.
Data Telah terurut ascending |
Contoh Studi Kasus: Membuat program pengurutan nilai murid yang diinput oleh user secara langsung saat program dieksekusi. menggunakan metode insertion sort. Memiliki pilihan ascending dan descending.
Programnya:
Running Program di atas:
Referensi:
Kadir, Abdul & Heriyanto.2005.Algoritma Pemrograman Menggunakan C++.Yogyakarta:Penerbit Andi.
Kadir, Abdul & Heriyanto.2005.Algoritma Pemrograman Menggunakan C++.Yogyakarta:Penerbit Andi.
Materi Dosen Mata Kuliah Praktikum Struktur Data. IB KETUT SURYA ARNAWA, S.Kom.
Source Code tidak sesuai hasil running!
BalasHapus