Anda di halaman 1dari 20

LAPORAN PERCOBAAN

PRAKTIKUM MIKROPROSESOR

Judul : Mengurutkan Data

Disusun Oleh :
No.Perc : 05
NAMA : KHOIRIL HUDA
KELAS : TK 4D
NIM : 1905062008
Instruktur : 1. Ir. Morland Pardede M.T
2. Daniel Saragih Napitu ,S.T,.M.Kom

JURUSAN TEKNIK ELEKTRO


PROGRAM STUDI TEKNIK TELEKOMUNIKASI
POLITEKNIK NEGERI MEDAN
T.A. 2020/2021
LEMBAR PENGESAHAN

No. Percobaan : 05/Mikroprosesor/LMP/TK-4D/2021

Judul : Mengurutkan Data

Nama Praktikan : KHOIRIL HUDA

NIM : 1905062008

Kelas : TK – 4D

Tanggal Percobaan : 06 April2021

Tanggal Penyerahan : 13 April 2021

Instruktur : 1. Ir. Morland Pardede M.T

2. Daniel Saragih Napitu, S.T, M.Kom

Praktikan

Instruktur I Instruktur II

(Ir. Morlan Pardede, MT) (Daniel Saragih Napitu S.T,.M.Kom)


DAFTAR ISI

Cover .....................................................................................................................................

Lembar Pengesahan ...............................................................................................................

Dafrat Isi ................................................................................................................................

I. TUJUAN ..............................................................................................................

II. DASAR TEORI ...................................................................................................

III. LANGKAH PERCOBAAN.................................................................................

A. Percobaan Bubble Sort ...................................................................................

1. Permasaahan ............................................................................................

2. Algoritma .................................................................................................

3. Flowchart .................................................................................................

4. Program ....................................................................................................

5. Hasil Percobaan .......................................................................................

6. Analisa .....................................................................................................

B. Percobaan Shell Sort ......................................................................................

1. Permasalahan ...........................................................................................

2. Algoritma .................................................................................................

3. Flowchart .................................................................................................

4. Program ....................................................................................................

5. Hasil Percobaan .......................................................................................

6. Analisa .....................................................................................................

IV. KESIMPULAN ....................................................................................................


MENGURUTKAN DATA

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

II. 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.
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 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 2. Rentetan sembilan data diurutkan dengan Shell sort
Interval (i)=4
6 6 6 6 6 1
2 2 2 2 2 2
1 1 1 1 1 1
9 9 5 5 5 5
8 1 1 1 1 6
7 7 7 7 7 7
3 3 3 3 3 3
5 5 9 9 9 9
1 8 8 8 8 8

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

Interval (i)=1
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 2
3 3 3 3 3 3 3 3
5 5 5 5 5 5 5 5
7 7 7 6 6 6 6 6
6 6 6 7 7 7 7 7
9 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.

Buat Flowchart dan Program untuk mengurutkan data yang terdapat pada memori 8200H
sampai 820BH dengan algoritma Shell sort.

III. LANGKAH 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.

A. Percobaan Bubble Short


Program 1. Program Mengururutkan Data yang terdapat pada 6 lokasi memori
dengan Teknik Bubble Short.
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

1. Permasalahan
Buat Flowchart dan Program untuk mengurutkan data yang terdapat pada memori
8200H sampai 820BH dengan algoritma bubble short

2. Algoritma

1. Set banyak loop = Banyak data-1


2. Set banyak perbandingan = Banyak data-1
3. Baca data I
4. Bandingkan dengan data II
5. Jika data I > data II tidak ditukar,tukarkan data I dengan data II
6. Kurangi banyak perbandingan
7. Ulangi jika perbandingan belum habis
8. Kurangi banyak loop
9. Ulangi jika loop belum habis
10. Selesai

3. Flowchart

Mulai

Set banyak iterasi sebesar banyak data-1

Set banyak perbandingan dalam satu iterasi= banyak iterasi

Set alamat awal dari data

Baca data pertama dan bandingkan dengan data berikutnya

Jika data pertama lebih kecil dari data berikutnya maka saling tukar data

Jika data pertama sama atau lebih besar dari data berikutnya tidak terjadi pertukaran

Naikkan alamat data pertama

Kurangi banyak perbandingan

Max- 1
++1
+11
+++++
Kurangi+banyak iterasi

Iterasi=0

Selesai
4. Program
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 ; Selesai
5. Hasil Percobaan
6. Analisa Data
B. Percobaan Shell Short
1. Set besar interval sebesar banyak data/2
2. Set alamat data I
3. Set alamat data II=Alamat Data I ditambah interval
4.Baca data I dan bandingkan dengan data II
5.Jika data I lebih kecil dari data II maka saling tukar data I dengan Data II
6.Jika data I sama atau lebih besar dari data II tidak terjadi pertukaran
7.Naikkan alamat data I dan alamat data II
8.Periksa alamat data II jika belum maks +1 ulangi langkah 4.
9.Jika alamat data II alamat maks+1 maka kurangi besar interval
10.Periksa besar interval dan ulangi langkah 2 jika interval belum 0
11. Jika interval=0 Selesai

Program 2. Program Mengururutkan Data yang terdapat pada 9 lokasi memori


dengan Teknik Shell Short
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
1. Permasalahan
Buat Flowchart dan Program untuk mengurutkan data yang terdapat pada memori
8200H sampai 820BH dengan algoritma Shell sort.

2. Algoritma
1. Set banyak interval (banyak data/2)
2. Set alamat data I (awal)
3. Set alamat data II (berikutnya)
4. Baca data I
5. Bandingkan dengan data II
6. Jika data I > data II tidak ditukar
7. Saling tukarkan data I dengan data II
8. Periksa alamat data II
9. Jika belum maks +1 ulangi
10. Kurangi banyak loops
11. Ulangi jika loop belum habis
12. Selesai
3. Flowchart
Mulai
Set besar interval sebesar banyak data-2

Set alamat data I

Set alamat data II=Alamat Data I ditambah interval

Baca data I dan bandingkan dengan data II

Jika data I lebih kecil dari data II maka saling tukar data I dengan Data II

Jika data I sama atau lebih besar dari data II tidak terjadi pertukaran

Naikkan alamat data I dan alamat data II

Periksa alamat data II

Max- 1
++1
+11
+++++
kurangi+besar interval

Periksa besar interval

Interval=0

Selesai
4. Program
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 ; Selesai
5. Hasil Percobaan
6. Analisa
IV. KESIMPULAN

Anda mungkin juga menyukai