DAA - Pendahuluan
Algoritme adalah sekumpulan langkah operasi untuk menyelesaikan masalah dalam melakukan kalkulasi, pemrosesan data, dan tugas penalaran otomatis. Algoritme adalah metode efisien yang dapat diekspresikan dalam waktu dan ruang yang terbatas.
Algoritme adalah cara terbaik untuk merepresentasikan solusi dari masalah tertentu dengan cara yang sangat sederhana dan efisien. Jika kita memiliki algoritme untuk masalah tertentu, maka kita dapat mengimplementasikannya dalam bahasa pemrograman apa pun, artinya filealgorithm is independent from any programming languages.
Desain Algoritma
Aspek penting dari perancangan algoritme antara lain membuat algoritme yang efisien untuk menyelesaikan masalah secara efisien dengan menggunakan ruang dan waktu yang minimum.
Untuk memecahkan masalah, pendekatan yang berbeda dapat diikuti. Beberapa di antaranya dapat menjadi efisien sehubungan dengan konsumsi waktu, sedangkan pendekatan lain mungkin efisien dalam memori. Namun, perlu diingat bahwa konsumsi waktu dan penggunaan memori tidak dapat dioptimalkan secara bersamaan. Jika kita memerlukan algoritme untuk berjalan dalam waktu yang lebih singkat, kita harus menginvestasikan lebih banyak memori dan jika kita memerlukan algoritme untuk berjalan dengan memori yang lebih sedikit, kita perlu memiliki lebih banyak waktu.
Langkah-langkah Pengembangan Masalah
Langkah-langkah berikut terlibat dalam memecahkan masalah komputasi.
- Definisi masalah
- Pengembangan model
- Spesifikasi Algoritma
- Mendesain Algoritma
- Memeriksa kebenaran sebuah Algoritma
- Analisis Algoritma
- Implementasi Algoritma
- Pengujian program
- Documentation
Karakteristik Algoritma
Karakteristik utama dari algoritma adalah sebagai berikut -
Algoritma harus memiliki nama yang unik
Algoritme harus memiliki kumpulan masukan dan keluaran yang didefinisikan secara eksplisit
Algoritme tersusun dengan baik dengan operasi yang tidak ambigu
Algoritme berhenti dalam waktu yang terbatas. Algoritme tidak boleh berjalan tanpa batas, yaitu algoritme harus diakhiri di beberapa titik
Pseudocode
Pseudocode memberikan deskripsi tingkat tinggi dari suatu algoritma tanpa ambiguitas yang terkait dengan teks biasa tetapi juga tanpa perlu mengetahui sintaks dari bahasa pemrograman tertentu.
Waktu berjalan dapat diperkirakan dengan cara yang lebih umum dengan menggunakan Pseudocode untuk merepresentasikan algoritme sebagai satu set operasi dasar yang kemudian dapat dihitung.
Perbedaan antara Algoritma dan Pseudocode
Algoritme adalah definisi formal dengan beberapa karakteristik khusus yang menjelaskan suatu proses, yang dapat dijalankan oleh mesin komputer Turing-complete untuk melakukan tugas tertentu. Secara umum, kata "algoritme" dapat digunakan untuk mendeskripsikan tugas tingkat tinggi apa pun dalam ilmu komputer.
Di sisi lain, pseudocode adalah deskripsi informal dan (seringkali belum sempurna) dari suatu algoritme yang dapat dibaca manusia dengan meninggalkan banyak detail granular darinya. Menulis pseudocode tidak memiliki batasan gaya dan satu-satunya tujuan adalah untuk mendeskripsikan langkah-langkah algoritme tingkat tinggi dengan cara yang lebih realistis dalam bahasa alami.
Sebagai contoh, berikut adalah algoritma untuk Insertion Sort.
Algorithm: Insertion-Sort
Input: A list L of integers of length n
Output: A sorted list L1 containing those integers present in L
Step 1: Keep a sorted list L1 which starts off empty
Step 2: Perform Step 3 for each element in the original list L
Step 3: Insert it into the correct position in the sorted list L1.
Step 4: Return the sorted list
Step 5: Stop
Berikut ini adalah pseudocode yang menjelaskan bagaimana proses abstrak tingkat tinggi yang disebutkan di atas dalam algoritme Insertion-Sort dapat dijelaskan dengan cara yang lebih realistis.
for i <- 1 to length(A)
x <- A[i]
j <- i
while j > 0 and A[j-1] > x
A[j] <- A[j-1]
j <- j - 1
A[j] <- x
Dalam tutorial ini, algoritma akan disajikan dalam bentuk pseudocode, yang dalam banyak hal mirip dengan C, C ++, Java, Python, dan bahasa pemrograman lainnya.