You are on page 1of 5

ALGORITMA DAN TOP-DOWN DESIGN

ALGORITMA
Istilah berasal dari nama ilmuwan muslim Abu Ja’far Muhammad bin Musa Al
Khawarismi.
= urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu utk
memecahkan suatu masalah dlm rentang waktu tertentu. Setiap langkah harus dapat
dikerjakan dan menghasilkan efek tertentu. Efek-efek dari setiap langkah pada akhirnya
akan memecahkan masalah secara keseluruhan.
= strategi penyelesaian masalah yang meliputi metode dan sistematika penyelesaian
yang dituliskan dalam notasi yang telah disepakati.

MASALAH MENJALANKAN SEPEDA MOTOR :


1. Masukkan kunci kontak.
2. Nyalakan power supply kendaraan.
3. Hidupkan dengan tombol starter.
4. Kurangi gas & tekan handle kopling.
5. Masukkan gigi transmisi.
6. Tambah gas & lepas handle kopling perlahan.
-----------------
Langkah di atas berlaku dalam kondisi normal, untuk kondisi yang tidak normal langkah
di atas tidak dapat memecahkan masalah & beberapa langkah harus dibuat lebih rinci.

KARAKTERISTIK ALGORITMA :
1. Algoritma tidak boleh rancu.
2. Algoritma harus tepat.
3. Algoritma harus pasti.
4. Algoritma harus berhingga.

TOP-DOWN DESIGN
= penyelesaian masalah dengan cara memecah masalah menjadi beberapa bagian yang
lebih sederhana (submasalah) dan memeriksa hubungan antara submasalah-
submasalah tersebut untuk dikembangkan menjadi lebih terperinci.
MASALAH MENJALANKAN SEPEDA MOTOR (lebih rinci untuk langkah 3.):
3. a. Jika indikator netral menyala, hidupkan dengan tombol starter.
b. Jika indikator netral tidak menyala, netralkan gigi transmisi.
(i) Jika indikator netral menyala, hidupkan dengan tombol starter.
(ii) Jika indikator netral tidak menyala, hidupkan dengan pedal kick starter.

Submasalah-submasalah (disebut modul) harus memenuhi kriteria :


1. Mengerjakan tugas spesifik.
2. Tidak terlalu panjang.
LANGKAH-LANGKAH MASALAH YANG PROGRAMMABLE (dapat diterjemahkan ke dalam
bahasa pemrograman komputer dan dapat dieksekusi/dijalankan) :
1. Memecah masalah utama menjadi submasalah-submasalah secara tepat
(dekomposisi).
2. Memeriksa setiap submasalah apakah dapat dipecahkan secara tepat.
3. Menggabungkan penyelesaian semua submasalah dengan cara tertentu sehingga
masalah utama terpecahkan.
4. Ulangi langkah 1 sd 3 sedemikian sehingga submasalah terbagi menjadi
subsubmasalah yang paling sederhana dan dapat diterjemahkan dalam bahasa
pemrograman yang singkat.

PECAHKAN MASALAH BERIKUT :


Jumlahkan bilangan kelipatan 3 mulai 0 sampai C

Misalnya masalah di atas dinotasikan dengan jumlah(C).


1. Isi i dan j dengan 0.
2. Jika i < C,
a.Naikkan harga i dan tambahkan I pada j jika i kelipatan 3.
b.Ulangi langkah 2.
3. Jika i ≥ C, isi jumlah(C) dengan j

Langkah 1 dan 3 sudah sederhana, tetapi langkah 2 perlu dibuat lebih rinci lagi:

Jika didefinisikan mod sebagai operator untuk sisa hasil bagi, maka dekomposisi dari
langkah 2 adalah :

2. Jika i < C,
a.Tambahkan 1 pada i.
b.Jika i mod 3 = 0 tambahkan i pada j.
c. Ulangi langkah 2.

SECARA LENGKAP :
1. Isi i dan j dengan 0.
2. Jika i < C,
a.Tambahkan 1 pada i.
b.Jika i mod 3 = 0 tambahkan i pada j.
c.Ulangi langkah 2.
3. Jika i ≥ C, isi jumlah(C) dengan j

