Pengenalan Algoritma, Mulai Pengertian Algoritma? Dan bagaimana Algoritma dalam Kehidupan Sehari-hari?
1.1. Pendahuluan
Komputer adalah alat bantu untuk menyelesaikan masalah. Namun, masalah yang ingin diselesaikan tidak dapat langsung “disodorkan” begitu saja ke komputer. Sebagai contoh, andaikan anda mempunyai data nilai ujian sekumpulan mahasiswa. Anda ingin mengurutkan semua data tersebut dari nilai tertinggi hingga nilai terendah. Misalkan anda ketikkan semua nilai ujian dengan menggunakan sebuah program pengolah kata, lalu dibawahnya dituliskan perintah kepada komputer untuk mengurutkan seperti berikut:
30, 27, 36,
91, 64, 76, 74, 32
Urutkan
mulai dari nilai terbesar hingga nilai terkecil.
Apakah komputer Anda mengerjakan masalah pengurutan
tersebut? Tentu saja tidak, karena komputer tidak “mengerti” perintah anda di
atas dan tidak “tahu” bagaimana cara mengurutkan sekumpulan nilai tersebut.
Agar komputer dapat menyelesaikan masalah
tersebut, maka Anda perlu merumuskan langkah-langkah penyelesaian tersebut
dalam suatu rangkaian instruksi. Komputerlah yang akan mengerjakan rangkaian
instruksi tersebut, karena komputer dapat mengerjakannya dengan cepat, akurat,
bahkan berulang-ulang tanpa kenal lelah dan bosan. Sekumpulan instruksi yang
merupakan penyelesaian masalah itu dinamakan program. Program “dimasukkan” ke
dalam komputer, komputer mengerjakan instruksi di dalam program tersebut, lalu
memberikan hasil atau keluaran yang diinginkan.
Misalkan program yang berisi rangkaian instruksi untuk
mengurutkan sekumpulan data tersebut anda rumuskan kembali sebagai berikut:
Langkah 1 : Cari nilai
terbesar diantara N buah data
Langkah 2 : Tempatkan nilai terbesar tersebut pada
posisi yang tepat (dengan cara mempertukarkan)
Langkah 3 : Ulangi langkah 1 untuk N – 1 buah data
yang lain.
Instruksi di atas masih belum bisa dijalankan oleh komputer
karena bahasanya tidak dimengerti oleh komputer. Agar program dapat
dilaksanakan oleh komputer, maka program tersebut harus ditulis dalam suatu
bahasa yang dimengerti oleh komputer. Sebagaimana dalam kehidupan manusia, kita
hanya dapat memberikan perintah kepada orang lain dalam bahasa yang dimengerti
olehnya. Karena komputer adalah mesin, maka program harus ditulis dalam bahasa
yang khusus dibuat untuk “berkomunikasi” dengan komputer. Bahasa komputer yang
digunakan dalam menulis program dinamakan bahasa pemrograman.
Kumpulan Trik-Trik Menarik Komputer
Saat ini, dengan berkembangnya teknik
pemrograman terstruktur, orang tidak lagi memecahkan masalah dengan langsung
menulis programnya dalam bahasa pemrograman. Orang mulai memikirkan suatu cara
penyelesaian masalah yang akan diprogram dengan menekankan pada desain atau
rancangan yang mewakili pemecahan masalah tersebut. Desain ini independen dari
bahasa pemrograman yang digunakan dari komputer yang menjalankan program.
Desain menyajikan cara berpikir si pemrogram dalam menyelesaikan masalah.
Desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam
notasi-notasi deskriptif. Urutan langkah-langkah yang sistematis untuk
menyelesaikan sebuah masalah dinamakan algoritma.
Notasi yang digunakan untuk menuliskan
algoritma disebut notasi algoritma. Notasi algoritma bukan notasi bahasa
pemrograman, karena itu program dalam notasi algoritma tidak dapat dijalankan
oleh komputer. Agar dapat dijalankan oleh komputer, program dalam notasi
algoritma harus ditranslasikan (diterjemahkan) ke dalam notasi bahasa
pemrograman yang dipilih.
1.2. Algoritma
Ditinjau dari asal usul kata, kata
algoritma sendiri mempunyai sejarah yang tidak lazim. Kata ini tidak muncul di
dalam kamus webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung
dengan angka Arab. Anda dikatakan algorist
jika anda menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal
kata algorism ini namu hasilnya kurang memuaskan. Akhirnya para ahli sejarah
matematika menemukan asal mula kata tersebut. Kata algorism berasal dari nama
penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad Ibnu Musa
alKhuwarizmi (al-Khuwarizmi dibaca orang Barat menjadi algorism). Al-Khuwarizmi
menulis buku yang berjudul Kitab al jabar
wal-muqabala, yang artinya “Buku pemugaran dan pengurangan” (The Book of Restoration and Reduction). Perubahan
kata dari kata algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah
menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang
biasa/lumrah, maka lambat laun kata algorithm
berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara
umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
Pada tahun 1950, kata algoritma sering
dihubungkan dengan ‘Algoritma Euclidean’ (Euclid’s
algorithm), yaitu proses untuk menemukan pembagi bersama terbesar (common greatest divisor) dari dua buah
bilangan bulat, m dan n. Misalnya m=80 dan n=12. Faktor pembagi 80 adalah
1,2,4,5,8,10,16,20,40,80 dan faktor pembagi 12 adalah 1,2,3,4,6,12, maka
pbt(80,12)=4. Langkah-langkahnya adalah sebagai berikut:
80/12 = 8, sisa 8
12/8 = 1, sisa 4 8/4 = 2 sisa 0 karena pembagian yang
terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0 yaitu 4,
menjadi pbt(80,12). Jadi pbt(80,12) = pbt(12/8) = pbt(8,4) = pbt(4,0) = 4.
Algoritma EUCLIDEAN dapat dituliskan sebagai berikut:
Algoritma EUCLIDEAN
Diberikan dua buah bilangan
bulat tak negatif m dan n (m ≥ n). Carilah pembagi bersama terbesar (pbt) dari
kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis
membagi m dan n.
DESKRIPSI :
1. Jika n = 0
maka M adalah jawabannya;
Stop
Tetapi jika n ≠ 0,
Lanjutkan ke langkah 2.
2. Bagilah m
dengan n dan misalkan r adalah sisanya.
3. Ganti nilai
m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.
Dengan menggunakan m = 80 dan n=12, maka pbt(80,12)
dihitung dengan algoritma EUCLIDEAN di atas sebagai berikut:
1. (1) Karena n
= 12, maka lanjutkan ke langkah 2 2. (1) Hitung m/n = 80/12 = 6, sisanya r=8.
3. (1) Nilai mbaru=nlama=12
dan nbaru=r=8, lanjut ke langkah 1.
1. (2) Karena n
= 8, maka lanjutkan ke langkah 2 2. (2) Hitung m/n = 12/8 = 1, sisanya r=4.
3. (2) Nilai mbaru=nlama=8
dan nbaru=r=4, lanjut ke langkah 1.
1.
(3) Karena n = 4, maka lanjutkan ke langkah 2
2.
(3) Hitung m/n = 8/4 = 2, sisanya r=0.
3.
(3) Nilai mbaru=nlama=4 dan nbaru=r=0,
lanjut ke langkah 1.
1. (4) Karena n
= 0, maka m = 4 adalah jawabannya. Stop.
Jadi pbt(80,12)=4
Definisi :
• Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis.
• Algoritma
adalah urutan logis pengambilan keputusan untuk pemecahan masalah.
• Algoritma
adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau
matematika
• Algoritma
adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk
memecahkan suatu permasalahan.
Kata logis merupakan kata kunci dalam sebuah algoritma.
Langkah-langkah di dalam algoritma harus logis, ini berarti hasil dari urutan
langkah-langkah tersebut harus dapat ditentukan, benar atau salah.
Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.
Sebagai contoh, tinjau persoalan mempertukarkan isi dua
buah bejana, A dan B. Bejana A berisi larutan yang berwarna merah dan bejana B
berisi larutan berwarna biru. Kita ingin mempertukarkan isi kedua bejana itu
sedemikian rupa sehingga bejana A berisi larutan berwarna biru dan bejana B
berisi larutan berwarna merah.
Seseorang menuliskan langkah-langkah pertukaran isi kedua
bejana sebagai berikut:
Algoritma TUKAR ISI BEJANA 1
Diberikan dua buah bejana, A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
DESKRIPSI:
1. Tuangkan
larutan dari bejana A ke dalam bejana B.
2. Tuangkan
larutan dari bejana B ke dalam bejana A.
Algoritma di atas tidak meghasilkan pertukaran yang benar.
Untuk mempertukarkan isi dua buah bejana, kita memerlukan sebuah bejana
tambahan yang diperlukan sebagai tempat penampungan sementara. Sebuat bejana
tambahan tersebut bejana C. dengan menggunakan bejana bantuan C ini, algoritma
mempertukarkan isi dua buah bejana yang benar adalah sebagai berikut:
Algoritma TUKAR ISI BEJANA 2
Diberikan dua buah bejana, A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
DESKRIPSI:
1. Tuangkan
larutan dari bejana A ke dalam bejana C.
2. Tuangkan
larutan dari bejana B ke dalam bejana A. 3. Tuangkan larutan dari bejana C ke dalam bejana B.
Contoh algoritma mempertukarkan isi bejana di atas
memberikan dua pesan penting. Pertama, algoritma harus benar. Kedua, algoritma
harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar.
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming,
algoritma harus mempunyai lima ciri penting:
1. Algoritma
harus berhenti setelah mengerjakan sejumlah langkah terbatas (berhingga). Barisan
instruksi yang dibuat dalam suatu urutan tertentu, dimaksudkan agar masalah
yang dihadapi dapat diselesaikan. Banyaknya instruksi atau langkah itu haruslah
berhingga. Jika tidak demikian, proses yang dilakukan akan memerlukan waktu
yang relatif lebih lama dan diperoleh hasil yang tidak diperlukan atau tidak
berhubungan dengan masalah yang ada, bahkan mungkin proses akan terus
berlangsung walaupun solusi yang diharapkan telah diperoleh. Hasil akhir yang
didapat merupakan solusinya atau informasi tidak ditemukannya solusi. Dengan
kata lain, baik dalam kondisi ada solusi ataupun tidak, proses tetap akan
berhenti. Sebagai contoh, tinjau kembali algoritma EUCLIDEAN. Pada langkah 1,
jika n = 0, algoritma berhenti. Jika n ≠ 0, maka nilai n selalu berkurang sebagai
akibat langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program yang tidak
pernah berhenti adalah program yang berisi algoritma yang salah. Suatu prosedur
yang hanya akan berhenti jika mempunyai atau menghasilkan solusi disebut semi
algoritma.
2. Setiap
langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous). Pembaca harus mengerti apa
yang dimaksud dengan “m dan n adalah bilangan bulat tak-negatif”. Contoh
lainnya, pernyataan “bagilah P dengan sejumlah beberapa buah bilang bulat
positif” dapat bermakna ganda.
3. Algoritma
memiliki nol atau lebih masukan (input).
Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai
bekerja. Algoritma EUCLIDEAN mempunyai dua buah masukan, m dan n, sedangkan
algoritma TUKAR ISI BEJANA memiliki masukan larutan bejana A dan larutan bejana
B.
4. Algoritma
mempunya nol atau lebih keluaran (output). Keluaran adalah besaran yang
memiliki hubungan dengan masukan. Keluaran tersebut tentunya harus merupakan
solusi dari masalah yang sedang diselesaikan. Algoritma EUCLIDEAN mempunyai
satu keluaran yaitu n pada langkah 2 yang merupakan pembagi bersama terbesar
dari kedua masukannya. Algoritma TUKAR ISI BEJANA tidak memiliki keluaran sama
sekali.
5. Algoritma
harus efektif dan efisien. Setiap langkah harus sederhana sehingga dapat
dikerjakan dalam sejumlah waktu yang masuk akal. Suatu algoritma dikatakan
efektif jika algoritma tersebut dapat menghasilkan suatu solusi yang sesuai
dengan masalah yang diselesaikan. Dengan kata lain suatu algoritma harus tepat
guna. Suatu algoritma dikatakan efisien jika waktu proses dari algoritma
relatif lebih singkat dan penggunaan memorinya lebih sedikit.
Masalah
disebut dapat diselesaikan secara algoritma jika dapat ditulis program komputer
yang dapat menghasilkan jawaban benar untuk sembarang masukan (yang
dispesifikasikan) dalam waktu yang berhingga dan menggunakan ruang memori yang
tersedia.
Pada beberapa sumber lain, ada tambahan ciri dari
algoritma:
6. Algoritma
harus terstruktur. Urutan baris langkah-langkahnya yang digunakan harus disusun
sedemikian rupa agar proses penyelesaiannya tidak berbelit-belit, sehingga
memungkinkan waktu prosesnya akan menjadi relatif lebih singkat. Hal ini akan
memperlihatkan bahwa bagian-bagian dari proses tersebut dapat dibedakan secara
jelas (bagian input, proses dan output). Dengan demikian memudahkan kita
didalam melakukan pemeriksaan ulang.
Suatu
algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu
yang realtif singkat dan penggunaan memori yang relatif sedikit (efisien) dengan
langkah yang berhingga dan prosesnya berakhir baik dalam keadaan diperoleh
suatu solusi maupun tidak adanya solusi.
Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang di acu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Berikut adalah beberapa contoh algoritma dalam kehidupan sehari-hari.
Tabel 1.1. Contoh Algoritma dalam Kehidupan Sehari-hari
Langkah-langkah pada algoritma haruslah logis. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot, atau alat-alat mekanik/elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berarti mengerjakan langkahlangkah di dalam algoritma tersebut.
Pemroses mengerjakan proses sesuai dengan
algoritma yang diberikan kepadanya. Karena itu suatu algoritma harus dinyatakan
dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus:
1. Mengerti
setiap langkah dalam algoritma.
2. Mengerjakan
operasi yang bersesuaian dengan langkah tersebut.
Comments
Post a Comment