1. Definisi Algoritma
Secara umum, algoritma adalah serangkaian instruksi atau langkah-langkah yang terstruktur, terbatas, dan jelas untuk menyelesaikan suatu masalah atau mencapai suatu tujuan tertentu. Dalam konteks ilmu komputer dan matematika, algoritma seringkali digunakan sebagai spesifikasi untuk melakukan perhitungan atau pemrosesan data.
Intinya, algoritma adalah resep untuk menyelesaikan suatu tugas. Sama seperti resep masakan yang memberikan langkah-langkah detail untuk membuat hidangan, algoritma memberikan langkah-langkah detail untuk komputer (atau bahkan manusia) untuk menyelesaikan suatu masalah.
Ciri-ciri Algoritma yang Baik:
* Terbatas (Finiteness): Algoritma harus berakhir setelah sejumlah langkah tertentu. Tidak boleh ada proses yang berjalan tanpa henti.
* Jelas (Definiteness): Setiap langkah dalam algoritma harus didefinisikan secara tepat dan tidak ambigu. Tidak ada keraguan tentang apa yang harus dilakukan pada setiap langkah.
* Masukan (Input): Algoritma memiliki nol atau lebih masukan yang diberikan sebelum algoritma dimulai.
* Keluaran (Output): Algoritma memiliki satu atau lebih keluaran yang dihasilkan setelah algoritma selesai. Keluaran ini harus benar dan relevan dengan masalah yang diselesaikan.
* Efektivitas (Effectiveness): Setiap langkah dalam algoritma harus cukup sederhana sehingga dapat dilakukan dalam waktu yang wajar.
2. Cara Menulis Algoritma
Ada beberapa cara untuk menulis atau merepresentasikan algoritma, masing-masing dengan kelebihan dan kekurangannya:
a. Kalimat Deskriptif (Natural Language)
Ini adalah cara yang paling sederhana dan mudah dipahami, terutama untuk algoritma yang tidak terlalu kompleks. Algoritma ditulis dalam bentuk narasi menggunakan bahasa sehari-hari.
Struktur Penulisan Kalimat Deskriptif:
* Judul (Header): Nama algoritma dan penjelasan singkat.
* Deklarasi: Daftar semua variabel, tipe data, konstanta, atau fungsi yang akan digunakan.
* Deskripsi (Body): Urutan langkah-langkah untuk menyelesaikan masalah.
Contoh Struktur:
ALGORITMA NamaAlgoritma
{
Penjelasan singkat mengenai algoritma ini
}
DEKLARASI
Variabel1 : TipeData1
Variabel2 : TipeData2
...
DESKRIPSI
1. Langkah pertama
2. Langkah kedua
3. ...
n. Langkah terakhir
b. Pseudocode
Pseudocode adalah notasi yang menyerupai bahasa pemrograman tingkat tinggi, tetapi tidak terikat pada sintaksis bahasa pemrograman tertentu. Pseudocode lebih terstruktur daripada kalimat deskriptif dan sering menggunakan kata kunci seperti IF, THEN, ELSE, WHILE, FOR, READ, PRINT, dll. Ini memudahkan programmer untuk menerjemahkannya ke dalam kode program yang sesungguhnya.
Contoh:
ALGORITMA HitungLuasPersegiPanjang
DEKLARASI
panjang, lebar, luas : INTEGER
DESKRIPSI
READ panjang
READ lebar
luas = panjang * lebar
PRINT luas
c. Flowchart (Diagram Alir)
Flowchart adalah representasi grafis dari algoritma menggunakan simbol-simbol standar yang saling terhubung dengan garis panah untuk menunjukkan urutan langkah. Flowchart sangat berguna untuk memvisualisasikan alur logika suatu algoritma, terutama yang melibatkan percabangan (decision) dan perulangan (loop).
Simbol-simbol umum dalam Flowchart:
* Terminator (oval): Menandakan awal atau akhir algoritma.
* Process (persegi panjang): Menunjukkan suatu proses atau perhitungan.
* Input/Output (jajar genjang): Menunjukkan operasi masukan atau keluaran data.
* Decision (diamond): Menunjukkan kondisi atau percabangan (misalnya, IF-THEN-ELSE).
* Connector (lingkaran kecil): Menghubungkan bagian-bagian flowchart yang terpisah.
* Panah (arrow): Menunjukkan arah aliran kontrol.
3. Contoh-contoh Algoritma
Algoritma ada di mana-mana, tidak hanya di dunia komputasi. Berikut beberapa contoh:
a. Contoh dalam Kehidupan Sehari-hari: Membuat Kopi
Ini adalah algoritma sederhana yang sering kita lakukan:
Dengan Kalimat Deskriptif:
ALGORITMA MembuatKopi
{
Algoritma ini menjelaskan langkah-langkah untuk membuat secangkir kopi.
}
DEKLARASI
Tidak ada variabel khusus yang dideklarasikan.
DESKRIPSI
1. Siapkan cangkir, kopi bubuk, gula, dan air panas.
2. Masukkan satu sendok teh kopi bubuk ke dalam cangkir.
3. Tambahkan gula sesuai selera.
4. Tuangkan air panas ke dalam cangkir.
5. Aduk hingga tercampur rata.
6. Kopi siap disajikan.
Dengan Pseudocode:
ALGORITMA MembuatKopi
START
SIAPKAN Cangkir, Kopi_Bubuk, Gula, Air_Panas
MASUKKAN Kopi_Bubuk ke Cangkir
TAMBAHKAN Gula
TUANGKAN Air_Panas ke Cangkir
ADUK
SAJIKAN Kopi
END
Dengan Flowchart:
(Tidak bisa digambarkan langsung di sini, tapi akan ada simbol oval untuk START, jajar genjang untuk "Siapkan Bahan", persegi panjang untuk "Masukkan Kopi", persegi panjang untuk "Tambahkan Gula", persegi panjang untuk "Tuangkan Air Panas", persegi panjang untuk "Aduk", jajar genjang untuk "Sajikan Kopi", dan oval untuk END, semua terhubung dengan panah).
b. Contoh dalam Komputasi: Menghitung Luas Segitiga
Dengan Kalimat Deskriptif:
ALGORITMA HitungLuasSegitiga
{
Algoritma ini menghitung luas segitiga berdasarkan alas dan tinggi yang diberikan.
}
DEKLARASI
alas : BILANGAN_BULAT
tinggi : BILANGAN_BULAT
luas : BILANGAN_REAL
DESKRIPSI
1. MULAI
2. BACA nilai alas
3. BACA nilai tinggi
4. HITUNG luas = (alas * tinggi) / 2
5. TAMPILKAN nilai luas
6. SELESAI
Dengan Pseudocode:
ALGORITMA HitungLuasSegitiga
START
READ alas
READ tinggi
luas = (alas * tinggi) / 2
PRINT luas
END
Dengan Flowchart:
(Mirip dengan contoh kopi, namun simbol proses akan digunakan untuk perhitungan luas = (alas * tinggi) / 2).
4. Cara Penyajian Algoritma
Penyajian algoritma sangat penting agar mudah dipahami oleh pembaca, baik itu sesama programmer, analis sistem, atau bahkan orang awam. Tiga metode utama yang telah dijelaskan di atas (kalimat deskriptif, pseudocode, dan flowchart) adalah cara-cara umum untuk menyajikan algoritma.
Pilihan Cara Penyajian Tergantung pada:
* Kompleksitas Algoritma: Untuk algoritma sederhana, kalimat deskriptif sudah cukup. Untuk yang lebih kompleks, pseudocode atau flowchart lebih disarankan.
* Target Audiens: Jika audiens adalah orang aworang yang tidak memiliki latar belakang pemrograman, kalimat deskriptif atau flowchart yang intuitif lebih baik. Jika audiens adalah programmer, pseudocode adalah pilihan yang sangat baik.
* Tahap Pengembangan: Pada tahap awal perancangan, flowchart dapat membantu memvisualisasikan alur secara keseluruhan. Pseudocode sering digunakan sebelum mengimplementasikan ke bahasa pemrograman tertentu.
Tips Tambahan dalam Penyajian Algoritma:
* Gunakan Bahasa yang Jelas dan Konsisten: Hindari ambiguitas.
* Berikan Komentar (jika menggunakan pseudocode atau bahasa pemrograman): Jelaskan bagian-bagian yang mungkin membingungkan.
* Gunakan Indentasi (jika menggunakan pseudocode): Untuk menunjukkan struktur blok kode (misalnya, di dalam IF atau WHILE).
* Validasi: Pastikan algoritma yang Anda sajikan benar dan dapat menyelesaikan masalah.
Dengan memahami definisi, cara menulis, contoh, dan cara penyajian algoritma, Anda akan memiliki dasar yang kuat untuk merancang solusi yang efisien dan efektif untuk berbagai masalah.
