]urnal
Rekursif,
Vol.2 No. 1
Maret Z\'!,4,ISSN
2303-
OTSS
PERANGKAT
LUNAK
PtrNDUKUNG
PE,MBELAJARAN ALGORTTMA
HEAPSORT
Cici
Al
Akhyatir, Asahar Johal,Boko
Susilo3 l'2'3Progra-Studi Teknik Infomatika, Fakultas Teknik, Universitas Bengkulu.
Jl. WR. Suprarman Kandang Limun Bengkulu 3g37lA INDONESIA (telp: 0736-34 I 022; fax: 0j36-341022)
2asahar.
j
oharGyahoo.
com
Abstrak:
Tujuandari
penelitianini
adalah menghasilkan perangkat lunak yang mampu mendukungproses pembelajaran
algoritma
heapsort, khususnya perangkatlunak
yang dapat
menjelaskan danmenampilkan simulasi
dari
prosedurkerja algoritma
heapsort.Algoritma
heapsort adalah salah satualgoritma pengurutan
yang dipelajari
di
Teknik Informatika
untuk
memecahkan masalah pengurutan.Dalam proses pembelajaran
Algoritma
heapsort dosen dan mahasiswa TeknikInformatika
dituntut untukmenggambar prosedur kerja algoritma heapsorl yang sulit. Permasalahan yang muncul adalah bagaimana
membuat perangkat lunak yang mampu mendukung pembelajaran algoritma heapsort. perangkat lunak
ini
menggunakan
Visual
Basic
6.0
sebagai bahasa
pemrograman.Perangkat
lunak
dikembangkan menggunakan metodewaterfall
yang melibatkan proses analisisdan
desain berorientasi objek, prosespengkodean dan proses pengujian. Proses pengujian dilakukan dengan mencocokkan hasil pengurutan
yang dilakukan secara manual dengan hasil yang diperoleh perangkat lunak ini. Hasil eksekusi dari proses
pengurutan dapat dicetak bentpa
textfile
(*.txt)
Kata kunci: Perangkat lunak, Heapsort, Visual Basic 6.0, Waterfall, Metode Berorientasi Objek.
Abstract:
The
purposeof
this
researchis
toproduce software
which is
able
to
support
thelearning
of
heapsort
algorithm,
especially
thesoftware
which
can explain
and
show
theprocedure
of
work
of
the algorithm
heapsort.Heapsort
algorithm
is one
of
sorting
algonithmwhich
islearn in "Teknik Informatika,,
to
solvethe
problem sorting.
In the
processof
heapsortalgorithm
learning,
lecture
and
student of
"Teknik Informatika', is
demandedto
describethe difficult
procedure
of
work
of
heapsortalgorithm.
The
problem
is
how
to
make softwarewhich
is able tosupport
thelearning
of
heapsort
algorithm.
This software
usesvisual
basic 6.0
as
a
program
language.The
softwareis
constructed
with
using waterfall
methodwhich involves the
processof
object
orientedanalysis design, code process, testing
process.The testing
processis done
with
adjusting
theresult
of
manual sorting
with
that
is
producedby
the software. The
result
of
executionof
thesorting
process can beprinted
and savedin
text
file.
Kelrvords: Software,
Heapsort,Visual
Basic 6.0,Waterfall, Object
OrientedMethod
I.
PENDAHULUANKomputer dibuat
sebagai
alat
bantu
untukfurnal
Rekursif
YoL 2 No.
1Maret20L4,ISSN
2303-0755
dapat diselesaikan oleh komputer asalkan
langkah-langkah penyelesaiannya disediakan
oleh
manusia.Dalam hal ini,
komputer
hanyabertindak
untukmenjalankan perintah-perintah
yang
tertulisdidalam
program.
Urutan
langkah-langkahpenyelesaian masalah
yang
terdapat
dalamprogram
disebut algoritma.Algoritma
merupakankunci
utama kehidupan
semuaprogram
meskiuntuk
aplikasi
sederhanasekalipun.
Algorimadisusun oleh
langkah-langkah berhingga,
yangrnasing-masing langkahnya memerlukan
satuoperasi atau lebih.
Referensi
[l]
mengatakan sebenarnya manusiamampu
melaksanakan perintah-perintah
yangtertulis
didalam program, tetapi komputer memilikikelebihan dibandingkan manusia. Komputer adalah
benda
mati,jadi tidak
mengnallelah dan
bosan.Komputer mampu
mengerjakan
perintah
yangbanyak sekalipun, selain itu komputer
juga
mampumengerjakan
perintah
yang
samaberulang
kali,100
kali,
sejutakali,
atau berapakalipun
yangmanusia perintahkan. Manusia
sering
lupa,sedangkan
komputer
tidak. Komputer
memilikimemori
yang besar sehingga mampu menyimpandata dan informasi dalam jumlah yang banyak.
Dalam
kehidupan sehari-hari komputer seringdigunakan
untuk
mengurutkan sekumpulan nilai.Permasalah pengurutan (sorting) banyak ditemukan
dalam
aplikasi
yang
berhubungandengan
datapengurutan
Nomor Induk
Mahasiswa(NIM),
ilai,Nomor
ID
sebuah barang inventaris, d.aftar kata,daftar
nama,
dan
sebagainya.
Lebih
mudahmembaca data
terurut
daripada data yang tersusunacak karena data yang terurut memudahkan proses
pencarian data.
Didalam
bidang Teknik Informatika
banyakterdapat
jenis-jenis algoritma
pengurutan
yangdapat
digunakan
untuk
memecahkan
masalahpengurutan, di antaranya adalah bubble sort, merge
sort,
insertionsort,
quicksorl,
dan selection sort,serta masih banyak lagi jenis algoritma pengurutan
lainnya. Oleh karena
itu,
teknik dan kejelian untukmemilih
algoritma pengurutan
yang tepat
dansesuai
dengan
permasalahanpengurutan
yangdihadapi sangat diperlukan karena masing-masing
algoritma
pengurutan
tersebut
memiliki
karakteristik yang berbeda-beda.
Referensi 121 menyebutkan
algoritma
heapsortadalah
algoritma pengurutan
yang
memilikikompleksitas
waktu
terbaik. Selain
itu
juga,heapsort menerapkan
teknik
yangunik
di
dalammemecahkan masalah pengurutan,
yaitu
denganmenggunakan heaptree"
Algoritma
heapsortmemiliki
kelebihan ketikamenangani
data dalam skala yang besar
ataumassive. Pengurutan bilangan dapat
lebih
efisienbila
menggunakanalgoritma heapsort,
karenaalgoritma
ini
memiliki
kelebihan
yaitu
tidakmenggunakan banyak tabel, tetapi hanya satu tabel
yang
dipakai
untuk
menyimpan
hasil
daripengurutan tersebut.
Manfaat besar
yang
diberikanoleh
pengurutanbilangan
menggunakanalgoritma heapsort
tentuharus
diikuti
dengan
kemampuan
mahasiswaTeknik
Informatika
dalam
memahami
danmengerti
prosedurkerja
dari algoritma
heapsort.Pada
kenyataanya
sistem
pembelajaran
yangsedang berjalan
saat
ini
belum
sepenuhnyamendukung.
FIal
ini
disebabkan
sarana
yangdigunakan dalam mendistribusikan
pengetahuandari dosen kepada mahasiswa masih sangat minim.
Dalam
proses
pembelajaranyang
dilakukanselama
ini,
untuk
memahami
materi
algoritmaheapsorl,
mahasiswa
dituntut
untukmenggambarkan proses atau prosedur
kerja
darifurnal
Rekursif,
Vol.2
No. L
Maret
ZO.J.4,ISSN2303_075S
1t it
l + i + literus berlangsung pada setiap semester mata kuliah
tersebut diatas
yang
terdapat
materi
mengenaialgoritma
heapsortnya.Kondisi seperti
ini
tentu saja akan menguraspikiran
dan tenaga dosenjika
harus
memberikan
penjelasanberulang
karenaperbedaan
daya tangkap
mahasiswayang
tidaksama.
Pembelajaranakan semakin
sulit
denganadanya langkah-langkah atau prosedur kerja yang
terdapat
pada
algoritma heapsort,
karenamahasiswa
dituntut untuk
mengerjakan
suatuperintah ang sama berulang kali.
Peranan
komputer
tidak terlalu
diperlukanapabila
data
yang
diurutkan
hanya
seciikitlmisalkan hanya
l0
buah data), karena mahasiswamampu
mengerjakan secaramanual.
Bagaimanajika
data yang diurutkan jumlahnya sangat banyak(misalnya
50
sampai ribuan data)?
Tentu mahasiswajuga
mampu
melakukannyE
tetapimungkin
dibutuhkan
waktu
yang cukup
lama,karena memerlukan ketelitian dan kesabaran untuk
mengerjakannya.
Disinilah
computer
berperandalam mengerjakan perintah yang diberikan tanpa
lelah
dan
bosannamun
tetap memberikan hasilpekerjaan yang
teliti
dalam waktu yang singkat.Dengan
mernanfaatkan
peranan
komputerdalam
membantu melakukanproses
pengurutan,penulis
bermaksud
untuk
merancang
danmengembangkan
sebuah perangkat
lunak
yangmampu untuk
menjelaskanprosedur
kerja
darialgoritma heapsort dalam menampilkan data secara
terurut.
Cleh karenaitu,
penulis mengambil tugasakhir
dengan
judul
..perangkat
Lunak
Pendukung
PembelajaranAlgoritma
Heapsort,.II.
LANDASAN TEORIA.
Algoritma HeapsortSorting
atau pengurutan merupakan pekerjaanyang sering diiakukan dalam kehidupan sehari_hari.
Tujuan dari pengurutan adalah menyusun sejumlah
data
sedemikian sehingga
diperoleh
suatuketeraturan apakah
terurut
menaik
atau
terurutmenurun. Dengan adanya data terurut, disamping
enak
dipandangmaka
pencarian dapat dilakukandengan cepat baik dengan algoritma biner maupun
dengan rumus interpolasi.
Algoritma Heapsort
menggunakan strukturpohon heap
(heaptree)
untuk
melakukanpengurutan. Prosedur heapsort
mengurutkan sekumpulan data pada sebuaharrdy
atau heaptree.Cara
kerjanya adalah, heapsort akan mengambildata pada node akar (index
array
-* l)
dan menggantinya (exchange) dengan data pada nodepaling akhir {index
array
:
index
palingmaksimum
dari pohon heap).
Setelahitu,
nodeterakhir dihapus dan heapsort memanggil prosedur
heapifi
dengan tujuan agar setelah proses penggantian
data, pohon masih memenuhi property heap.Data_
data yang dikeluarkan merupakan data yang terurut,
baik
menaik
(ascending) maupun
menurun(descending).
B.
Heaptree {Pohon Heap)Heaptree J:1 adalah pohon biner yang memiliki
beberapa persyaratan berikut:
l)
Struktur
pohon:
harus lengkap
atausempurna,
kecuali untuk level yang
terbawah(dengan syarat: semua
node
padalevel
terbawahharus berada di sebelah
kiri).
2)
Strukturpohon:
memenuhiproperti
heap,yaitu:
a.
Node
akar(root node)
memiliki
data terbesaratau terkecil yang terdapat pada pohon.
b.
Subtreedi
sebelahkiri
dan sebelah kanan node akar memenuhi persyaratan berikut: node induklurnal
Rekursif, Vol.
2 No. 1
Maret
ZO14,ISSN
2303-0755
paling kecil
dibandingkan dengandata
padakedua
anaknya(child node
sebelahkiri
atausebelah kanan).
C.
Representasi PohonBiner
dengan AruayAtay
atau larik adalah struktur data static yangmenyimpan sekumpulan elemen yang bertipe sama
dimana setiap
elemendiakses
langsung melaluiindeksnya.
lnd,eksarray
harus
tipe
data
yangmenyatakan keterurutan
misalnya integer
ataukarakter 1+1.
Pohon biner
dapat direpresentasikan denganarray
dengan ketentuan sebagaiberikut
dengan iadalah indeks:
a.
Akar (root)
ditempatkan padaposisi
1
dalamarray
b.
Left
subtree
datayang
ada
padaposisi
ke-idiletakkan pada posisi
2i
c.
Right
subtree - nya diletakkan pada posisi2i
+1
Gambar l. Pohon Biner Lengkap [5]
Sesuai
dengan
Gambar
l,
Jumlah
data maksimumjikajumlah
level:4adalah
15. Dengandemikian pohon di atas akan disimpan dalam
array
seperti Gambar 2 di bawah
ini
:Gambar 2 Represeniasi pohon Biner den gan Array [51
lll.
Merooolocr
A.
Tempat PenelitianPenelitian dilakukan
pada
laboratoriumkomputer
(ResearchLaboratory).
Dengan
caramelakukan
pengolahan terhadap datayang
telahdikumpulkan.
Pada metodeini
penulis melakukanpenelitian dibantu
oleh
fasilitas
laboratoriumkomputer, dengan
menggunakan
personal komputer (PC).B.
Teknik PengumpulanData
Penelitian dilakukan dengan
menggunakan metode penelitian kepustakaan(Library
Research)dimana
pengumpulan
data
dilakukan
denganmembaca bukubuku
literatur, diktat kuliah,
buku-buku yang
berkaitan denganyang
berhubungandengan struktur data, desain dan analisis algoritma,
dan prosedur kerja algoritma heapsort, dan literatur
lain yang berasal dari
kliping
majalah, danartikel-artikel
dari
internet.IV. ANALISIS DAN PERANCANGAN SISTEM
Lapisan
pesan
merupakan
bagian
daripenggambaran
OOA. Hubungan
pesan
adalahmodel hubungan yang menggambarkan suatu cbjek
mengirimkan
pesan
kepada
objek
lain
untukmelakukan
pemrosesan. Keteranganlebih
laqjutdapat
dilihat
pada Gambar 3.-.t
B
('
D
E FC
H
I
J.l o
|urnal Rekursil
Vol.2 No. 1
Maret
2014,ISSN
2303-0755
Berdasarkan gambar 3, penomoran dari angka
I
sampai
l0
dapat dijelaskan sebagai berikut:1.
Setelah
user
memilih
bagian
PendukungPembelajaran yang diinginkan yang
terdiri
darisubjek Algoritma Heapsort dan Teori Heapsort,
maka akan
tampil
sebuah Static_Teks yangmenginformasikan
mengenai
algoritmaheapsort.
2.
Dariform terpilih baikform
algoritma heapsortmaupun
teori
heapsort akan muncul
buttonkeluar yang berarti mengakhiri program secara
keseluruhan.
3.
Pada
form
algoritma
heapsort,
user
akandiminta
memasukkan sembarangdata
berupaangka
dengan syarat-syarat
yang
telahditentukan.
4.
Button proses ketikadiklik
akan menampilkanform
baru y aituform
proses pengurutan.5.
Ketika
button proses
diklik, form
proses pengurutan akan menggambarkan representasidata input kedalam pohon biner heap.
6.
User diminta untuk mengklik button start untukmenerima
service berupa animasi
prosespengurutan bilangan.
7.
Menampilkan proses pengurutan bilangan baiksecara
menaik
(ascending) maupun
secaramenurun (descending).
8.
Button hasil
eksekusiyang
diklik
aser
akanmenampilakan
form
baru yang berisi
hasil eksekusi dari program pengurutan.V.
HASILDANPEMBAHASANBerdasarkan
proses analisis
dan
desainberorientasi
objek yang telah
dilakukansebelumnya,
didapat
7
(tujuh)
form
yangmembentuk
perangkat
lunak
pendukungpembelajaran
algoriitma
heapsort.
Berikut
ini
adalah
form-
form
yang terdapat pada perangkat lunak pendukung pembelajaran algoritma heapsort:A.
Form Algoritma HeapsortPad,a
form
algoritma heapsort
terdapat fasilitasuntuk
menginput data dengan syarat-syarat yangtelah
ditentukan sebelumnya. Fasilitasinput
datatersedia
pada button
load, yaitu
fasilitas memasukkan angka d,arifile
input. Button randomberfungsi untuk menghasilkan barisan data secara
acak.
Padaform
algoritma heapsort
ini,
userdiminta untuk memilih
hasil
pengurutan apakahberupa data pengurutan secara menaik (ascending)
atau
berupa
data
pengurutan secara
menurun(descending). User
juga
harusmemilih
sifat heapyaitu
apakah data pada nodeparent
lebih
besaratau samadengan data pada node anak sebelah
kiri
dan anak sebelah kanan, atau sifat heap yang node
parenftrya lebih
kecil
atau sama dengan data padaanak sebelah
kiri
dan anak sebelah kanan. Formalgoritma
heapsort digambarkan pada gambar 4sebagai berikut:
Gambar l form Algoritma Heapsort
Keterangan Gambar 4
Form
Algoritma Heapsort;7.
Button
close,
ketika
diklik
berfungsi
untuk|urnal
Rekursif,
Yol.Z
No.
1Maret201.4,ISSN 2303-0755
2.
Textbox, berfungsi untuk memasukkan barisanangka yang dipisahkan dengan
hurufkoma
satudengan yang lain.
3.
Button sate, ketlka
diklik
berfungsi
untukmenyimpan input ked,alam bentuk
file.
4.
BttttonLoad,ketika
diklik
berfungsi membukafile
input.5.
Button
random,ketika
diklik
berfungsi untukmenghasilkan barisan angka secara acak.
6.
Optionbutton,
ketika
diklik
berfungsi
untukmemilih
hasil
pengurutan
terurut
menaik (ascending)7.
Optionbufton,
ketika
diklik
berfungsi
untukmemilih
hasil
pengurutan
terurut
menurun (descending).8.
Optionbutton,
ketika
diklik
berfungsi
untuk memilih properti heap sehingga data pada nodeparent adalah data yang terbesar.
9.
Oplionbutton,
ketika
diklik
berfungsi
untik memilih properti heap sehingga data pada nodeparent adalah data yang
terkecil.
to10.Button proses pengurutan,
ketika
diklik
berfungsi untuk menampilkan
form
berikutnyay aitu fo rm proses pengurutan
lT.Button
home,
ketika
diklik
berfungsi menampilkanform
home.12.
Button
keluar.
ketika
diklik
tierfungsi menutnp fo rm Algoritma He ap s o r t.B.
Form Proses Pengurutanuntuk
*
t:l
untuk
Pada Gambar 5.3 diatas, terdapat button proses
pengurutan.
Ketika button
tersebutdiklik,
akanmuncul
form
proses pengurutan. Padaform
ini,
data yang
iinput
telah digambarkan dalam bentukpohon heap. Pada bagian
kiri form
terdapat tigabuah
tabel
yang masing-masing mendeskripsikanalgoritma heapsort, builheap, dan heapifu. Ketika
user
mengklik
button start, maka
prosespengurutan
akan dimulai
dengan menggunakanprosedur-prosedur
heapsort yang
telah
tersedia.Selain
itu,
terdapat fasilitas
combobox
yangdigunakan
untuk
menentukan kecepatan prosespengurutan. Fasilitas pendukung
lain
yangdigunakan
form
proses pengurutan
ini
adalahbutton start, button resume dan button reset. Form
proses pengurutan dijelaskan pada Gambar 5.
6 1 I 9
10 lt
Gambar 5 Form Proses Pengurutan
Keterangan Gambar 5 Form Proses Pengurutan:
1.
Label algoritma prosedur heapsort2.
Label algoritma prosedur buildheap3.
Label algoritma prosedur heaprfu4.
Label untuk menampilkan eksekusi algoritma.5.
Button start, ketika
diklik
berfungsi
untukmemulai proses pengurutan
6.
Button hasil
eksekusi,ketika
diklik
berfungsiuntuk menampllkan
form
hasi I eksekusi.7.
Button pause,
ketika
diklik
berfungsi
untukmenghentikan
proses
pengurutan
untuk sementara.8.
Button reset, ketika
diklik
berfungsi
untukmengulangi proses pengurutan dari awal.
9.
Button
resume,ketika
diklik
berfungsi untukmelanjutkan
proses
pengurutan
setelah dihentikan untuk sementara Qtause).,i,,
,,i
furnal
Rekursif, Vol.2 No. L
Maret
20l4,lSSN
2303-0755
70.Button home,
ketika
diklik
berfungsi
untuk menampilkanform
home.ll.Button
keluar,
ketika
diklik
berfungsi
untukkelluat fo r m Proses Pengurutan.
1 2. Daerah penggambaran pohon.
13.Vscrollbar,
untuk
menggulung
daerahpenggambaran pohon secara vertikal.
14. Textbox untuk menampilkan hasil pengurutan 75.
Hscrollbar,
untuk
menggulung
daerahpenggambaran pohon secara horizontal
16. Combobox, untuk memilih kecepatan proses
C.
Form Hasil EksekusiBerdasarkan
data
yatg
diinput dan
prosespengurutan menggunakan
algoritma
heapsort,maka didapat hasil eksekusi algoritma. pada
form
algoritma heap s ort, terdapat button hasil eksekusi.
Apabila button tersebut
diklik,
maka akan munculform
hasil
eksekusi.
Form hasil
eksekusi ditampilkan pada Gambar 6 berikut:Gambar 6 Form iasil
zksekuii
'l Padaformini,
terdapat fasilitassimpanfile
dancetakfile yang masingmasing tersedian pad.a button
cetak
dan button simpan
Keterangan Gambar 6FormHasil Eksekusi:
1. Button
cetak,
ketika
diklik
berfungsi
untukmencetak hasil eksekusi ke printer.
2.
Button
simpan,ketika
diklik
berfungsi untukmenyimpan hasil eksekusike
textfile
(*.tx|.
3.
Button
home,
ketlka
diklik
berfungsi
untukmenampilkan
form
home.4.
Button keluar,
ketika
diklik
berfungsi
untuk keharform
Hasi I Eksekusi.VLKesnapuraN
1)
Hasil analisis:
untuk merancang perangkatlunak
yang
mampu
menampilkansimulasi
dariprosedur
kerja
algoritma heapsort adalah denganpemahaman pengenai
prosedur
kerja
algoritmaheapsort.
Perangkat
lunak
ini
dibangun menggunakan bahasa pemrogramanVisual
Basic6.0.
2)
Pembuatan
perangkat
lunak:
dilakukanberdasarkan
hasil
analisis dan desain berorientasiobjek:
a.
Pengembangan
sistemnya
menggunakanmetode
pengembangan
Linear
SequentialModel
(Waterfall), yang
didalamnya terdapatmetode analisis dan desain berorientasi objek.
b.
Ada dua
puluh tujuh
kelas dan
objek
yang diperoleh dari hasil analisis3)
Strukturhirarki:
menggunakan strukturger
spec danwhole
part
4)
Perangkat
lunakyang
dihasilkan:
berupaprogram
pendukung pembelajaran
algoritmahepasort.
5)
Data
yqng
diinput:
divisualisasikan kedalam bentuk pohon heap.6)
Data
akan diurutkan.
sesuai dengannilai
yang diinput dengan tetap memperhatikan prosedur
heapsort
7)
Hasil el*ekusi program:
dapatterdokumentasi dan dapat dicetak.
RsrsnENsr
lll
Munir, Rinaldi. 2004. Algoritma dan pemrograman[urnal
Rekursif,
Yol.2
No.
L
Maret20L4,ISSN 2303-0755
l2l
Chalikdjerl Efendy dkk Heap Tree (atr Keg,rnaannyadalam Heap Sort. Makalah ST@.. liistitut Tekrologi
Bandung. [Online] tersedia: http://r,ldkalahStemik08 .pdf
[5
April 2008]Hanyanto, Bambang. 2003. Struktui tlata. tnformatika
Bandrmg.
Jauhari, Jaidan. 2004. Struktur Oatd: fOntinel tersedia:
http://Primitif List.pdf. [3 I Mei 2008]
Denny 2000. StrukM Data dan Algoritrne. Fakultas
Ilmu Komputer Universitas Indonesia. fiOdinel tersedia:
http ://pala. acad.cs.ui. ac. id/acadbfriydniddfi on//
t3l
{41