Fungsi Struktogram
Click here to load reader
-
Upload
masterhiload -
Category
Documents
-
view
700 -
download
1
Transcript of Fungsi Struktogram
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)
Waktu 8 x 45 menit
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.
Halaman:
0-1
Dikeluarkan oleh: Tanggal:
Arie Eric Rawung /Sugiono 21-May-97
d o c u m e n t
Program Studi / Bidang Studi:
Elektronika IndustriNama :
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 Metode Alat bantu Waktu
Pengajaran Mengajar
1. Motivasi
1.1.Guru menjelaskan tujuan pelajaran Ceramah LP 5’
2. Elaborasi
1.2.Guru menjelaskan perencanaan jalannya program Ceramah OHP PTP
71’
1.3.Guru menjelaskan fungsi struktogram bentuk linier (berurutan/sequens)
Ceramah OHP PTP
68’
1.4.Guru menjelaskan fungsi struktogram bentuk keputusan (percabangan alternatip)
Ceramah OHP PTP
68’
1.5.Guru menjelaskan fungsi struktogram bentuk pengulangan (Loop)
Ceramah OHP PTP
68’
3. Konsolidasi
1.6.Guru memberikan kesempatan pada peserta untuk bertanya
TJ PT 20’
1.7.Guru menjelaskan kembali hal-hal yang belum dimengerti oleh peserta
Ceramah T + J
PT 10’
1.8.Guru bersama-sama dengan peserta menyimpulkan pelajaran
Diskusi PT 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 Salah
Struktur Program (Struktogram )
Pada struktur program ada 3 bentuk konstitusi yang boleh digunakan sebagai bangun program.
1. Struktur linier (berurutan/sequens)
Start
1S
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 STRUKTOGRAM DIN 66261
Loncat keluar bila syarat untuk mengakhiri program terpenuhi
Operasi Yang Diulang
1E
Halaman:
1-2
Operasi 2
Operasi 1
Operasi 2
Operasi 1
Y
1S
t
END
Operasi yang diulang
Syarat pemenuhan untuk
mengakhiri program
Start
Flow Chart STRUKTOGRAM DIN 66261
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.
- Keputusan untuk mengakhiri pengulangan
Kriteria keputusan selalu melihat pada kondisi bit flag
Halaman:
1-3
Start
Operasi yang diulang
END
1S
Syarat pemenuhan untuk
mengakhiri program
t
Y
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.
Inisialisasi parameter pengulangan
Tubuh pengulangan
Aktualisasi parameter pengulangan
Aktualisasi syarat pengulangan
Ya Apakah syarat untuk pengulangan terpenuhi ? Tidak
Penutup pengulangan
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
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
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 Alamat ( HEX )
Kode Operasi
(HEX) MnemonikKeterangan
ADD 12
LOOP
0900
0901
0902
0903
0904
0905
0906
0907
0908
0909
090A
090B
090C
090D
090E
090F
0910
0911
0912
0913
0914
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
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
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
Halaman:
1-6
Program :
Tanda Alamat ( HEX )
Kode Operasi
(HEX) Mnemonik
Keterangan
LOOP
END
END
0500
0501
0502
0503
0504
0505
0506
0507
0508
0509
050A
050B
050C
050D
050E
050F
0510
0511
0512
0513
0514
0515
0516
0517
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
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
Keluarkan isi AKKU ke port P DATA
Isi reg HL ditambah 1
Loncat tak bersyarat ke LOOP
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 memenuhiOperasi 2
Y t
Operasi 2 Operasi 1
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 t
Mengeluarkan data AA ke port A
Mengeluarkan data 55 ke port A
Halaman:
1-8
Start
Operasi yang diulang
END
1S
Syarat pemenuhan untuk
mengakhiri program
t1E
Y
Parameter Masukan :
Kata kendala 8255 untuk port A = Out dan port B = in adalah 82H
Alamat port B = 01H
Parameter Masukan :
Alamat port = 00HAlamat register kontrol = 03H
Alamat awal program 0600H
Program :
Tanda Alamat ( HEX )
Kode Operasi
(HEX) Mnemonik
Keterangan
END
0600
0601
0602
0603
0604
0605
0606
0607
0608
0609
060A
060B
060C
060D
060E
060F
0610
0611
0612
0613
0614
0615
0616
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
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
Program selesai
Contoh 2 : .
STRUKTOGRAM
Inisialisasi port A = Out, port B = In
Membaca nilai biner dari masukan B
Membandingkan nilai masukan dengan data 01
Apakah masukan B = 01 ?
Y t
Mengisi Membandingkan nilai masukan dengan data 02
AKKU dengan data 0FH
Apakah nilai masukan = 02?
Y t
Mengisi AKKU dengan data 0FH
Mengisi AKKU dengan data 00H
Mengeluarkan isi AKKU ke port A
Halaman:
1-9
Parameter Masukan :
Kata kendala 8255 untuk port A = Out dan port B = Input
Alamat port B = 01H
Parameter Masukan :
Alamat port = 00HAlamat register kontrol = 03H
Alamat awal program 1800H
Program :
Tanda Alamat ( HEX )
Kode Operasi
(HEX) Mnemonik
Keterangan
1800 3E LD A, 82H Mengisi register kontrol 8255 dengan kata kendala 82H
1801 82 -1802 D3 OUT 03H, A1803 031804 DB IN A, 01H Membaca nilai biner dari port B1805 01 -1806 FE CP 01H Membandingkan nilai yang dibaca dari port B
dengan konstanta 01H1807 01 -1808 CA JPZ, 181AH Loncat ke alamat 181AH untuk mengisi akku
dengan data 0F, jika nilai yang dibaca = 01H1809 19 -180A 18 -180B FE CP 02H Membandingkan nilai yang dibaca dari port B
dengan konsta 02H180C 02 -180D CA JPZ, 1815H Loncat ke alamat 1815H untuk mengisi akku
dengan data F0H, jika nilai yang dibaca = 02H180E 15 -180F 18 -
DOO 1810 3E LD A, 00H Mengisi akku dengan data 00H1811 00 -1812 C3 JP 181CH Loncat tak bersyarat untuk mengeluarkan isi akku
ke port A1813 1B -1814 18 -
DFO 1815 3E LD A, F0H Mengisi akku dengan data F0H1816 F0 -1817 C3 JP 181CH Loncat tak bersyarat untuk mengeluarkan isi akku
ke port A1818 1B -1819 18 -181A 3E LD A, 0FH Mengisi akku dengan data 0FH
DOF 181B 0F -181C D3 OUT 00, A Mengeluarkan isi akku ke port A181D 00 -
END 181E FF HALT Program selesai
Halaman:
1-10
Suatu program yang agak komplek dapat disusun dan dikembangkan dengan kombinasi dari ketiga bentuk diatas.
Contoh sebagai berikut :
1. FLOW CHART
4S
4E
1E
STRUKTOGRAM
Syarat untuk Operasi 1
Y t
Operasi 1 Inisialisasi
Syarat untukOperasi 2
Y tOperasi 4
Operasi 2 Operasi 3 Loncat mengulangi
operasi 4 jika syarat pengulangan terpenuhi
Halaman:
1-11
YSyarat untuk pengulangan
Operasi 4
Inisialisasi
Operasi 3Operasi 2
Operasi 1
3E
Y t
2E3S
Syarat untuk operasi 2
2S
Y Syarat untuk operasi 1
t
t
1S
END
Start
2.
Loncat keluar jika syarat untuk mengakhiri program terpenuhi
Syarat untuk operasi 1
Y t
Operasi 1
3.
Halaman:
1-12
IE
2E
Y
Syarat untuk Operasi 1
2S
Operasi 1
END
t
YSyarat untuk mengakhiri
program
t
1S
Start
1E
Syarat untuk mengakhiri Program
t Y
Operasi 1
Syarat untuk mengakhiri Program
t Y
Operasi 2
Halaman:
1-13
Operasi 1
t
Syarat untuk mengakhiri
program
Operasi 2
END
Y
YSyarat untuk mengakhiri
program
t
1S
Start
4.
Operasi 1
Syarat untuk memanggilprogram bagian
t y
Operasi program bagian
Operasi 2
Halaman:
1-14
1E
2E
Operasi 2
Operasi 1
t Syarat untuk mengakhiri
program
Program bagian
Y
2S
1S
Start
Latihan
1
Halaman:
2-1
Jawaban
2
Halaman:
3-1
Transparan
Halaman:
4-1