Anda di halaman 1dari 5

Mikroprosesor Ir.

Morlan Pardede, MT
Mengurutkan Data

MODUL 5
MENGURUTKAN DATA

A. TUJUAN
1. Membuat program mengurutkan Data dengan Algoritma Bubble Sort
2. Membuat program mengurutkan data dengan Algoritma Shell-Sort

B. Dasar Teori
Dalam beberapa aplikasi mikroprosesor sering diperlukan teknik untuk mengurutkan
data. Pada materi ini akan dijelaskan teknik mengurutkan data yang umum digunakan yaitu
teknik bubble sort dan shell-sort.
-Bubble Sort
Bubble sort adalah salah satu metode mengurutkan data yang paling mudah dipahami
dan merupakan algoritma yang paling sering digunakan, tetapi memiliki kekurangan yaitu
teknik mengurutkannya kurang efisien. Bubble sort akan mengambil lebih panjang
pengurutan untuk mengurutkan data dari daftar data acak dibanding teknik lainnya. Tetapi
jika sebuah data disisipkan pada sekelompok data yang telah diurutkan sebelumnya, dengan
teknik bubble sort akan menghasilkan pengurutan yang sangat efisien dibanding teknik yang
lainnya.

Tabel 1. Mengurutan Data Dengan Bubble sort dari Data yang terdapat pada memori
8800H s/d 8804H.

4-1 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Mengurutkan Data

Awal Iterasi 1
8804=19 8804=19 8804=19 8804=19 8804=14
8803=14 8803=14 8803=14 8803=14 8803=19
8802=18 8802=18 8802=15 8802=15 8802=15
8801=16 8801=15 8801=18 8801=18 8801=18
8800=15 8800=16 8800=16 8800=16 8800=16

Awal Iterasi 2
8804=14 8804=14 8804=14 8804=14 8804=14
8803=19 8803=19 8803=19 8803=15 8803=15
8802=15 8802=15 8802=15 8802=19 8802=19
8801=18 8801=16 8801=16 8801=16 8801=16
8800=16 8800=18 8800=18 8800=18 8800=18

Awal Iterasi 3
8804=14 8804=14 8804=14 8804=14 8804=14
8803=15 8803=15 8803=15 8803=15 8803=15
8802=16 8802=16 8802=16 8802=16 8802=16
8801=19 8801=18 8801=18 8801=18 8801=18
8800=18 8800=19 8800=19 8800=19 8800=19

Awal Iterasi 4
8804=14 8804=14 8804=14 8804=14 8804=14
8803=15 8803=15 8803=15 8803=15 8803=15
8802=16 8802=16 8802=16 8802=16 8802=16
8801=19 8801=18 8801=18 8801=18 8801=18
8800=18 8800=19 8800=19 8800=19 8800=19

Tabel 1 mengilustrasikan daftar 5 buah data acak diurutkan dengan teknik bubble sort.
Dengan Bubble sort data yang berdekatan dibandingkan. Jika hasil perbandingan
mengindikasikan pertukaran maka dilakukan pertukaran kedua data tersebut.

-Shell Sort
Untuk meningkatkan efisiensi pengurutan data dapat diperoleh dengan menggunakan Shell
sort. Shell sort merupakan pengembangan dari bubble sort yang pertama kali diusulkan oleh
D.L. Shell tahun1959. Shell sort hanya efisien hanya jika digunakan untuk mengurutkan data
yang random sedangkan bubble sort lebih efisien jika sebuah data disisipkan pada
sekelompok data.
Pada Shell sort tidak membandingkan data yang berdekatan seperti pada bubble sort, tetapi
membandingkan data dengan data yang jaraknya setengah banyak data. Sebagai contoh, jika

4-2 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Mengurutkan Data

ada delapan data yang akan diurutkan maka data dibandingkan dengan data yang berjarak 4,
dan selanjutnya yang berjarak 3, kemudian yang berjarak 2 dan terakhir yang berdekatan
seperti ditunjukkan pada tabel berikut.

Tabel 1. Rentetan sembilan data diurutkan dengan Shell sort


