ALGORITMA & FLOWCHART
1. DEFINISI ALGORITMA
Terdapat beberapa definisi mengenai kata Algoritma :
1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis (Rinaldi Munir :2002).
2. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan
masalah (KBBI :1988).
3. Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara
jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan
suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut
pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik
(Team Gunadarma :1988).
2. CIRI ALGORITMA
Menurut Donald E. Knuth, algoritma mempunyai lima ciri penting :
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
2. Setiap langkah harus didefinisikan secara tepat dan tidak berarti dua.
3. Algoritma memiliki nol atau lebih masukan (input).
4. Algoritma mempunyai nol atau lebih keluaran (output).
5. Algoritma harus sangkil (efektif)
3. NOTASI PENULISAN
Di bawah ini dikemukakan beberapa notasi yang digunakan dalam penulisan
algoritma, antara lain :
1) Notasi yang dinyatakan dalam kalimat deskriptif
Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa
yang jelas. Notasi ini cocok untuk algoritma yang pendek, namun untuk
masalah yang algoritmanya besar, notasi ini jelas tidak efektif. Selain itu,
pengkonversian notasi algoritma ke notasi bahasa pemrograman
cenderung relatif sukar.
Contoh :
Algoritma Bilangan_Maksimum
Diberikan tiga buah bilangan bulat. Carilah bilangan bulat
maksimum diantara ketiga bilangan tersebut.
Deskripsi :
(1) baca bilangan 1
(2) baca bilangan 2
(3) bandingkan bilangan 1 dan bilangan 2, kita ambil yang
lebih besar, jika kedua bilangan tersebut sama besar,
dapat kita ambil bilangan 1, dan sebut bilangan
tersebut MAX
(4) baca bilangan 3
(5) bandingkan MAX dengan bilangan 3, dan pilih yang lebih
besar, jika keduanya sama besar, pilih MAX dan sebut
bilangan tersebut MAX.
(6) keluarkan sebagai output MAX
2) Notasi yang dinyatakan dengan pseudo code
Pseudocode adalah notasi yang menyerupai bahasa pemrograman tingkat
tinggi. Keuntungan menggunakan notasi pseudo code adalah kemudahan
mengkonversinya lebih tepat yang disebut mentranslasi ke notasi bahasa
pemrograman, karena terdapat korespondensi antara setiap pseudo code
dengan notasi bahasa pemrograman.
Contoh :
Algoritma Bilangan_Maksimum
{ Dibaca tiga buah bilangan dari piranti masukan. Carilah
bilangan bulat maksimum diantara ketiga bilangan tersebut }
Deklarasi :
Bil1,Bil2,Bil3 : integer {bilangan yang dicari
maksimumnya}
MAX : integer {variabel bantu}
Deskripsi :
Read (Bil1,Bil2)
If Bil1 >= Bil 2 then
Bil1 = MAX
Else Bil2 = MAX
Read (Bil3)
If Bil3 >= MAX then
Bil3 = MAX
Write (MAX)
Mulai
If Bil1>=
Bil2
Baca Bil1,
Bil2
Bil1=MAX
Bil2=MAX
Baca Bil3
If Bil3>=
MAX
Bil3=MAX
Cetak MAX
Selesai
YA
YA
TDK
Flowchart 
Bilangan_
Maksimum
3) 
Notasi yang 
dinyatakan dalam flow chart
Sama halnya dengan notasi deskriptif, 
notasi ini cocok untuk algoritma
yang 
pendek, 
namun untuk masalah yang 
algoritmanya besar, 
notasi ini
jelas tidak efektif. 
Selain itu, 
pengkonversian notasi algoritma ke notasi
bahasa pemrograman cenderung relatif sukar.
Contoh : 
Algoritma Bilangan_
Maksimum dalam flow char
4. 
TEKS ALGORITMA
Pada dasarnya, 
teks algoritma disusun atas tiga bagian (
blok) : 
bagian judul
(header) 
agoritma, 
bagian deklarasi, 
dan bagian deskripsi. 
Setiap bagian dapat
diberi komentar untuk memperjelas maksud teks yang 
dituliskan. 
Komentar
biasanya ditulis menggunakan kurung kurawal.
1) 
Judul Algoritma
Judul algoritma adalah bagian yang 
terdiri atas nama algoritma dan
penjelasan (
spesifikasi) 
tentang algoritma tersebut. 
Nama algoritma
sebaiknya singkat, 
namun cukup menggambarkan apa yang 
akan
dilakukan oleh algoritma tersebut. Di 
bawah nama algoritma disertai
dengan penjelasan singkat (
intisari) 
tentang apa yang 
dilakukan oleh
algoritma. 
Penjelasan di bawah nama algoritma sering 
dinamakan juga
spesifikasi algoritma. 
Algoritma harus ditulis sesuai dengan spesifikasi
yang 
didefinisikan.
Contoh :
Algoritma Luas_
Lingkaran
{ 
Menghitung luas lingkaran untuk ukuran jari-
jari tertentu.
Algoritma menerima masukan jari-
jari lingkaran, 
menghitung
luasnya, 
lalu cetak luasnya ke piranti keluaran }
2) 
Deklarasi
Di 
dalam algoritma, 
deklarasi nama adalah bagian untuk mendefinisikan
semua nama yang 
dipakai di dalam algoritma. 
Nama tersebut dapat
berupa nama terapan, 
nama peubah, 
nama tipe, 
nama prosedur dan
nama fungsi.
Contoh :
Deklarasi :
Panjang = integer {
tipe data 
bilangan bulat}
Lebar = integer
Luas = real {
tipe data 
bilangan pecahan}
3) 
Deskripsi
Deskripsi adalah bagian terpenting dari struktur algoritma. 
Bagian ini berisi
uraian langkah-
langkah penyelesaian masalah. 
Langkah-
langkah ini
dituliskan dengan notasi yang 
lazim dalam penulisan algoritma. 
Setiap
langkah algoritma dibaca dari langkah paling 
atas hingga langkah paling
bawah. 
Urutan penulisan menentukan urutan pelaksanaan perintah.
Contoh :
Deskripsi :
Read (
nama)
Read (
NIM)
Read (
nilai)
If (
nilai < grade =" E">= 45) and (
nilai < grade =" D">= 60) and (
nilai < grade =" C">= 70) and (
nilai < grade =" B" grade =" A" class="blsp-spelling-error" id="SPELLING_ERROR_257">nama) Write (
NIM) Write (
nilai) 5. 
STRUKTUR DASAR ALGORITMA Algoritma berisi langkah-
langkah penyelesaian suatu masalah. 
Langkahlangkah tersebut dapat berupa runtunan aksi, 
pemilihan aksi, 
dan pengulangan aksi. 
Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. 
Jadi, 
sebuah algoritma dapat dibangun dari tiga buah struktur dasar, 
yaitu : 1) 
Runtunan (sequence) 
Sebuah runtunan terdiri dari satu atau lebih instruksi. 
Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, 
yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dikerjakan. 2) 
Pemilihan (selection) 
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. 
Tiap –
tiap instruksi akan diseleksi oleh kondisi, 
apabila instruksi memenuhi kondisi yang 
diminta, 
maka instruksi akan dijalankan. 3) 
Pengulangan (repetition) 
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang 
sama berulang kali tanpa mengenal lelah. 
Kita tidak perlu menulis instruksi yang 
sama berulang kali, 
tetapi cukup melakukan pengulangan dengan instruksi yang 
tersedia. 
Algoritma Konversi { 
Terdapat tiga sub 
bagian (menu) 
dari program 
konversi. 
Pertama, 
konversi nilai dolar ke rupiah. 
Nilai tukar dan jumlah dolar diinput dari piranti masukan. 
Kedua, 
konversi Kilo meter (KM) 
ke meter (m). 
Nilai kilometer 
diinput dari piranti masukan. 
Ketiga, 
konversi Celcius ke Fahrenheit. 
Nilai celcius diinput dari piranti masukan. 
Ketiga nilai diolah dengan masing-
masing rumus yang 
berbeda. 
Hasilnya dicetak ke piranti keluaran } 
Deklarasi : 
Pilih, 
Tukar, 
Dolar, KM = Integer 
Nilai1, 
Nilai2, 
Celcius = Integer 
Nilai3 = Real 
Lagi = Char 
Deskripsi : 
Cetak (
judul program) 
Cetak (
pilihan) 
Baca (
Pilih) If (
Pilih=1) then 
Baca (
Tukar) 
Baca (
Dolar) 
Nilai1 = 
Tukar * 
Dolar Cetak (
Nilai1) 
ElseIf (
Pilih=2) then 
Baca (KM) 
Nilai2 = KM * 1000 
Cetak (
Nilai2) 
Elseif (
Pilih=3) then 
Baca (
Celcius) 
Nilai3 = (
Celcius * 1.8) + 32 
Cetak (
Nilai3) Else 
Cetak (
Peringatan) 
Endif Baca (
Lagi) If (
Lagi = ‘Y’) then 
goto (x,y) 
Cetak (
selesai) Flowchart Program 
Konversi Selesai Cetak YA (
Peringatan) YA 
TDK Mulai Cetak Judul, 
Pilihan Baca Pilihan If 
Pilih = 1 
Nilai1=
tukar*
dolar Cetak (
Nilai1) If 
Pilih = 2 If 
Pilih = 3 
Baca (
nilai tukar) 
Baca (
jumlah) 
Baca (KM) 
Nilai2=KM*1000 
Cetak (
Nilai2) 
Baca (
Celcius) 
Nilai3=
Celcius*1.8+32 
Cetak (
Nilai3) YA 
TDK TDK Baca (
Lagi) YA If 
lagi = ‘y’ 
Cetak (
selesai) 
TDK Translasi Algoritma Ke QBASIC 10 
CLS 20 DIM 
LAGI AS STRING 30 PRINT " <> "
40 PRINT " "
50 PRINT "--------------------------------------------------------------"
60 PRINT "| PROGRAM 
KONVERSI |"
70 PRINT "--------------------------------------------------------------"
80 PRINT "| |"
90 PRINT "| 
DAFTAR MENU 
PILIHAN KONVERSI : |"
100 PRINT "| |"
110 PRINT "| 1. 
KONVERSI DOLAR ($) 
KE RUPIAH |"
120 PRINT "| 2. 
KONVERSI KILOMETER (KM) 
KE METER (M) |"
130 PRINT "| 3. 
KONVERSI CELCIUS KE FAHRENHEIT |"
140 PRINT "--------------------------------------------------------------"
150 INPUT " 
PILIH NOMOR SESUAI MENU 
PILIHAN (1/2/3)? : ", 
PILIH
160 PRINT " "
170 IF 
PILIH = 1 THEN
180 INPUT " 
BERAPAKAH NILAI TUKAR UNTUK 1 DOLLAR : ", 
TUKAR
190 INPUT " 
MASUKKAN JUMLAH DOLAR : ", DOLLAR
200 
NILAI1 = 
TUKAR * DOLLAR
210 PRINT " 
JADI, 
NILAI KONVERSINYA DOLLAR : 
Rp. ", 
NILAI1
230 
ELSEIF PILIH = 2 THEN
240 INPUT " 
MASUKKAN JUMLAH KILOMETER (KM) : ", KM
250 
NILAI2 = KM * 1000
260 PRINT " 
JADI, 
NILAI KONVERSINYA METER : ", 
NILAI2
270 
ELSEIF PILIH = 3 THEN
280 INPUT " 
MASUKKAN JUMLAH DERAJAT CELCIUS : ", 
CELCIUS
290 
NILAI3 = (
CELCIUS * 1.8) + 32
300 PRINT " 
JADI, 
NILAI KONVERSI DERAJAT FAHRENHEIT : ", 
NILAI3
305 ELSE PRINT " 
ANDA INPUT 
ANGKA BERAPA ?, 
PILIHANNYA (1,2,3)"
310 END IF
320 PRINT " "
330 INPUT " 
AKAN MENGINPUT DATA 
LAGI (Y/T) ? : ", 
LAGI
340 IF (
LAGI = "Y") OR (
LAGI = "y") THEN 
GOTO 140
350 PRINT " "
360 PRINT "-----------------PROGRAM 
KONVERSI SELESAI-------------------"
Hasil Output Program 
Konversi
<>
--------------------------------------------------------------
| PROGRAM 
KONVERSI |
--------------------------------------------------------------
| |
| 
DAFTAR MENU 
PILIHAN KONVERSI : |
| |
| 1. 
KONVERSI DOLAR ($) 
KE RUPIAH |
| 2. 
KONVERSI KILOMETER (KM) 
KE METER (M) |
| 3. 
KONVERSI CELCIUS KE FAHRENHEIT |
--------------------------------------------------------------
PILIH NOMOR SESUAI MENU 
PILIHAN (1/2/3)? : 1
BERAPAKAH NILAI TUKAR UNTUK 1 DOLLAR : 9200
MASUKKAN JUMLAH DOLAR : 4
JADI, 
NILAI KONVERSINYA DOLLAR : 
Rp. 36800
AKAN MENGINPUT DATA 
LAGI (Y/T) ? : Y
--------------------------------------------------------------
PILIH NOMOR SESUAI MENU 
PILIHAN (1/2/3)? : 2
MASUKKAN JUMLAH KILOMETER (KM) : 7
JADI, 
NILAI KONVERSINYA METER : 7000
AKAN MENGINPUT DATA 
LAGI (Y/T) ? : Y
--------------------------------------------------------------
PILIH NOMOR SESUAI MENU 
PILIHAN (1/2/3)? : 3
MASUKKAN JUMLAH DERAJAT CELCIUS : 20
JADI, 
NILAI KONVERSI DERAJAT FAHRENHEIT : 68
AKAN MENGINPUT DATA 
LAGI (Y/T) ? : Y
--------------------------------------------------------------
PILIH NOMOR SESUAI MENU 
PILIHAN (1/2/3)? : 4
ANDA INPUT 
ANGKA BERAPA ?, 
PILIHANNYA (1,2,3)
AKAN MENGINPUT DATA 
LAGI (Y/T) ? : T
------------------PROGRAM 
KONVERSI SELESAI-------------------