Penggunaan Algoritma 2'
Penggunaan Algoritma 2'
Didalam literatur klasik terdapat persoalan yang dinamakan water jug problem. Misalkan kalian
mempunyai dua buah ember, masing-masing bervolume 5-liter dan 3-liter (Gambar 1.3). Kalian diminta
mendapatkan air sebanyak 4 liter (sumber air dari sebuah danau) dengan menggunakan hanya kedua
ember tersebut (tidak ada peralatan lain yang tersedia), silahkan kalian eksplor sesuai dengan pemahaman
yang kalian pahami. Kalian boleh memindahkan air dari satu ember ke ember lainnya, membuang seluruh
air dari ember dan sebagainya. Bagaimanakah algoritma?
5 liter 3 liter
Gambar 1.3
Dua buah ember, masing-masing bervolume 5 liter dan 3 liter
Penyelesaian :
Persoalan ini mempunyai banyak kemungkinan cara penyelesaiannya. Salah satunya dituliskan sebagai
berikut:
1. Isi penuh ember 3-liter air . {ember 3-liter berisi 3 liter air}
2. Tuangkan ar dari ember 3-liter ke dalam ember 5-liter. {ember 5-liter sekarang berisi 3 liter air}
3. Isi penuh ember 3-liter dengan air. {ember 3-liter berisi 3-liter}
4. Tuangkan air dari ember 3-liter ke dalam ember 5-liter hingga penuh. {didalam ember 3-liter
sekarang tersisa 1 liter air}
5. Buang seluruh air dari ember 5-liter. {ember 5-liter kosong}
6. Tuangkan air dari ember 3-liter ke dalam ember 5-liter. {ember 5-liter sekarang berisi 1-liter air}
7. Isi penuh ember 3-liter dengan air. {ember 3-liter berisi 3-liter air}
8. Tuangkan air dari ember 3-liter ke dalam 5-liter. {ember 5-liter sekarang berisi 1+3=4 liter air}
Cobalah amati algoritma di atas yang dicetak miring dalam pasangan tanda kurung kurawal,
{ember 3-liter berisi 3 liter air}
{ember 5 –liter sekarang berisi 3–liter air}
Catatan yang dicetak miring tersebut di atas dinamakan komentar. Kelak komentar berguna untuk
memahami langkah-langkah yang tertulis di dalam algoritma.
Karakteristik Algoritma
Algoritma berisi urutan langkah-langkah untuk menyelesaikan persoalan yang diberikan. Pada
dasarnya sebuah algoritma menerima beberapa masukan (input), memproses dalam urutan langkah-
langkah dan menghasilkan luaran (output).
Ketika algoritma “dijalankan” (oleh manusia atau oleh komputer), maka langkah-langkah tersebut
dikerjakan dari awal sampai akhirnya berhenti dan kalian memperoleh solusi persoalan. Jika algoritmanya
benar, maka hasilnya (solusinya) pasti benar, sebaliknya jika algoritmanya salah maka hasilnya juga salah.
Jadi, ada dua pesan penting tentang algoritma, pertama, sebuah algoritma harus benar. Kedua,
algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar. Menurut
Donald E. Knuth didalam Art of Computer Programming, sebuah algoritma harus mempunyai 5 ciri
penting :
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, pada
algoritma mempertukarkan isi gelas, algoritma berhenti setelah larutan dituangkan dari gelas,
algoritma berhenti setelah larutan dituangkan dari gelas C ke gelas B. Pada algoritma Euclidean,
jika n = 0, algoritma berhenti (langkah 1). 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
mengindikasikan bahwa program tersebut berisi algoritma yang salah.
2. Setiap langkah harus didefinisikan dengan tepat dan tidak boleh berarti dua (ambiguous). Contoh,
pernyataan “ bagilah p dengan sejumlah beberapa buah bilangan bulat positif ”dapat bermakna
ganda. Berapakah yang dimaksud dengan “beberapa”? Algoritma menjadi jelas jika langkah
tersebut ditulis “bagilah p dengan 10 buah bilangan positif”.
3. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah parameter nilai yang diberikan
kepada algoritma untuk diproses. Pada algoritma mempertukarkan isi gelas, masukannya gelas A
dan gelas B. Pada algoritma Euclidean mempunyai dua buah masukan, m dan n.
4. Algoritma mempunyai nol atau lebih luaran (output). Luaran dapat berupa pesan atau besaran
yang memiliki hubungan dengan masukan. Algoritma mempertukarkan isi gelas tidak mempunyai
luaran, sedangkan algoritma Euclidean mempubyai satu luaran, yaitu m pada langkah 1, yang
merupakan pembagi bersama terbesar dari kedua masukkannya.
5. Algoritma harus efektif. Setiap langkah harus sederhana, sehingga dapat dikerjakan dalam
sejumlah waktu yang masuk akal. Langkah yang masih global masih perlu diperinci lagi menjadi
langkah yang dapat dilaksanakan oleh pemroses.
Program dan pemrograman
Algoritma yang ditulis dalam bahasa komputer dinamakan program. Bahasa komputer yang
digunakan untuk menulis program dinamakan bahasa pemrograman (programming language). Orang
yang membuat program komputer dinamakan pemrogram (programmer) dan kegiatan mulai dari
mendesain hingga membuat program dinamakan pemrograman (programming). Teks program dalam
bahasa pemrograman sering dinamakan dengan kode program (source code), dan menulis kode program
dinamakan coding.
Belajar pemrograman tidak sama dengan belajar bahasa pemrograman. Belajar pemrograman
berarti mempelajari metodologi pemrograman, pemecahan masalah, kemudian menuliskan algoritma
pemecahan masalah dalam notasi tertentu. Sedangkan belajar bahasa pemrograman berarti belajar
menggunakan suatu bahasa komputer, aturan tata bahasanya, instruksi-instruksinya, tata cara
pengoperasian compilernya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program
yang ditulis hanya dalam bahasa tersebut.
Berikut adalah contoh dari sebuah kode program dalam bahasa pascal. Bahasa pascal adalah salah
satu dari sekian banyak bahasa pemrograman . secara garis besar contoh program ini melakukan
pengurutan data berupa nilai-nilai ujian mahasiswa. Data nilai mahasiswa di inputkan ke komputer
melalui keyboard, lalu diurutkan dari nilai kecil ke besar, dan akhirnya data yang sudah terurut
ditampilkan di layar monitor.
Berikut contoh source code program tersebut :
program PENGURUTAN;
{ Program untuk mengurutkan nilai ujian sejumlah mahasiswa }
Uses crt;
Const Nmaks = 1000; { jumlah maksimum data }
var
Nilai:array[1..Nmaks] of integer; {tempat menyimpan data}
j,k,temp, N, Imin:integer;
begin
write ('berapabanyak data?'); readln(N); { tentukan jumlah data yang akan diproses }
: PR
1. Apa yang dimaksud algoritma Euclidean ?
2. Perhatikan gambar di bawah ini !
Jika kalian mempunyai 3 buah ember, masing-masing bervolume 10 liter, 8 liter dan 5 liter. Kalian
diminta mendapatkan air sebanyak 6 liter (sumber air dari sebuah kolam) dengan menggunakan
hanya ketiga ember tersebut, silahkan kalian eksplor sesuai dengan pemahaman yang kalian
pahami. Kalian boleh memindahkan air dari satu ember ke ember lainnya, membuang seluruh air
dari ember dan sebagainya. Bagaimanakah algoritmanya?
10 liter
8 liter
5 liter
3. Buatlah sebuah source code dengan menggunakan bahasa pemrograman C dengan pengurutan
data berupa nilai-nilai ujian mahasiswa. Data nilai mahasiswa di inputkan ke komputer melalui
keyboard, lalu diurutkan dari nilai kecil ke besar, dan akhirnya data yang sudah terurut
SELAMA
ditampilkan di layar monitor!
T
MENGE
RJAKAN