Coconote
AI notes
AI voice & video notes
Export note
Try for free
Memahami Kebenaran Algoritma dan Insertion Sort
Sep 11, 2024
Kuliah Desain dan Analisis Algoritma: Algorithm Correctness
Pengantar
Definisi: Algorithm correctness (kebenaran algoritma) adalah bagaimana cara kita tahu suatu algoritma itu benar.
Menggunakan sedot (pseudo-code) untuk menjelaskan algoritma, mirip dengan bahasa pemrograman seperti C atau Java.
Contoh: Menukar dua variabel x dan y cukup dengan deskripsi sederhana "tukar".
Insertion Sort
Definisi
Insertion Sort adalah algoritma yang digunakan untuk mengurutkan data dalam array.
Karakteristik:
In-place
: Data terurut di dalam array yang sama tanpa memerlukan array tambahan yang besar.
Stable
: Urutan relatif data duplikat tidak berubah.
Implementasi Insertion Sort
Nama Algoritma:
Insertion Sort
Input:
Sebuah array A.
Proses:
Gunakan for-loop untuk iterasi elemen di array.
Key:
Ambil elemen yang akan disisipkan.
Geser elemen yang lebih besar ke kanan hingga menemukan tempat yang tepat untuk key.
Sisipkan key pada posisi yang tepat.
Contoh Eksekusi
Array awal: [5, 2, 4, 6, 1, 3]
Proses:
Iterasi 1: [2, 5, 4, 6, 1, 3]
Iterasi 2: [1, 2, 4, 5, 6, 3]
Iterasi 3: [1, 2, 3, 4, 5, 6]
Loop Invariant
Definisi
Loop invariant adalah pernyataan yang benar sebelum dan setelah setiap iterasi loop.
Tiga Hal yang Perlu Dibuktikan
Initialization
: Benar sebelum loop dimulai.
Maintenance
: Jika benar sebelum iterasi, tetap benar setelah iterasi.
Termination
: Saat loop berakhir, invariant memberikan informasi tentang kebenaran algoritma.
Teknik Pembuktian Kebenaran Algoritma
Postcondition
Postcondition adalah kondisi yang harus dipenuhi setelah eksekusi algoritma.
Contoh postcondition untuk Insertion Sort: array harus terurut setelah eksekusi.
Penggunaan Loop Invariant
Menggunakan loop invariant untuk memastikan bahwa algoritma memberikan hasil yang diharapkan.
Rasio Multiplikasi
Deskripsi Algoritma
Menghitung hasil kali dua bilangan asli A dan B.
Memvisualisasikan dengan dua kolom: satu untuk A yang dibagi dua, satu untuk B yang dikali dua.
Menjumlahkan baris yang memiliki nilai genap pada kolom A.
Implementasi Algoritma
Inisialisasi total = 0.
Lakukan loop hingga x = 0.
Jika x ganjil, tambahkan y ke total.
Pembagian x dengan 2 dan kalikan y dengan 2.
Return total sebagai hasil.
Rancangan Algoritma
Menggunakan Loop Invariant
Untuk menghitung jumlah elemen dalam array:
Inisialisasi total = 0.
Gunakan loop dengan kondisi j tidak sama dengan n.
Tambahkan elemen array ke total saat iterasi.
Kesimpulan
Kebenaran algoritma dapat dibuktikan menggunakan loop invariant.
Penting untuk memastikan bahwa setiap bagian dari algoritma berfungsi dengan benar dan memberikan hasil yang diharapkan.
📄
Full transcript