Interval (i)=4 Interval (i)=3
6 6 6 6 6 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1 1 1 1 1
9 9 5 5 5 5 5 5 3 3 3 3
8 1 1 1 1 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7
3 3 3 3 3 3 3 3 5 5 5 5
5 5 9 9 9 9 9 9 9 9 9 9
1 8 8 8 8 8 8 8 8 8 8 8

Interval (i)=2 Interval (i)=1


1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
6 6 5 5 5 5 5 5 5 5 5 5 5 5 5
7 7 7 7 7 7 7 7 7 7 6 6 6 6 6
5 5 6 6 6 6 6 6 6 6 7 7 7 7 7
9 9 9 9 9 9 9 9 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 9 9 9 9 9 9 9

Diperlukan empat tahapan untuk mengurutkan delapan data dengan Shell sort, sebagai
perbandingan bubble sort memerlukan tujuh tahapan untuk mengurutkan delapan data.
Diawali dengan membagi banyak data dengan dua secara integer. Untuk n=8, 8 dibagi
2=4. Jarak antara dua data dibandingkan . Jika n=9, maka 9 dibagi 2 = 4 karena hasilnya
harus bulat. Tabel 1 menunjukkan sembilan data acak diurutkan menggunakan shell sort
dengan 4 iterasi. Sebagai catatan tahap pertama membandingkan data yang jaraknya 4
bagian, kedua yang jaraknya 3 bagian dan selanjutnya. Setelah perbandingan terakhir (i=1)
data telah diurutkan. Ini memerlukan waktu lebih sedikit untuk melaksanakan 4 tahapan
dengan Shell sort dibanding 7 tahapan dengan bubble sort.

Tugas

4-3 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Mengurutkan Data

1. Buat Flowchart dan Program untuk mengurutkan data yang terdapat pada memori
8200H sampai 8205H dengan algoritma bubble sort
2. Buat Flowchart dan Program untuk mengurutkan data yang terdapat pada memori
8200H sampai 8205H dengan algoritma Shell sort.

Percobaan
1. Simulasikan program bubble sort yang anda buat
2. Berikan analisa dari hasil percobaan anda
3. Simulasikan program Shell sort yang anda buat
4. Berikan analisa dari hasil percobaan anda
5. Berikan kesimpulan anda

KICKOFF 8200H
ORG 8200H
MVI B,05 ; Set banyak loop=Banyak data-1
ULG1: MOV C,B ;Set banyak perbandingan=Banyak data -1
LXI HL,8300H
ULG2: MOV A,M ;Baca Data I
INX HL ;
CMP M ;Bandingkan dengan Data II
JNC LMPT ; Jika Data I > Data II tdk ditukar
MOV D,M ; Tukarkan Data I dgn Data II
MOV M,A
DCX HL
MOV M,D
INX HL ;
LMPT:DCR C ;Kurangi banyak perbandingan
JNZ ULG2 ;ulangi jika perbandingan blm habis
DCR B ;Kurangi banyak loop
JNZ ULG1 ;Ulangi jika loop belum habis
HLT

ORG 8300H
DB 15H, 16H, 18H, 14H
DB 19H,1AH

4-4 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Mengurutkan Data

KICKOFF 8200H
ORG 8200H
MVI B,04 ; Set banyak Interval (banyak data/2)
ULG1: LXI DE,8300H ;Set alamat data I (awal)
MOV L,E ;
MOV H,D ;
MOV A,B
ADD L
MOV L,A ;Set alamat data ke II (berikutnya)
ULG2:LDAX DE ;Baca Data I
CMP M ;Bandingkan dengan Data II
JNC LMPT ; Jika Data I > Data II tdk ditukar
PUSH BC
MOV C,M ; Saling Tukarkan Data I dgn Data II
MOV M,A
MOV A,C
STAX DE
POP BC
LMPT:INX HL
INX DE
MOV A,L ;Periksa alamat data II
CPI 09H ;Jika belum maks +1 ulangi
JC ULG2 ;
DCR B ;Kurangi banyak loop
JNZ ULG1 ;Ulangi jika loop belum habis
HLT

ORG 8300H
DB 01H, 05H, 03H, 07H
DB 08H, 09H, 01H, 02H
DB 06H

4-5 POLITEKNIK NEGERI MEDAN

Anda mungkin juga menyukai