Minggu, 24 Juli 2011

PROGRAM SORTING


A. TEORI SINGKAT
Program sorting adalah suatu program yang dibentuk dengan tujuan untuk mengurutkan data yang akan menghasilkan keluaran data dari yang kecil menuju kebesar. Dalam program sorting, terdapat beberapa instruksi yang digunakan dalam proses pengurutan, seperti :
  • Instruksi JUMP
Dalam mikroprosesor Zilog Z-80 CPU instruksi – instruksi pencabangan menggunakan instruksi JUMP. Instruksi JUMP membuat mikroprosesor menjadi perangkat yang sangat ampuh. Instruksi JUMP dapat dikategorikan menjadi empat kategori, yaitu :
  • JUMP bersyarat
  • JUMP tanpa syarat
  • JUMP absolut
  • JUMP relatif
  • Instruksi Increment dan Decrement
Instruksi INC digunakan untuk menambah isi suatu register atau memori dengan suatu nilai. Instruksi ini sangat potensial digunakan untuk membuat counter cacah naik.
Instruksi DEC digunakan untuk mengurangi isi suatu register dengan suatu memori dengan nilai 1.
  • Instruksi Compare ( CP )
Digunakan untuk membandingkan isi suatu akumulator dengan data immediate 8 bit atau isi salah satu register atau data suatu memori tanpa merubah isi akumulator.Instruksi ini sangat baik untuk menguji sebuah data apakah data tersebut sama dengan nilai tertentu , lebih kecil atau lebih besar.
B. DATA PERCOBAAN
Buatlah program untuk mengurutkan data dari yang terkecil menuju yang terbesar .
Algoritma :
  1. Buat cacahan jumlah data = 5 di register B
  2. Isi register IX dengan data 1900
  3. Isi register C dengan data pada register B
  4. Isi register IY dengan IX
  5. Isi register A dengan memori yang alamatnya ( IX + 00 )
  6. Isi register D dengan Memori yang alamatnya ( IY +00 )
  7. Bandingkan dengan D
  8. Apakah C = 1, ya lompat ke step 11
  9. Isi memori yang alamatnya ( IX + 00 ) dengan D
  10. Transfer isi reg. D ke memori yang alamatnya ( IY + 00 )
  11. IY yang baru IY + 00
  12. C yang baru C – 1
  13. Apakah Z = 0, ya ulang kestep 5
  14. IX yang baru IX + 1
  15. B ayng baru B -1
  16. Apakah Z = 0, ya ulang ke step 3
  17. Stop







Flow Chart:







Program :
Add Op - Code Label No. Mnemonik Keterangan
1800 06 04

1 LD B, 04H

1802 DD 21 00 19

2 LD IX, 1900H

1806 48 ULANG 3 LD C,B

1807 DD E5

4 PUSH IX

1809 FD E5

5 PUSH IY

180B DD 7E 00 ULANG 6 LD A, C (IX + 00)

180E FD 56 01

7 LD D, C (IY + 01)

1811 ED A9

8 CP D

1813 DA 1C 18

9 JPC, MAJU

1816 DD 72 00

10 LD (IX + 00), D

1819 FD 77 01

11 LD (IY + 01), A

181C FD 23 MAJU 12 INC IY

181E 0D

13 DEC C

181F C2 0B 18

14 JPNZ, ULANG

1822 DD 23

15 INC IX

1824 OD

16 DEC B

1825 C2 06 18

17 JPNZ, ULANG

1828 FF

18 RST 38


Pengujian
Masukan program adalah data yang nilainya acak, setelah pengeksekusian program maka keluaran program berupa data yang urut dari kecil ke besar yang dapat kita lihat hasilnya pada register AF. Proses pengurutan data dapat dijelaskan dengan ilustrasi berikut :







DATA
I
II
III
IV
80
20 20 20 10
10 10 10
10 10
10
20
80 80 80 80
70 20 20
20 20
20
70
70 70 70 70
80 80 80
70 50
50
10
10 10 10 20
20 70 70
80 80
70
50
50 50 50 50
50 50 50
50 70
80


Cara kerja program :
  • Membandingkan data ke-1 dengan ke-2, ke-3 dan data yang lain
  • Data yang kecil dijadikan data yang baru untuk dibandingkan
  • Setelah dibandingkan dapat yang lebih kecil, data tersebut ditukar lagi
  • Program akan berhenti jika semua data telah dibandingkan dan disusun

Tidak ada komentar:

Posting Komentar