Materi Diklat
Prosedur Penyusunan Algoritma Pemrograman
Tujuan :
Setelah mengikuti kegiatan pembelajaran pada pokok bahasan ini, diharapkan
peserta diklat dapat menjelaskan prosedur penyusunan algoritma pemrograman.
Waktu :
5 Jam Pelajaran
Isi materi :
1 Algoritma
lalu ia mengerjakan proses sesuai yang ia baca. Secara umum pihak (benda) yang
mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat
berupa manusia, computer, robot atau alat elektronik lainnya. Pemroses
melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma
yang menjabarkan proses tersebut. Melaksanakan algoritma berarti mengerjakan
langkah-langkah di dalam algoritma tersebut.
Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan
kepadanya. Jurus masak membuat kue berdasarkan resep yang diberikan
kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu
algoritma harus dinyatakan dslam bentuk yang dapat dimengerti pemroses. Jadi
suatu pemroses harus :
Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat
program disebut Pemrograman (programming). Orang yang menulis program
disebut pemrogram (programmer). Tiap-tiap langkah yang yang ditulis di dalam
program disebut pernyataan (statement) atau instruksi. Jadi program tersusun atas
sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang
bersesuaian dengan instruksi tersebut dijalankan oleh komputer.
Secara garis besar komputer tersusun dari empat komponen utama, yaitu ;
1. Piranti masukan, ialah alat yang digunakan untuk untuk memasukkan data
atau program ke dalam memori. Misalnya : keyboard, scanner, mouse, joystick
2. Piranti keluaran, ialah alat yang digunakan untuk komputer untuk menampilkan
hasil-hasil operasi pemrosesan data. Misalnya : monitor, printer, plotter
3. Unit pemroses utama (CPU). Ini merupakan otak dari computer yang berfungsi
mengerjakan operasi-operasi dasar seperti operasi aritmetika dan logika
4. Memory. Tempat menyimpan program yang berisi operasi-operasi yang akan
dikerjakan oleh CPU dan menyimpan data atau informasi yang akan diolah
pemroses ataupun data hasil proses.
Contoh :
Contoh algoritma tukar isi gelas di atas apabila dianalogikan tugar data dari suatu
lokasi memory maka menjadi sebagai berikut :
Contoh :
Diketahui register r16 berisi data #$55, register r17 berisi data #$AA.
Tukarkan isi kedua register tersebut sehingga r16 berisi data #$AA dan r17 berisi
data #$55.
Algoritma dapat disajikan dengan menggunakan dua macam cara, yaitu dengan
tulisan dan gambar. Penyajian dengan cara tulisan adalah seperti pada contoh di
atas, yang mana suatu langkah-langkah pemecahan masalah dijelaskan dalam
bentuk kata-kata dengan bahasa sendiri seperti halnya penulisan resep makanan.
Penyajian algoritma dengan bentuk gambar banyak bentuk chart yang bisa
dipakai dan yang paling banyak dipergunakan adalah flowchart.
2 Flowchart
Biasanya suatu program yang rumit didahului dengan flowchart system, lalu
dilengkapi pula dengan flowchart terperinci. Keuntungan dari sebuah flowchart
ialah bahwa di menunjukkan urutan langkah-langkah dengan mengunakan
symbol anak panah. Simbol-simbol yang lain digunakan untuk menunjukkan
operasi apa yang dilaksanakan pada tiap-tiap langkah tersebut.
Contoh Algoritma tukar isi register di atas dapat digambarkan dalam bentuk
flowchart sebagai berikut ;
Latihan
Pada Tabel Instruksi Mikrokontroller ATmega8535 tidak ditemukan instruksi
pembagian integer, pada latihan ini kita akan membuat sub routine yang berfungsi
sebagai pembagi integer sebagai berikut ;
Fungsi : Isi register r16 dibagi dengan isi register r17, hasil pembagian
integer disimpan ke register r18 sisa pembagian disimpan ke register r19.
Register r16, r17, r18 dan r19 masing-masing adalah register 8 bit, sehingga
angka yang dapat diproses berkisar antara 0 sampai dengan 255 desimal.
1. Jika r16 lebih kecil dari r17 maka r16 tidak dapat dibagi, maka hasil pembagian
sama dengan 0 ( r18 = 0 ) dan sisa pembagian sama dengan r16 ( r19 = r16 )
Dan proses pembagian tidak dapat dilakukan lagi, proses selesai.
2. Jika r16 tidak lebih kecil dari r17 maka lakukan proses pengurangan r16 – r17
hasilnyanya disimpan ke r16
Kemudian lakukan proses incremen pada register r18 setiap kali terjadi proses
pengurangan tersebut di atas.
;========================================================
; Nama sub routine : idiv
; Input : r16, r17
; Output : r18, r19
; Fungsi : pembagian integer, r16/r17 = r18 sisa r19
; isi r16 dibagi dengan isi r17,
; hasil pembagian disimpan ke r18
; sisa pembagian disimpan ke r19
;========================================================
idiv:
ldi r18,0
lidiv:
cp r16,r17
brlo xidiv
sub r16,r17
inc r18
rjmp lidiv
xidiv:
mov r19,r16
ret
Berikut ini latihan membuat program untuk membagi bilangan integer 125 dengan
50.
1. Dengan menggunakan sub routine di atas, register r16 diisi dengan data desimal
100, register r17 diisi data desimal 50
2. Panggil sub routine pembagian integer idiv
mov r16,125
mov r17,50
rcall idiv
Tugas
Isi register r20 dipecah menjadi tiga bagian, yaitu nilai ratusan disimpan ke
register r21, nilai puluhan disimpan ke register r22 dan nilai satuan disimpan ke
register r23.
Misalkan register r20 berisi data decimal 125, maka setelah menjalankan program
ini maka pada register r21 akan berisi data decimal 1, register r22 berisi data
decimal 2 dan register r23 akan berisi data decimal 5.
Gunakan sub routine pembagian integer pada latihan di atas untuk membantu
penyelesaian tugas ini.
Program dibuat sebagai program bagian (sub routine)
Referensi