Anda di halaman 1dari 20

TEKNIK MIKROPROSESSOR STRUKTOGRAM

Fungsi Struktogram
Tujuan Instruksional Umum
Mengerti fungsi struktogram

Tujuan Instruksional Khusus


Peserta harus dapat: Merencanakan jalannya program Menjelaskan fungsi struktogram bentuk linier (berurutan/sekuens) Menjalankan fungsi struktogram bentuk keputusan (percabangan,alternatip) Menjelaskan fungsi struktogram bentuk pengulangan (loop) 8 x 45 menit

Waktu Alat Bantu Mengajar / Persiapan


OHP Papan tulis putih Spidol Transparan

Kepustakaan

Keterangan
Materi ini disajikan sebagai pengantar untuk pembuatan program pada mata pelajaran : Mikroprosessor, Bahasa Basic dan Turbo Pascal.

Program Studi / Bidang Studi:

Dikeluarkan oleh:

Tanggal:

Elektronika Industri
Nama :

Arie Eric Rawung /Sugiono

21-May-97

Halaman:

1 1 7 0 4 0 6 3

0-1

Struktur Materi Pelajaran

Fungsi Struktogram

Perencanaan Jalannya Program

Struktur Program (Struktogram)

Struktur Linier (berurutan/sequens)

Struktur keputusan (percabangan,alternatif)

Struktur pengulangan (Loop)

Pembagian tahap Mengajar 1. Motivasi


1.1.Guru menjelaskan tujuan pelajaran

Metode Pengajaran

Alat bantu Mengajar

Waktu

Ceramah

LP

2.

Elaborasi
1.2.Guru menjelaskan perencanaan jalannya program 1.3.Guru menjelaskan fungsi struktogram bentuk linier (berurutan/sequens) 1.4.Guru menjelaskan fungsi struktogram bentuk keputusan (percabangan alternatip) 1.5.Guru menjelaskan fungsi struktogram bentuk pengulangan (Loop) Ceramah Ceramah Ceramah Ceramah OHP PTP OHP PTP OHP PTP OHP PTP 71 68 68 68

3.

Konsolidasi
1.6.Guru memberikan kesempatan pada peserta untuk bertanya 1.7.Guru menjelaskan kembali hal-hal yang belum dimengerti oleh peserta 1.8.Guru bersama-sama dengan peserta menyimpulkan pelajaran TJ Ceramah T+J Diskusi PT PT PT 20 10 20

4.

Evaluasi
1.9.Peserta mengisi lembar latihan MLL LL 30

Halaman:

0-3

TEKNIK MIKROPROSESSOR STRUKTOGRAM

Fungsi Struktogram
Tujuan Instruksional Umum
Mengerti fungsi struktogram

Tujuan Instruksional Khusus


Peserta harus dapat: Merencanakan jalannya program Menjelaskan fungsi struktogram bentuk linier (berurutan/sekuens) Menjalankan fungsi struktogram bentuk keputusan (percabangan,alternatip) Menjelaskan fungsi struktogram bentuk pengulangan (loop)

Informasi Teori
Perencanaan Jalannya Program Untuk memberikan kejelasan, setelah menganalisa masalah yang terjadi dengan tepat, maka dibuat sedikit atau banyak detail dari jalannya program yang telah direncanakan. Dengan ini kita dapat mengurangi kesukaran pemrograman, walaupun demikian pada saat kita membuat kesalahan logika pada suatu jalannya program, sering memberikan pelajaran yang baik untuk mendapatkan pemahaman dan jalan keluar lebih baik. Sebuah perencanaan jalannya program menggambarkan urut-urutan proses atau jalannya fungsi sebuah program, perencanaan ini juga menunjukkan urutan yang mana atau syarat yang mana dari pelaksanaan kejadian sebelumnya, yang akan diulang. Pada perencanaan jalannya program dapat dituangkan dalam bentuk aliran program (Flow Chart) atau struktur program ( Struktogram ). Hal yang penting untuk menghindari banyak kesalahan pada flow chart, bahwa masing-masing blok mempunyai sebuah masukan (S) dan sebuah keluaran (E). Nassi Shneiderman membangun sebuah bentuk khusus yang dikenal dengan Struktogram yang kemudian ditetapkan sebagai DIN 66261.Pada struktogram memiliki satu masukan dan satu keluaran.

