Tugas alpro Aril Firmansyah pertemuan 13
Kode ini berisi implementasi dari lima algoritma sorting (pengurutan) yang berbeda-beda, semuanya digunakan untuk mengurutkan daftar mainan berdasarkan atribut "harga" mainan tersebut.
Data mainan (mainan) disimpan sebagai list dari dictionary. Setiap dictionary mewakili satu mainan dengan kunci "nama" dan "harga".
Contoh: {"nama": "Mobil Mainan", "harga": 50000}
2. Fungsi-fungsi Sorting
Kode ini mendefinisikan lima fungsi sorting utama:
bubble_sort(data): Algoritma sederhana yang berulang kali menukar elemen yang berdekatan jika urutannya salah.
selection_sort(data): Algoritma yang mencari elemen terkecil dari bagian yang belum diurutkan dan menukarnya dengan elemen di posisi awal bagian tersebut.
insertion_sort(data): Algoritma yang membangun array (atau list) akhir satu item pada satu waktu.
merge_sort(data): Algoritma Divide and Conquer yang membagi list menjadi dua, mengurutkan masing-masing secara rekursif, dan kemudian menggabungkannya.
quick_sort(data): Algoritma Divide and Conquer yang memilih elemen sebagai pivot dan mempartisi array di sekitar pivot tersebut.
Catatan: Semua fungsi sorting ini mengurutkan berdasarkan nilai "harga" dalam setiap dictionary di list.
3. Fungsi Utility
print_mainan(data): Fungsi sederhana untuk mencetak data mainan setelah diurutkan dalam format yang rapi (Nama Mainan - Harga).
4. Fungsi Menu dan Eksekusi Utama
menu(): Fungsi ini menampilkan menu kepada pengguna untuk memilih salah satu dari lima metode sorting.
Di dalam menu():
Pengguna diminta memasukkan pilihan (1-5).
Sesuai pilihan, data mainan yang telah dicopy (mainan.copy()) akan diurutkan menggunakan fungsi sorting yang dipilih. Menggunakan .copy() memastikan data mainan asli tidak berubah.
Hasil yang telah diurutkan (sorted_data) kemudian dicetak menggunakan print_mainan().
Eksekusi kode dimulai dengan if __name__ == '__main__': menu().
Secara Keseluruhan: Kode ini adalah demonstrasi praktis untuk membandingkan implementasi dan hasil dari berbagai algoritma pengurutan pada kumpulan data dictionary yang spesifik.

.
Komentar
Posting Komentar