Anda di halaman 1dari 10

T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.

Teknik Pemrograman Mikrokontroller

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

Algoritma adalah urutan langkah-langkah atau tahapan-tahapan penyelesaian


masalah yang disusun secara sistematis dan logis. Kata Logis merupakan kata
kunci dalam Algoritma. Langkah-langkah logis dalam Algoritma ini harus dapat
ditentukan bernilai salah atau benar.

Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti


Algoritma adalah proses yang procedural. Definisi procedural menurut kamus
Bahasa Indonesia :

1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas


2. Metode langkah demi langkah secara eksak dalam memecahkan suatu
masalah

Pada pemrograman proseduaral, program dibedakan antara bagian data dengan


bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang
dilaksanakan satu persatu secara berurutan oleh pemroses. Alur pelaksanaan
instruksi dapat berubah karena adanya pencabangan kondisional. Data yang
disimpan dalam memori dimanipulasi oleh instruksi secara beruntun procedural.
Paradikma pemrograman seperti ini dinamakan pemrograman procedural.

Algoritma adalah bagian paling utama dari pemrograman. Dalam kehidupan


sehari-hari banyak pula dijumpai proses yang dinyatakan dalam suatu algoritma.
Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga
dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-
langkah membuat membuat masakan. Bila langkah langkahnya tidak logis, tidak
dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep
masakan akan membaca satu per satu langkah langkah-langkah pembuatannya

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 1 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

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 :

1. Mengerti setiap langkah dalam algoritma


2. Mengerjakan operasi yang sesuai dengan langkah tersebut

Mekanisme pelaksanaan algoritma dilakukan oleh pemroses (komputer). Komputer


hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma
harus ditulis dalam notasi pemrograman sehingga dinamakan program. Jadi
program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam
bahasa perograman tertentu sehingga dapat dilaksanakan oleh komputer.

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.

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 2 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

Gambar 1. Komponen Utama Komputer

Mula-mula program dimasukkan ke dalam memory komputer. Ketika program


dilaksanakan (dieksekusi) setiap instruksi yang telah tersimpan didalam memory
dikirim ke CPU. CPU menjerjakan operasi-operasi yang bersesuaian dengan
instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti
masukan, disimpan memory lalu dikirim ke CPU untuk operasi yang memerlukan
tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan dalam
memory lalu CPU menuliskan data keluaran tadi ke piranti keluaran.

Pada dasarnya sebuah algoritma merupakan deskripsi pelaksanaan suatu proses.


Sebuah proses (job) dikerjakan oleh pemroses menurut algoritma yang sudah
ditulis. Algoritma disusun oleh sederetan langkah instruksi yang logis. Tiap lagkah
instruksi tersebut mengerjakan suatu tindakan (aksi), bila suatu aksi dilaksanakan
maka sejumlah operasi yang bersesuaian dengan aksi tersebut dikerjakan oleh
pemroses.

Contoh :

Algoritma tukar isi gelas


Diketahui gelas A berisi susu, gelas B berisi kopi.
Tukarkan isi kedua gelas tersebut sehingga gelas A berisi kopi dan gelas B berisi
susu.

Algoritma pemecahan masalah di atas adalah :

1. Tuang isi gelas A ke gelas C


2. Tuang isi gelas B ke gelas A
3. Tuang isi gelas C ke gelas B

Contoh algoritma tukar isi gelas di atas apabila dianalogikan tugar data dari suatu
lokasi memory maka menjadi sebagai berikut :

Contoh :

Algoritma tukar isi register r16 dengan r17

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 3 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

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 pemecahan masalah di atas adalah :

1. Copykan isi register r16 ke r18


2. Copykan isi register r17 ke r16
3. Copykan isi register r18 ke r17

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

Flowchart adalah suatu metode untuk menggambarkan tahap-tahap pemecahan


masalah dengan merepresentasikan symbol-simbol tertentu yang mudah
dimengerti, digunakan dan standar untuk diterapkan
Tujuan utama dari penggunaan lowchart adalah untuk menggambarkan suatu
tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas
menggunakan symbol-simbol yang standar. Berikut ini adalah symbol-simbol
standar yang digunakan dalam penulisan program flowchart.

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 4 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

Gambar 2. Simbol-simbol program flowchart

Apabila suatu flowchart lengkap telah selesai dikerjakan, gambaran lengkap


tentang proses pemikiran seorang programmer dalam memecahkan suatu
masalah dapatlah diikuti. Peranan flowchart sangat penting terutama pada
pemeriksaan program. Flowchart, yang merupakan bagian penting dalam suatu
program yang telah selesai, dapat juga membantu orang lain dalam memahami
algoritma yang tepat yang dibuat oleh programmer.

Ada dua jenis flowchart, yaitu :

1. Flowchart system, untuk menunjukkan jalannya program secara umum (garis


besarnya saja)
2. Flowchart terperinci, memuat perincian-perincian (detail) yang terutama
penting untuk programmer

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 ;

Gambar 3. Flowchart program tukar isi register

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 5 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 6 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

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 ;

Masukan : r16  data yang akan dibagi


r17  data pembagi

Keluaran : r18  hasil pembagian integer


r19  sisa pembagian

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.

Algoritma atau langkah-langkah pemecahan masalah :

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.

Kembali ke langkah nomor satu

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 7 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

Dari ide pemecahan masalah di atas, selanjutnya dibuat flowchart terperinci


sebagai berikut :

Gambar 4. Flowchart program pembagian integer

Dari flowchart di atas dan memperhatikan tabel Instruksi Mikrokontroller


ATmega8535, disusun program dalam bahasa assembly sebagai berikut :

;========================================================
; 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:

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 8 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

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.

Algoritma langkah-langkah pemecahan masalah :

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

Flowchart : Program dalam bahasa


assembley :

mov r16,125
mov r17,50
rcall idiv

Jika program ini dijalankan,


seharusnya register r18 akan
berisi data decimal 2dan register
r19 akan berisi data decimal 25

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 9 - 10
Elektronika Industri Elektro Agus Putranto
T. PEMROGRAMAN MIKROKONTROLLER TREEI065 B12.2

Teknik Pemrograman Mikrokontroller

Tugas

Rencanakan suatu algoritma, flowchart dan program dalam bahasa assembly


untuk memecahkan masalah sebagai berikut :

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

- Gurter Schmitt, Mikrocomputer-technik mit Controllern der Atmel AVR-RISC-


Familie, Olden-bourg Wissen-schaffffs-verlag GmbH, Munchen, 2007
- Datasheet, 8-bit AVR Microcon-troller with 8K Bytes In-System Programm-able
Flash Atmega 8535 Atmega 8535L, Atmel Corporation, San Jose USA, 2006
- Datasheet, 8-bit AVR Instruction Set, Atmel Corporation, San Jose USA, 2005

- BASCOM-AVR Help Reference Version 1.11.8.3 document build 8, MCS


Electronics, 2006

- Rinaldi Munir, Algoritma dan Pemrograman, Penerbit Informatika, Bandung, 2000

- Data sheet, “M68HC11 Reference Manual”, Motorola Semiconductors,


MOTOROLA, INC., 2002
- Data sheet, “MC68HC11F1 Technical Data”, Motorola Semiconductors,
MOTOROLA, INC., 1995

Program Diklat : Level : Tanggal : 52 12 01 BT


Kompetensi Kejuruan Lanjut Hal
Program studi Departemen : Rev.Tanggal : Dibuat oleh: 10 - 10
Elektronika Industri Elektro Agus Putranto

Anda mungkin juga menyukai