Halaman:

1-1

Benar Struktur Program (Struktogram )

Salah

Pada struktur program ada 3 bentuk konstitusi yang boleh digunakan sebagai bangun program. 1. Struktur linier (berurutan/sequens) Start 1S Operasi 1 Operasi 2 1E END Perintah-perintah yang ada dalam urutan perintah, pelaksanaannya berlangsung secara berurutan, dimana setelah pelaksanaan satu perintah maka isi PC (Penghitung Perintah) akan naik satu untuk melaksanakan perintah berikutnya. 2. Struktur Pengulangan (Loop) Flow Chart Start 1S Syarat pemenuhan untuk mengakhiri program t Operasi yang diulang Y Operasi Yang Diulang STRUKTOGRAM DIN 66261 Loncat keluar bila syarat untuk mengakhiri program terpenuhi Operasi 1 Operasi 2

1E END

Flow Chart

STRUKTOGRAM DIN 66261

Start 1S Operasi yang diulang Syarat pemenuhan untuk END mengakhiri program

Halaman:

1-2

Operasi Yang Diulang

Loncat keluar bila syarat untuk mengakhiri program terpenuhi

1E

Pengulangan program bagian yang dapat dijalankan berulang-ulang disebut sebagai tubuh dari pengulangan. Pada masing-masing pengulangan, minimal ada satu syarat loncat dan pada setiap pelaksanaan pengulangan, syarat loncat tersebut harus diuji. Hasil pengujian akan mempengaruhi jalannya program bagian/tubuh pengulangan atau jalannya perintah berikutnya. Pengulangan pada umumnya terdiri dari beberapa bagian berikut ini : Inisialisasi Pengisian register atau lokasi memori yang dipakai pada pengulangan. Contoh : alamat awal penyimpan data, nilai awal dari suatu penghitung. Pengosongan register atau flag. Bagian ini hanya dilaksanakan satu kali Tubuh pengulangan Hal ini tediri dari program yang harus berulang-ulang dilaksanakan. Contoh : Perhitungan, memeriksa kondisi masukan keluaran. Rangka pengulangan ini dapat terdiri dari struktur pengulangan atau alternatip. Aktualisasi dari Parameter Pengulangan Pada pemprosesan blok data, contoh penunjuk alamat pada setiap pelaksanaan pengulangan harus dinaikkan 1 atau diturunkan 1. Aktualisasi syarat untuk mengakhiri pengulangan untuk digunakan : Penghitung, yaitu setiap pelaksanaan pengulangan isi register atau lokasi memori dinaikan atau diturunkan. Pada pencapaian suatu nilai tertentu maka pengulangan akan berakhir. Juga pada pengujian sebuah hasil (perhitungan bila sesuatu nilai tercapai, lebih besar atau lebih kecil maka pengulangan berakhir. Sebuah kemungkinan lain adalah pengujian bit kontrol dari isi register atau mencari, pengulangan dapat dipengaruhi melalui hasil dari jalannya program atau melalui pembacaan blok masukan keluaran. Kriteria keputusan selalu melihat pada kondisi bit flag a. Pengujian Pengulangan pada akhir struktur pengulangan ( Repeat Until ) Kekurangan pada instruksi ini, bahwa bagian yang diulang akan langsung berjalan pada saat masuk ke dalam pengulangan dan pengulangan berikutnya tergantung dari pemenuhan syarat.
Halaman:

Keputusan untuk mengakhiri pengulangan

1-3

Inisialisasi parameter pengulangan Tubuh pengulangan Aktualisasi parameter pengulangan Aktualisasi syarat pengulangan Ya Apakah syarat untuk pengulangan terpenuhi ? Tidak Penutup pengulangan

Mengisi penghitung - Mengisi alamat awal Menghapus register - Perhitungan - Pengurangan atau penambahan Penunjuk alamat - Pengurangan penghitung Membanding hasil dengan konstanta - Menguji bit flag yang dipakai Sebagai syarat pengulangan - Menyimpan hasil Mengambil kembali register

b. Pengujian Pengulangan pada awal struktur pengulangan ( While DO ) Tubuh pengulangan hanya akan dijalankan pada awal bila syarat pengulangan terpenuhi. Inisialisasi parameter pengulangan Aktualisasi syarat untuk mengakhiri pengulangan Apakah syarat untuk mengakhiri pengulangan terpenuhi tidak Ya Tubuh pengulangan Aktualisasi parameter pengulangan Apakah syarat untuk pengulangan terpenuhi ? Tidak Penutup pengulangan

Penutup Pengulangan Di sini hasil yang didapat dari perhitungan pada saat pengulangan di simpan atau isi asli/awal dari register yang dipakai pada saat pengulangan di isi kembali pada register yang bersangkutan

Halaman:

1-4

Contoh 1 Sebuah Mikroprosessor harus menambah 12 bilangan biner (panjang 8 bit) yang berada pada blok data, alamat awal blok data diberi simbol DATA. Hasil akhir penjumlahan diletakkan pada register HL. Alamat awal Mikroprosessor : 0900 H, alamat DATA ; 0A00 H. Pemecahan : Penjumlahan harus terjadi pada tubuh pengulangan jumlah pengulangan harus dihitung pada register B. Karena penghitung, untuk memulai pengulangan tidak pernah diisi dengan 0, maka dipergunakan struktur repeat - until. Untuk blok data, diperlukan 1 penjumlah data, register IX Karena hasil dapat lebih besar dari 8 bit, maka Register HL dipakai sebagai tempat penghitung dan hasil. Operan tunggal /data 8 bit dapat diisi ke register E dan untuk kemudian ditambahkan dengan isi register HL untuk mendapatkan hasil sementara pada setiap pengulangan.

Parameter Masukan : alamat awal dari blok data ( DATA ) Parameter Keluaran : HL berisikan hasil dari program Register yang berubah : B, DE, HL, IX STRUKTOGRAM Mengisi penghitung (b) dengan 0CH Mengisi penunjuk data (IX) dengan alamat awal blok data (DATA) Menghapus register HL dan E Mengisi E dengan data dari blok data dan tambahkan dengan isi register HL Menambah 1 penunjuk data (IX) untuk data berikutnya Penghitung pengulangan -1 Apakah penghitung pengulangan belum sama dengan 0 ?

Halaman:

1-5

Program : Tanda ADD 12 Alamat ( HEX ) 0900 0901 0902 0903 0904 0905 0906 0907 0908 0909 090A 090B 090C 090D 090E 090F 0910 0911 0912 0913 0914 Kode Operasi (HEX) Mnemonik 06 0C DD 2A 00 0A 16 00 62 6A DD 5E 00 19 DD 23 05 C2 0A 09 FF LD B, 0CH LD IX,(DATA) LD D, 00H LD H, D LD L, D LD E,(IX+0) ADD HL, DE INC IX DEC B JPNZ, LOOP HALT Keterangan Jumlah data dalam blok data di isi ke register B Alamat dari blok data yaitu Data dan DATA+1 ke register IX

Menghapus register operan (D) Menghapus register operan (H) Menghapus register operan (L) Mengisi reg.E dengan operan dari blok data yang alamatnya ditunjuk oleh IX Menghasilkan hasil sementara Alamat data berikutnya (IX+1) Aktualisasi syarat pengulangan menguji syarat pengulangan

LOOP

Program selesai

Contoh 2 : Mikroprosessor menampilkan urutan ke port keluaran. Alamat awal urutan karakter yang diberi simbol KATA adalah 0C00H. Alamat port keluaran yang diberi simbol P DATA adalah 00H. Data yang dipakai sebagai akhir dari data KATA adalah FFH. alamat awal Mikroprosessor : 0500H. Pemecahan : Parameter masukan : alamat awal dari data KATA data sebagai tanda akhir urutan data adalah FFH. Parameter keluaran : alamat port keluaran P DATA = 00H. Register yang berubah : tidak ada. STRUKTOGRAM Menyelamatkan register AF, BC, HL ke Stack Mengisi register penunjuk data dengan alamat awal data (KATA) Cycle endless Mengisi register dengan data dari data KATA yang ditunjuk Membandingkan isi register dengan data akhir dari data KATA Apakah isi register sama dengan data akhir dari data KATA ? mengeluarkan isi register ke alamat port P DATA Isi register penunjuk data di tambah 1

Program :

Halaman:

1-6

Tanda

Alamat ( HEX ) 0500 0501 0502 0503 0504 0505 0506 0507 0508 0509 050A 050B 050C 050D 050E 050F 0510 0511 0512 0513 0514 0515 0516 0517

Kode Operasi (HEX) Mnemonik F5 C5 E5 21 00 0C 0E FF 3E B9 28 14 05 D3 00 0C 23 18 08 05 E1 C1 F1 FF PUSH AF PUSH BC PUSH HL LD HL,KATA LD C, FFH LD A, (HL) CPC JPZ, END OUT (P DATA),A INC HL JP LOOP POP HL POP BC POP AF HALT

Keterangan Menyimpan isi register AF,BC dan HL ke stack Mengisi register HL dengan alamat dari blok data Mengisi reg.C dengan data akhir blok data Mengisi reg A dengan isi memori yang ditunjuk oleh HL Membandingkan isi A dengan isi C Loncat ke label END, jika AKKU=FFH

LOOP

Keluarkan isi AKKU ke port P DATA

END

Isi reg HL ditambah 1 Loncat tak bersyarat ke LOOP

END

Mengambil kembali isi register AF,BC dan H L dari stack Program selesai

Halaman:

1-7

3. Struktur Keputusan ( Percabangan, Alternatip ) Flow Chart STRUKTOGRAM DIN 66261 Syarat untuk memenuhi Operasi 2 Y Operasi 2 Operasi 1 t

Start 1S Operasi yang diulang

Syarat pemenuhan untuk mengakhiri program 1E t END

Struktur ini terdiri dari sebuah blok pengontrol, yang telah ditentukan dan akan menjalankan alternatip bila syarat tertentu terpenuhi. Contoh : Inisialisasi port B = In, Port A = Out Membaca nilai biner dari masukan port B Membandingkan nilai masukan port B dengan data AB Apakah masukan data Port B sama dengan AB ? Y Mengeluarkan data AA ke port A Mengeluarkan data 55 ke port A t Parameter Masukan : Kata kendala 8255 untuk port A = Out dan port B = in adalah 82H Alamat port B = 01H Parameter Masukan : Alamat port = 00H Alamat register kontrol = 03H Alamat awal program 0600H

Halaman:

1-8

Program : Tanda Alamat ( HEX ) 0600 0601 0602 0603 0604 0605 0606 0607 0608 0609 060A 060B 060C 060D 060E 060F 0610 0611 0612 0613 0614 0615 0616 Kode Operasi (HEX) Mnemonik 3E 82 D3 03 DB 01 FE AB CA 12 06 3E 55 D3 00 C3 16 06 3E AA D3 00 FF LD A, 82H OUT 03, A In A, 01H CP, ABH JPZ,0612 LD A, 55H OUT 00H, A JP 0616 LD A, AAH OUT 00, A HALT Keterangan Mengisi reg kontrol 8255 dengan data kendala 82H

Membaca nilai biner dari port B Membandingkan nilai yang dibaca dari port B dengan konstanta ABH Loncat ke alamat 0612 untuk mengeluarkan data AA ke port A, jika nilai yang dibaca = ABH

Mengeluarkan data 55H ke port A

Loncat tak bersyarat untuk mengakhiri program

Mengeluarkan data AAH ke port A

END Contoh 2 : . STRUKTOGRAM

Program selesai

Inisialisasi port A = Out, port B = In Membaca nilai biner dari masukan B Membandingkan nilai masukan dengan data 01 Apakah masukan B = 01 ? Y Mengisi AKKU dengan data 0FH Apakah nilai masukan = 02? Y Mengisi AKKU dengan data 0FH t Mengisi AKKU dengan data 00H t Membandingkan nilai masukan dengan data 02

Parameter Masukan : Kata kendala 8255 untuk port A = Out dan port B = Input Alamat port B = 01H Parameter Masukan : Alamat port = 00H Alamat register kontrol = 03H Alamat awal program 1800H

Mengeluarkan isi AKKU ke port A

Halaman:

1-9

Program : Tanda Alamat ( HEX ) 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 180A 180B 180C 180D 180E 180F 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 181A 181B 181C 181D 181E Kode Operasi (HEX) Mnemonik 3E 82 D3 03 DB 01 FE 01 CA 19 18 FE 02 CA 15 18 3E 00 C3 1B 18 3E F0 C3 1B 18 3E 0F D3 00 FF LD A, 82H OUT 03H, A IN A, 01H CP 01H JPZ, 181AH CP 02H JPZ, 1815H LD A, 00H JP 181CH LD A, F0H JP 181CH LD A, 0FH OUT 00, A HALT Membaca nilai biner dari port B Membandingkan nilai yang dibaca dari port B dengan konstanta 01H Loncat ke alamat 181AH untuk mengisi akku dengan data 0F, jika nilai yang dibaca = 01H Membandingkan nilai yang dibaca dari port B dengan konsta 02H Loncat ke alamat 1815H untuk mengisi akku dengan data F0H, jika nilai yang dibaca = 02H Mengisi akku dengan data 00H Loncat tak bersyarat untuk mengeluarkan isi akku ke port A Mengisi akku dengan data F0H Loncat tak bersyarat untuk mengeluarkan isi akku ke port A Mengisi akku dengan data 0FH Mengeluarkan isi akku ke port A Program selesai Keterangan Mengisi register kontrol 8255 dengan kata kendala 82H

DOO

DFO

DOF END

Halaman:

1-10

Suatu program yang agak komplek dapat disusun dan dikembangkan dengan kombinasi dari ketiga bentuk diatas. Contoh sebagai berikut : 1. FLOW CHART Start 1S Y 2S Operasi 1 2E 3S Y Syarat untuk operasi 2 t Syarat untuk pengulangan Operasi 2 Operasi 3 t 4E 3E Y Inisialisasi 4S Syarat untuk operasi 1 t

Operasi 4

END STRUKTOGRAM

1E

Syarat untuk Operasi 1 Y Operasi 1 Syarat untuk Operasi 2 Y t Operasi 4 Inisialisasi t

Operasi 2

Operasi 3

Loncat mengulangi operasi 4 jika syarat pengulangan terpenuhi

2.

Halaman:

1-11

Start 1S Syarat untuk mengakhiri program t 2S t Y

Syarat untuk Operasi 1

Y Operasi 1

2E IE END

Loncat keluar jika syarat untuk mengakhiri program terpenuhi Syarat untuk operasi 1 Y t

Operasi 1

3.

Halaman:

1-12

Start 1S Syarat untuk mengakhiri program t Operasi 1 Y

Syarat untuk mengakhiri program t Operasi 2 1E

END

Syarat untuk mengakhiri Program t Operasi 1 Syarat untuk mengakhiri Program t Y Y

Operasi 2

Halaman:

1-13

4.

Start 1S Operasi 1 2S t Syarat untuk mengakhiri program Y

Program bagian

2E Operasi 2 1E

Operasi 1 Syarat untuk memanggil program bagian t y

Operasi program bagian

Operasi 2

Halaman:

1-14

Latihan

Halaman:

2-1

Jawaban

Halaman:

3-1

Transparan

Halaman:

4-1

Anda mungkin juga menyukai