Tugas DAA (Kelas C) by Anom Harya (0910680005)
Soal :
Jawaban:
Algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah. (sumber)
Aturan penulisan pseudocode tidaklah baku. Dalam pseudocode tidak ada syntax standar yang resmi. Karena itu, pseudocode ini dapat kita terapkan dalam berbagai bahasa. (sumber)
Pencarian berurutan (pencarian linear) merupakan metode pencarian yang paling sederhana. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.
Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula.
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut pencarian biner tidak dapat dilakukan. Dalam kehidupan sehari-hari, sebenarnya kita juga sering menggunakan pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus.
Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah –1. Jika lebih besar, porses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1. Demikian seterusnya sampai data tengah sama dengan yang dicari.
Algoritma pencarian biner dapat dituliskan sebagai berikut :
(sumber)
Algoritma sorting :
Algoritma sorting terdiri dari beberapa algoritma, seperti Bubble sort, Quick sort, Selection sort, Insertion sort, dan Merge sort. Setiap algoritma tersebut memiliki perbedaan satu sama lain. Berikut merupakan pembahasan umum mengenai jenis-jenis algoritma sorting.
Bubble sort merupakan cara pengurutan yang sederhana. Konsep dari ide dasarnya adalah seperti gelembung air untuk elemen struktur data yang semestinya berada pada posisi awal. Cara kerjanya adalah dengan berulang-ulang melakukan tranversal (looping) terhadap elemen-elemen struktur data yang belum diurutkan. Di dalam tranversal tersebut, nilai dari dua elemen struktur data dibandingkan. Jika ternyata urutannya tidak sesuai dengan pesanan, maka dilakukan pertukaran. Algoritma sorting ini disebut juga dengan comparison sort dikarenakan hanya mengandalkan perbandingan elemen untuk mengoperasikannya.
Algoritma bubble sort
Algoritma bubble sort dapat diringkas sebagai berikut, jika N adalah panjang elemen struktur data, dengan elemen-elemennya adalah T1, T2, T3, …, TN-1, TN, maka
Algoritma sorting sederhana yang lain adalah selection sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending, elemen yang paling kecil diantara elemen-elemen yang belum urut disimpan indeksnya. Kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending, elemen yang paling besar disimpan indeksnya kemudian ditukar.
Algoritma Selection Sort
Algoritma selection sort dapat dirangkum sebagai berikut:
Cara kerja insertion sort sebagaimana namanya, awalnya dilakukan iterasi; dimana di setiap iterasi insertion sort memindahkan nilai elemen, kemudian menyisipkannya berulang-ulang sampai ke tempat yang tepat. Begitu seterusnya dilakukan. Dari proses iterasi, terbentuklah bagian yang telah di-sorting dan bagian yang belum di-sorting.
Algortima Insertion Sort
Algoritma Insertion Sort dapat dirangkum sebagai berikut:
Algoritma Merge Sort ditemukan oleh John vonNeumann di tahun 1945. Merge Sort termasuk paradigm algoritma divide and conquer (bagi dan atasi). Hal ini dikarenakan algoritma ini melakukan pembagian struktur data sebelum kemudian dioperasikan satu per satu. Intinya, algoritma ini menggunakan 2 ide utama, sebagai berikut:
Algoritma Merge Sort
Algoritma Merge Sort sederhananya dapat ditulis sebagai berikut:
Quick sort adalah algoritma sorting yang terkenal. Algoritma ini dirancang oleh C. A. R. Hoare pada tahun 1960 ketika bekerja untuk perusahaan manufaktur computer saintifik kecil, Eliot Brothers. Algoritma ini rekursif, dan termasuk paradigm algoritma divide and conquer.
Algoritma Quick Sort
Algoritma ini terdiri dari 4 langkah utama :