Seperti telah disinggung dalam definisi algoritma, bahwa algoritma bisa ditulis dengan
notasi yang telah disepakati, hal ini mengingat terdapat banyak versi notasi untuk
menuliskan algoritma. Versi lain penulisan algoritma di atas adalah
1. i ← 0.
2. j ← 0.
3. Selama i < C, lakukan
a. i ← i + 1

1
b. Jika i mod 3 = 0, maka j ← j + i
c. Ulangi langkah 2.
4. jumlah(C) ← j

Implementasi algoritma dalam bentuk bahasa pemrograman Pascal, adalah:

function jumlah(C:integer) : integer;


var i,j : integer;
begin
i:=0;
j:=0;
while i<C do
begin
i:=i+1;
if (i mod 3=0) then
j:=j+i;
end;
jumlah:=j;
end;

Function di atas bisa dipanggil dengan perintah, misalnya :

Jumlah(3) untuk harga C=3 atau jumlah(batas) untuk harga C yang bersifat
variabel, karena Jumlah dideklarasikan sebagai function maka harus dijadikan sebagai
input(parameter) bagi perintah yang lain.

Contoh program selengkapnya :


program jumlah_kelipatan3;
{$APPTYPE CONSOLE}
uses
SysUtils;

var batas : integer;

function jumlah(C:integer) : integer;


var i,j : integer;
begin
i:=0;
j:=0;
while i<C do
begin
i:=i+1;
if (i mod 3=0) then
j:=j+i;
end;
jumlah:=j;
end;

2
begin
write('Masukkan bilangan batas : ');
readln(batas);
write('Penjumlahan bilangan');
writeln(' kelipatan tiga ');
write('antara 0 dan ',batas,' adalah ');
writeln(jumlah(batas));
readln;
end.

Contoh tampilan program setelah dijalankan


Masukkan bilangan batas : 15
Penjumlahan bilangan kelipatan tiga
antara 0 dan 15 adalah 45

PEMROGRAMAN
1. Pendefinisan masalah.
2. Pemilihan garis besar penyelesaian.
3. Dekomposisi langkah 2.
4. Terjemahkan ke dalam bahasa pemrograman tertentu (coding).
5. Pengujian (debugging).

KRITERIA PROGRAM YANG BAIK :


1. Benar ->Bebas dari kesalahan (Kesalahan : Syntax, Logika & runtime)
2. Jelas ->Dari sisi visual & pemakaian.
3. Efisien -> Dari sisi cara penyelesaian masalah, waktu eksekusi & ruang
penyimpanan.

BELAJAR PEMROGRAMAN VS BELAJAR BAHASA PEMROGRAMAN


BELAJAR PEMROGRAMAN :
- Belajar memecahkan masalah.
- Belajar merumuskan algoritma.
BELAJAR BAHASA PEMROGRAMAN :
= belajar menggunakan suatu bahasa pemrograman komputer tertentu meliputi syntax
atau tata bahasa, instruksi yang tersedia atau kosa kata, & cara pengoperasian
editor/kompilatornya.

Banyak sekali bahasa pemrograman yang dapat digunakan, pemilihan penggunaannya


sangat tergantung pada masalah yang dipecahkan.

Belajar Pemrograman -> System Analyst

3
Belajar Bhs Pemrogr. -> Programmer
System Analyst > Programmer

Untuk meningkatkan kemampuan pemrograman harus belajar pemrograman. Karena


dalam pemrograman terdapat proses coding yang melibatkan bahasa pemrograman,
maka untuk meningkatkan kemampuan pengkodean harus belajar bahasa
pemrograman.

Bahasa yang dipakai PASCAL, tetapi penekanannya bukan pada bahasanya tetapi pada
fungsinya sebagai alat bantu belajar algoritma -> sintaks yang dipakai adalah sintaks
sederhana, tidak mementingkan tampilan masukan/keluaran.

Soal-soal :
1. Sebutkan masalah-masalah yang penyelesainnya dapat diselesaikan dengan
bantuan program komputer.
2. Susunlah algoritma bagi setiap masalah dalam soal nomor 1.

You might also like