Pengantar Algoritma
Algoritma pemrograman adalah urutan langkah logis tertentu untuk memecahkan
suatu masalah. Hal ini ditekankan pada urutan langkah logis, yang artinya
algoritma harus mengikuti suatu urutan tertentu, dan langkah-langkahnya tidak
boleh diloncat. Pengertian lainnya dari algoritma adalah urutan
langkah-langkah logis dalam penyelesaian masalah yang disusun secara
sistematis.
Asal kata algoritma sendiri berasal dari nama Abu Ja’far Mohammed Ibn Musa
al-Khowarizmi, ilmuwan Persia yang menulis buku berjudul “Al Jabr
W’Al-Muqabala” (Rules of Restoration and Reduction) yang diterbitkan pada tahun
825 M.
Dalam algoritma, alur pemikiran dalam menyelesaikan suatu persoalan
dituangkan secara tertulis. Hal pertama yang ditekankan adalah alur pikiran, sehingga
algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan
penekanan kedua adalah tertulis, yang artinya alur tersebut dapat berupa
kalimat, gambar, atau tabel tertentu.
Algoritma sendiri memiliki beberapa ciri penting agar bisa digunakan untuk
menyelesaikan masalah, diantaranya:
§
Algoritma harus berhenti setelah mengerjakan sejumlah langkah tertentu
§
Setiap langkah harus didefinisikan dengan tepat dan tidak ambigu
§
Algoritma memiliki masukan berjumlah nol atau lebih.
§
Algoritma memiliki keluaran berjumlah nol atau lebih.
§
Algoritma harus efektif. Maksudnya setiap langkah yang tertulis harus
sederhana sehingga dapat dikerjakan dalam waktu singkat dan masuk akal.
Dalam bidang komputer, fungsi algoritma sangat diperlukan untuk
menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numerik.
Tanpa algoritma yang dirancang dengan baik, proses pemrograman akan menjadi
salah, rusak, lambat dan tidak efisien. Pelaksana langkah-langkah di dalam
algoritma adalah sistem komputer. Agar manusia dan komputer dapat
berkomunikasi, manusia memberikan perintah-perintah kepada komputer berupa
kumpulan instruksi yang dikumpulkan di dalam program. Dalam menyelesaikan persoalan,
komputer perlu merumuskan beberapa langkah penyelesaian persoalan dalam
sekumpulan instruksi. Kumpulan instruksi yang dimengerti oleh komputer inilah
yang disebut dengan program.
Untuk menerjamahkan bahasa manusia ke dalam bahasa komputer, diperlukan
sebuah alat untuk menjembatani komunikasi di antara keduanya. Alat yang
digunakan tersebut adalah bahasa pemrograman. Setiap bahasa pemrograman
memiliki tingkatannya tersendiri, tergantung dari bagaimana bahasa tersebut
bisa diterapkan langsung oleh manusia selaku pengguna. Tingkatan bahasa pemrograman dapat
dikategorikan ke dalam 3 jenis, yaitu:
§
Bahasa tingkat tinggi (High Level Language / HLL). Contohnya: Pascal, C,
Java, PHP, ASP
§
Bahasa tingkat menengah (Medium Level Language / MLL). Contohnya: Assembly
§
Bahasa tingkat rendah (Low Level Language / LLL). Contohnya : Machine Code
Dari berbagai bahasa pemrograman, cara memberikan instruksinya
berbeda-beda. Meskipun begitu, semuanya bertujuan untuk menghasilkan keluaran
yang sama. Program yang ditulis dalam bahasa pemrograman akan dikonversi ke
dalam bahasa mesin menggunakan penerjemah. Berikut ini metode menerjemahkan
bahasa pemrograman ke dalam bahasa mesin dalam programming:
·
Interpreter, yaitu menerjemahkan baris per baris instruksi. Bahasa Basic
menggunakan metode ini.
·
Compiler, yaitu menerjemahkan setelah seluruh instruksi yang ditulis.
Bahasa Pascal, dan C adalah beberapa contoh bahasa pemrograman yang menggunakan
metode ini.
Dalam mempelajari programming, Anda harus paham perbedaan antara belajar
programming dengan belajar bahasa pemrograman. Belajar programming artinya Anda
belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu
notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar bahasa
pemrograman artinya Anda belajar memakai suatu bahasa, aturan tata bahasa,
instruksi yang digunakan, serta tata cara pengoperasian compiler, untuk membuat
program yang ditulis ke dalam bahasa tersebut.
Penulisan algoritma harus terdiri dari 3 bagian berikut ini:
·
Judul algoritma;Bagian yang terdiri atas nama algoritma
dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama sebaiknya singkat
dan menggambarkan apa yang dilakukan oleh algoritma tersebut.
·
Deklarasi; Bagian untuk mendefinisikan semua nama
yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan,
peubah, tipe, prosedur dan fungsi.
·
Deskripsi; Bagian ini berisi uraian langkah-langkah
penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan
dijelaskan selanjutnya.
·
Penulisan algoritma sendiri tidak tergantung dari spesifikasi bahasa
pemrograman dan kemampuan komputer yang mengeksekusinya. Notasi algoritma bukan
notasi bahasa pemrograman, namun algoritma dapat diterjemahkan ke dalam
berbagai bahasa pemrograman. Lalu seperti apa contoh algoritma pemrograman
dasar yang wajib Anda kuasai? Berikut ini contoh-contohnya:
1. Algoritma Narasi
Contoh: Algoritma Kelulusan_mhs
Persoalan: Diberikan data berupa nama dan nilai mahasiswa. Jika nilai
mahasiswa lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan
lulus. Sedangkan jika nilainya lebih kecil dari 60, maka mahasiswa tersebut
dinyatakan tidak lulus.
Algoritmanya akan seperti berikut:
baca nama dan nilai mahasiswa.
jika nilai >= 60 maka
keterangan = lulus
tetapi jika
keterangan = tidak lulus.
tulis nama dan keterangan
2. Algoritma Pseudo Code
Contoh; Algoritma Kelulusan_mhs
Persoalan: Diberikan data berupa nama dan nilai mahasiswa. Jika nilai
mahasiswa lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan
lulus. Sedangkan jika nilainya lebih kecil dari 60, maka mahasiswa tersebut
dinyatakan tidak lulus.
Deklarasi dari tipe datanya akan seperti berikut:
Nama = string
Nilai = integer
Keterangan = string
Algoritmanya akan seperti berikut:
read (nama, nilai)
if nilai >= 60 then
keterangan = ‘lulus’
else
keterangan = ‘tidak lulus’
write(nama, keterangan)
3. Algoritma Flowchart
Berikut ini adalah beberapa contoh dari algoritma flowchart. Fungsi flowchart pada pemrograman adalah untuk
memudahkan programmer ketika merancang sebuah program komputer. Ini dia
contoh-contohnya:
§
Menentukan bilangan ganjil atau genap
Terdapat bilangan yang bernama “bilangan bulat” yaitu 0, 1, -1, 2, dan
seterusnya serta bilangan asli 1, 2, 3, 4, 5, dst. Kedua jenis bilangan
tersebut sering digunakan dalam perhitungan. Algoritma di bawha ini akan
menentukan apakah bilangan tersebut ganjil atau genap> Berikut ini adalah
flowchart dari algoritma tersebut:
Dari flowchart di
atas, penjelasannya adalah sebagai berikut:
Bilangan genap adalah sebuah bilangan bulat yang akan habis atau tidak
memiliki sisa jika dibagi 2 (dua). Sedangkan bilangan ganjil adalah sebuah
bilangan bulat yang tidak akan habis apabila dibagi 2 (dua) atau ada sisa
pembagian.
§ Algoritma tahun kabisat
Tahun kabisat adalah sebuah tahun yang memiliki tambahan 1 hari yang bertujuan agar kalender dapat menyesuaikan dengan keadaan astronomi. Saat tahun kabisat, bulan Februari memiliki 29 hari. Tahun yang dapat untuk dibagi dengan 4 adalah tahun kabisat. Berikut ini adalah algoritma untuk menentukan tahun kabisat jika disajikan dengan flowchart seperti di bawah ini:
§ Menghitung harga yang harus dibayar setelah mendapatkan sebuah diskon
Contoh flowchart kali ini adalah flowchart dari algoritma untuk menentukan biaya yang harus dibayar oleh pembeli sesudah mendapat diskon 10%. Syarat untuk mendapatkan diskon tersebut adalah jumlah dari total pembelian sebesar Rp.1.500.000,-. Berikut ini adalah algoritma flowchartnya:
Jumlah barang memiliki sifat yang dinamik sesuai dengan masukan dari pengguna. Intinya, jika total pembeliannya kurang dari 1500000, maka pembeli tidak akan mendapatkan diskon.
§ Flowchart menghitung luas lingkaran
Algoritma flowchart di bawah ini adalah contoh flowchart untuk menghitung luas lingkaran dengan rumus L = πr2:
Algoritma:
§ Program dimulai
§ Tentukan nilai phi dan r
§ Hitung L = phi x r2
§ Cetak Hasil L
§ Program Selesai
§