Contoh
Algoritma
Berikut ini beberapa contoh
penyelesaian dengan Algoritma.
Misalkan, saya punya 2 buah ember
masing-masing bervolume 3 liter dan 5 liter. Saya hanya punya dua ember
tersebut. Entah karena lupa atau sengaja lupa, suatu ketika saya ingin membeli
4 liter minyak tanah. Lha yang saya bawa itu hanya ember berukuran 3 liter dan
5 liter saja, saya boleh memindahkan dari ember satu ke ember lain,
mengembalikan minyak tanah ke tempat asalnya dan sebagainya. Bagaimana
Algoritmanya?
Algoritma mendapatkan minyak dengan
volume 4 liter.
- Isi penuh ember 3 liter dengan minyak. {ember 3 liter berisi minyak 3 liter}
- Tuangkan minyak dari ember 3 liter ke dalam ember 5 liter. {ember 5 liter berisi minyak 3 liter}.
- Isi penuh ember 3 liter dengan minyak. {ember 3 liter berisi minyak 3 liter}
- Tuang minyak dari ember 3 liter ke ember 5 liter hingga ember 5 liter penuh. {di dalam ember 3 liter sekarang berisi minyak sebanyak 1 liter}
- Kembalikan minyak dari ember 5 liter ke dalam drumnya. {ember 5 liter kosong}
- Tuangkan minyak dari ember 3 liter ke ember 5 liter. {ember 3 liter kosong, ember 5 liter berisi minyak 1 liter}
- Isi penuh ember 3 liter dengan minyak, lalu tuang ke dalam ember 5 liter. Maka akan diperoleh minyak sebanyak 4 liter {1 + 3 = 4 liter minyak }.
ALGORITMA PEMROGRAMAN
T1063 Algoritma dan Pemrograman TI, matakuliah ini
mengajarkan tentang konsep dan logika berpikir komputer, cara perancangan dan
analisis masalah, yang kemudian dipecahkan dengan menggunakan komputer
menggunakan algoritma dan pemrograman terstruktur. Selain itu juga
diperkenalkan dan diajarkan penggunaan bahasa pemrograman (Bahasa C), dan
flowchart.
Tujuan :
Mahasiswa mampu memahami logika berpikir komputer, memahami prinsip kerja program, memahami alasan-alasan komputer dapat mengerjakan perintah-perintah yang diberikan, dan mampu menggambarkan logika jalannya program secara tertulis dengan algoritma (pseudo code) dan dilengkapi dengan diagram alir (flow chart) menggunakan suatu bahasa pemrograman tertentu.
Tujuan :
Mahasiswa mampu memahami logika berpikir komputer, memahami prinsip kerja program, memahami alasan-alasan komputer dapat mengerjakan perintah-perintah yang diberikan, dan mampu menggambarkan logika jalannya program secara tertulis dengan algoritma (pseudo code) dan dilengkapi dengan diagram alir (flow chart) menggunakan suatu bahasa pemrograman tertentu.
Bambang Wahyudi, SKom., MMSI
PROGRAM KOMPUTER
Program komputer adalah rangkaian kata perintah yang telah
dimengerti
oleh komputer untuk dikerjakannya. Kata-kata perintah
tersebut membentuk
suatu bahasa yang disebut dengan bahasa pemrograman.
Sebagaimana
bahasa pada manusia, bahasa pemrograman juga terdiri atas
banyak macam
bahasa, dan memiliki aturannya masing-masing.
Sulitnya, komputer saat ini belum diberi hak inisiatif,
sehingga jika ada sedikit
saja kesalahan penulisan perintah oleh pemrogram, ia tidak
mau memaklumi-
nya atau berusaha memperbaiki sendiri kesalahan tersebut.
Serta merta ia
“ngambek” dan tidak mau mengerjakan perintah-perintah
lainnya. Komputer
diciptakan melalui logika manusia, karenanya, ia bekerja
secara logis, tanpa
campur-tangan “perasaan.”
ALGORITMA PEMROGRAMAN
Orang yang telah terbiasa “bergaul” dengan komputer
menggunakan satu
bahasa pemrograman tertentu (tingkat mahir), biasanya tidak
lagi memerlukan
kertas coret-coretan untuk membuat suatu program komputer.
Namun bagi
pemula, pembelajar, atau yang belum mahir, diperlukan kertas
coret-coretan
Kertas coret-coretan itu akan digunakan untuk menyusun
algoritma
(langkah-langkah penyelesaian masalah), flowcharting (alur
logika perintah,
yang merupakan aplikasi dari algoritma), maupun menuliskan
perintah sesuai
dengan kaidah dari bahasa pemrograman yang akan
digunakannya.
Sewaktu menyusun algoritma, kita tidak perlu tahu (atau
tidak perlu
menyesuaikan dengan) bahasa pemrograman yang nanti akan kita
gunakan.
Hal utama yang kita pikirkan adalah kaidah (hirarki) dari
komputer itu sendiri,
yaitu input-proses-output.
Input adalah data yang harus ada (sudah ada/ sudah
tersedia), yang dapat
diproses dengan aturan-aturan tertentu untuk menghasilkan
output seperti yang
dikehendaki. Data yang ada harus logis (masuk akal) bahwa
“ia” dapat
diproses untuk menghasilkan output.
PERLUNYA PERINTAH BAHASA PEMROGRAMAN
DI DALAM ALGORITMA
Meskipun sudah dikatakan, bahwa sewaktu kita menyusun
algoritma kita
tidak perlu tahu bahasa pemrograman apa yang akan digunakan
kelak,
namun, untuk penulisan algoritma yang lebih efisien dan
efektif, maka
penggunaan sebagian perintah yang ada di dalam bahasa
pemrograman
perlu dilakukan juga.
Adapun perintah bahasa pemrograman yang paling sering
digunakan untuk
menyusun algoritma adalah bahasa pemrogrman yang
terstrukutur, seperti
Pascal, C, SNOBOL, PL/1, dan sebagainya.
Misalkan saja, untuk contoh berikut ini :
Langkah 1 : Beri nilai 10 ke variabel S
Maka, akan lebih mudah jika ditulis sebagai :
Langkah 1 : S := 10;
Belum lagi jika algoritma yang ditulis harus melakukan
perulangan langkah
ke langkah-langkah sebelumnya (looping).
11 Lakukan perbandingan data ke I dengan data ke I+1
12 Jika data ke I+1 lebih kecil, maka tukar tempat keduanya
13 Tambahkan I dengan 1
14 Lakukan langkah 11 hingga langkah 13 selama nilai I <
10
Tentu akan lebih ringkas jika kita tulis (perintah BASIC) :
20 If A(i) > A(I+1) then SWAP A(i), A(j)
Jadi terlihat, jika algoritma tersebut sederhana, maka
penyusunan algoritma
akan sama dengan penyusunan sebuah program (karena semua
perintahnya
sudah sesuai dengan kaidah penulisan di bahasa
pemrogramannya).
Apakah semuanya akan demikian ?. Tentu saja tidak, misalkan,
kita diminta
untuk menentukan bilangan terkecil dari seratus buah
bilangan yang akan
dimasukkan ke komputer, ini masih dapat langsung dibuatkan
programnya.
Algoritma (program)nya bisa kita susun sebagai berikut :
2 FOR M = 1 TO 100
3 INPUT A(M) : NEXT : KECIL = A(1)
4 FOR M = 2 TO 100
5 IF KECIL > A(M) THEN X = KECIL: KECIL = A(M) : A(M) = X
6 NEXT : PRINT KECIL : END
Tetapi, misalkan jika kita diminta untuk mengalihkan notasi
infix menjadi
postfix melalui stack, hal itu sulit untuk dilakukan.
Algoritmanya bisa menggunakan gabungan kalimat dengan bahasa
pemrograman, berikut contoh penggalannya.
1. Asumsi : deretan notasi infix dimasukkan ke dalam sebuah
variabel array
bernilai string, nama variabelnya D
2. S adalah variabel string untuk menyimpan susunan data di
dalam stack
3. H adalah variabel string untuk menyimpan hasil
4. P = banyaknya elemen array
If top(s) = empty then
if D(i) = operand then
H = D(i)
S = S + D(i)
Top(s) = D(i)
If D(i) = operator then
If derajat D(i) > derajat Top(s) then
Jadi, terdapat beberapa kata yang tidak dapat dijabarkan
langsung ke
dalam bahasa pemrograman. Misalkan, kata Top(s), empty,
operand, operator,
PERLUNYA PROSEDUR
Toh akhirnya, kita tidak akan mungkin hanya membuat
algoritmanya saja
melainkan dilanjutkan ke pembuatan programnya. Karenanya,
algoritma
sebaiknya dibuat sedemikian rupa agar setiap perintah yang
ada di dalamnya
dapat diaplikasikan langsung ke dalam bahasa pemrograman.
Itulah perlunya prosedur. Misalkan kata “operand” di
algoritma di atas yang
tidak dapat langsung diaplikasikan di dalam bahasa
pemrogramannya, kita
buat saja prosedur dari algoritma tersebut yang
mendefinisikan apa itu
1 Procedure OPERAND
2 IF ASC(D(I)) > 64 AND ASC(D(I)) < 91 THEN OP = .T.
ELSE OP = .F.
Sehingga, di algoritma utamanya bisa diubah dari :
If top(s) = empty then
if D(i) = operand then
H = D(i)
If top(s) = empty then
Do Procedure OPERAND
IF op = .t.
H = D(i)
PERLUNYA STANDAR PENGGUNAAN PERINTAH BAHASA PEMROGRAMAN
Sulit memang membuat standardisasi penggunaan perintah
bahasa
pemrograman di sebuah algoritma. Sulit karena ada yang hanya
memahami
satu bahasa pemrogrman saja sehingga ia tak mau menggunakan
perintah di
bahasa pemrograman lain.
Namun, itu sebatas cara penulisan saja, misalkan di BASIC A
= 10, di Pascal
berlaku A := 10, namun untuk perintah looping, umumnya
memiliki alur logika
yang sama, yaitu dalam penggunaan FOR-NEXT, REPEAT-UNTIL, DO
WHILE-
ENDDO, WHILE-WEND, dan sebagainya.
Jadi, meskipun tidak ada standar yang pasti, paling-paling
hanya berbeda
cara penulisannya saja, namun sama dalam alur logikanya.
Jadi, ternyata,
standardisasi semacam ini tidak diperlukan.
makasih gan atas info algoritmanya...
BalasHapusthanks tas infonya...
BalasHapusmakasih
BalasHapusMasih awam ttg yg beginian gan,,,,suntuk klw masuk matkul ini.
BalasHapusyaya siapa nanyak kau mau masuk ?
BalasHapusBermanfaat untuk artikel tugas kuliah, mksh
BalasHapusmatkulpaling memusingkan ya ini dah.. mkasih ya infox,, hehe
BalasHapusMakasih Gan..
BalasHapusBermanfaat
sangat membatu sekali pada matkul algo saya BBM MOD MODIFIKASI
BalasHapus