Anda di halaman 1dari 10

METODE STRUKTUR DATA UNTUK MENYELESAIKAN PERMASALAHA

PERNGOLAHAN DATA

Ardian Putra Pratama, Renaldi, Selli Oktaviani, Indra Gunawan M.kom


Program Study Teknik Informatika 2021 , STIKOM TUNAS BANGSA Pematangsiantar Jln. Kartini,
Proklamasi, Kec. Siantar Barat. Kota Pematangsiantar, Sumatera Utara
Juni2021
Abstrak:
Untuk memecahkan masalah pengurutan dalam membangun suatu program aplikasi, dibutuhkan
algoritma pengurutan. Metode-metode pengurutan data pun ada berbagai jenis. Mulai dari binary sort,
insertion sort, merge sort, Heap Sort dll. Heap Sort, algoritma pengurutan, merupakan salah satu metode
pengurutan yang sering digunakan. Dalam penelitian ini penulis mengembangkan sebuah program
aplikasi simulasi pengurutan data menggunakan algoritma Heap Sort. Program aplikasi kompresi yang
dibuat dapat digunakan pada sistem operasi Windows 7 dan XP, dengan menggunakan bahasa
pemrograman Microsoft Visual Basic 6.0.
Kata kunci: Program aplikasi, pengurutan data, Algoritma Heap Sort, Microsoft Visual Basic 6.0

Abstract: To solve the problem of sorting in I. PENDAHULUAN


building an application program, it needs sorting
Untuk memecahkan masalah pengurutan
algorithms. Methods of data sorting also there
are various kinds. Starting from the binary sort, dalam membangun suatu program aplikasi,
insertion sort, merge sort, Heap Sort etc. Heap
dibutuhkan algoritma pengurutan. Di dalam bidang
Sort, sorting algorithms, is one of the sorting
method that is often used. Heap Sort algorithm, Teknik Informatika terdapat banyak sekali jenis-
including sorting algorithm that is difficult to
jenis algoritma pengurutan yang dapat digunakan
understand because a lot of steps to sort the data.
Development of simulation software Heap Sort, is untuk memecahkan masalah pengurutan. Dalam
expected to help in the understanding of this
membangun sebuah aplikasi, orang-orang sering
algorithm. In this study, the authors developed a
simulation application program using the data kali dihadapi pada masalah pengurutan data pada
sorting algorithms sort heap. Compression
aplikasi tersebut. Contoh sederhana ialah pada
application program created can be used on the
operating system Windows 7 and XP, using aplikasi yang berhubungan dengan data yang dapat
Microsoft Visual Basic 6.0. The ultimate purpose
diurutkan, seperti Nomor Pokok Mahasiswa
of implementing this software is expected that the
reader and system developers in the future be (NPM), nilai, Nomor ID sebuah barang inventaris,
able to develop and improve the shortcomings
dan lain sebagainya
and limitations contained in this software.
Keywords : Program applications, sorting, Heap Pengurutan data (data sorting) merupakan
Sort algorithm, Microsoft Visual Basic 6.0
bagian dari pengolahan data informasi. Dari data-
Metode-metode pengurutan data pun terdiri
atas berbagai jenis, yakni binary sort, insertion A. Struktur Data
sort, merge sort, Heap Sort dll. Penggunaan Struktur berarti susunan / jenjang, dan data
metode yang akan dipakai tergantung dari jenis berarti sesuatu simbol / huruf / lambang angka
maupun kuantitas data yang diolah. Heap Sort, yang menyatakan sesuatu. Struktur data berarti
algoritma pengurutan, merupakan salah satu susunan dari simbol / huruf / lambang angka untuk
metode pengurutan yang sering digunakan. menyatakan sesuatu hal [2]. Sebagai contoh,
Struktur data heap adalah sebuah objek array struktur program Pascal dapat didefenisikan seperti
yang dapat divisualisasikan dengan sebuah berikut,
complete binary tree. Hubungan antara elemen (i) Deklarasi Nama Fungsi / Prosedur.
dari array dan node pada pohon merupakan (ii) Deklarasi Tipe Data.
hubungan korespondensi satu satu. Pohon diisi (iii) Deklarasi Konstanta (untuk variabel
secara penuh pada semua level, kecuali bernilai nilai statis).
kemungkinan terkecil, di mana di sisi dari kiri (iv) Deklarasi Variabel.
sampai ke sebuah titik. Semua node dari heap juga (v) Deklarasi Label.
memenuhi relasi bahwa nilai kunci pada setiap (vi) Badan Program (Begin … End.)
node minimal sama besar dengan nilai dari node
Gabungan dari algoritma dan struktur data
anaknya [1].
akan membentuk suatu program. Adapun manfaat
Struktur data dari algoritma Heap Sort adalah
dari struktur data adalah sebagai berikut,
sebuah pohon biner sempurna yang memenuhi
a. Mengefisiensikan program.
properti heap. Node akar (root node) memiliki data
Program yang dibuat dengan menerapkan
terbesar atau terkecil yang terdapat pada pohon.
konsep–konsep yang berlaku pada struktur
Demikian juga pada subtree-nya, dimana node
data akan lebih efisien dibandingkan dengan
induk (parent) memiliki data yang paling besar
program yang dibuat dengan mengabaikan
atau paling kecil dibandingkan dengan data pada
konsep struktur data.
kedua anaknya (child node sebelah kiri atau
b. Modifikasi
sebelah kanan). Algoritma Heap Sort termasuk
Sesuatu program harus dapat dimodifikasi
algoritma sorting yang susah dipahami karena
apabila diperlukan, hal ini dapat dilakukan jika
banyak langkah-langkah dalam mengurutkan data.
fasilitas yang diperlukan dibuat (disertakan)
Berdasarkan uraian di atas, maka diambil judul
walaupun pada tahap awal belum dipakai.
“Aplikasi Simulasi Pengurutan Data menggunakan
c. Memilih metode yang tepat
Algoritma Heap Sort”. Software yang dirancang
Misalkan suatu plaza pada hari – hari
akan mampu untuk menjelaskan prosedur kerja
tertentu mengalami antrian yang panjang pada
dari algoritma Heap Sort.
kasir, hal ini dapat diatasi dengan metode,
 Pemasukan data tidak melalui keyboard lagi,
melainkan melalui barcode.
 Membuat pemberitahuan pada kasir – kasir
.
B. Pohon Biner Secara sederhana, sebuah tree bisa
Pohon (tree) merupakan struktur data didefenisikan sebagai kumpulan dari elemen –
nonlinier yang banyak digunakan dalam aplikasi elemen yang disebut dengan node / vertex (simpul)
sehari-hari. Contoh aplikasi pohon yang dapat kita dimana salah satu node disebut dengan root (akar),
lihat sehari-hari adalah pengelolaan file dalam dan sisa node lain terpecah menjadi himpunan
direktori penyimpanan. Pohon merupakan struktur yang saling tidak berhubungan satu sama lain dan
data yang memiliki suatu struktur hirarki pada disebut dengan subtree (pohon bagian). Jika dilihat
sekumpulan elemen, dan memiliki hubungan satu pada setiap subtree maka subtree juga mempunyai
ke banyak (one to may relationship) seperti yang root dari subtree-nya masing – masing.
kita lihat dalam struktur organisasi sebuah Dengan melihat istilah dasar di atas, maka
perusahaan atau daftar isi sebuah buku. sebuah tree secara rekursif dapat didefenisikan
Dalam struktur organisasi, kita dapat melihat sebagai berikut :
bahwa ada level atas biasanya hanya ada satu 1. Sebuah node tunggal adalah sebuah tree.
pimpinan tertinggi. Pada level berikutnya diisi oleh 2. Jika terdapat sebuah node N dan beberapa
beberapa orang dengan jabatan yang berbeda tetapi subtree N1, N2, N3, …, Nk maka dari node
dalam tingkatan yang sama. Selanjutnya dapat N dan subtree yang ada dapat dibentuk
dipecah lagi ke level berikutnya sampai struktur sebuah tree yang mempunyai root pada
dapat memenuhi fungsi dan tujuan organisasi. node N.
Biasanya satu atasan memiliki beberapa bawahan
N
yang berada dalam ruang lingkup wewenang dan
Sebuah node tunggal, N
tugas atasan. Begitu juga dalam daftar isi buku,
dimana satu buku terdiri dari beberapa bab dan N1 N2 N3 Nk

setiap terdiri dari beberapa sub bab, satu sub bab Subtree N1, N2, N3, … Nk

terdiri dari beberapa sub sub bab dan seterusnya.


N
Dengan demikian hirarki dapat kita anggap sebagai
“terdiri dari” atau “bawahan” atau “diawasi” dari
N1 N2 N3 Nk
atas ke bawah. Salah satu keuntungan pohon
Tree baru yang terbentuk dari node N
dibandingkan dengan struktur data linier adalah dan subtree N1, N2, N3, …, Nk

waktu cari sebuah node maksimum (dapat) lebih


Gambar 1. Contoh pembentukan Tree
kecil dari n jika jumlah data = n.
Binary Tree (pohon biner) didefenisikan
Sebuah tree dapat mempunyai hanya sebuah
sebagai suatu kumpulan node yang mungkin
simpul tanpa sebuah sisi pun. Dengan kata lain,
kosong atau mempunyai root dan paling banyak
jika G = (V, E) adalah tree, maka V tidak boleh
dua subtree (anak) yang saling terpisah yang
berupa himpunan kosong, namun E boleh kosong.
disebut dengan left subtree (pohon bagian kiri /
Tree juga seringkali didefinisikan sebagai graf tak-
anak kiri / cabang kiri) dan right subtree (pohon
berarah dengan sifat bahwa hanya terdapat sebuah
bagian kanan / anak kanan / cabang kanan).
lintasan unik antara setiap pasang simpul. Selain
Subtree bisa disebut juga dengan istilah branch
itu, di dalam tree jumlah sisinya adalah jumlah
(cabang).
simpul dikurangi satu.
if l ≤ heap-size [A] and A[l] >
Binary tree merupakan tipe yang sangat
A[i]
penting dari struktur data tree, dan banyak
4. then largest ← l
dijumpai dalam berbagai terapan. Lebih lanjut,
5. else largest ← i
dalam binary tree akan dibedakan antara left
6. if r ≤ heap-size [A] and A[i] >
subtree dengan right subtree, sementara dalam
A[largest]
struktur tree secara umum urutan ini tidak penting.
7. then largest ← r
Jadi binary tree merupakan bentuk tree yang
8. if largest ≠ i
beraturan. Karakteristik lain adalah bahwa dalam
9. then exchange A[i] ↔ A[largest]
binary tree dimungkinkan tidak mempunyai node.
10. Heapify (A, largest)
Gambar 2 berikut ini menunjukkan contoh suatu
binary tree. 2. Build-Heap.
Apabila diberi input sebuah pohon biner atau
3.
sekumpulan data array, maka untuk menjadikan
pohon biner ini pohon heap, kita harus
memastikan semua data pada pohon biner
memenuhi properti heap. Berikut adalah algoritma
Build-Heap:

BUILD-HEAP (A)

Gambar 2. Contoh binary tree 1. heap-size (A) ← length [A]


2. For i ← floor(length[A]/2) down
Prosedur dasar yang terdapat dalam heap tree
to 1 do
adalah:
3. Heapify (A, i)
1. Agoritma Heapify.
Algoritma Heapify adalah membangun sebuah 3. Heap Sort
heap dari bawah ke atas, secara berturut – turut Algoritma heapsort adalah algoritma
berubah ke bawah untuk membangun heap. pengurutan yang memiliki kompleksitas waktu
Permasalahan pertama yang harus kita terbaik. Selain itu juga, heapsort menerapkan
pertimbangkan dalam melakukan Heapify adalah teknik yang unik di dalam memecahkan masalah
dari bagian mana kita harus memulai. Bila kita pengurutan, yaitu dengan menggunakan heaptree
mencoba operasi Heapify dari akar maka akan [4] Prosedur Heap Sort mengurutkan sekumpulan
terjadi operasi runut –naik seperti algoritma bouble data pada sebuah array atau pohon heap. Cara
sort yang akan mnyebabkan kompleksitas waktu kerjanya adalah, Heap Sort akan mengambil data
[3]. Berikut adalah algoritma prosedur Heapify: pada node akar (index array = 1) dan
menggantinya (exchange) dengan data pada node
HEAPIFY (A, i)
paling akhir (index array = index paling
1. l ← left [i] maksimum dari pohon heap). Setelah itu, node
2. r ← right [i] terakhir dihapus dan Heap Sort memanggil
prosedur heapify dengan tujuan agar setelah proses Algoritma Heap-Sort(A) adalah sebagai
penggantian data, pohon masih memenuhi properti berikut:
heap. Data-data yang dikeluarkan merupakan data 1. Panggil prosedur Build-Heap(A).
yang terurut, baik menaik (ascending) maupun 2. Set Urut = “”.
menurun (descending). 3. Untuk j = ukuran array A sampai 2 dengan
pengurangan nilai 1 setiap looping, lakukan
II. METODOLOGI PENELITIAN
algoritma di bawah ini.
Jenis penelitian yang digunakan dalam
a. Jika (TipeHeap = “S” dan
penelitian ini adalah penelitian terapan. Penelitian
TipeUrutan = “A”) Atau (TipeHeap =
terapan adalah penyelidikan yang hati-hati,
“L” dan TipeUrutan = “D”) maka:
sistematik dan terus menerus terhadap suatu
i. Jika Urut <> “” maka set
masalah dengan tujuan untuk digunakan dengan
Urut = Urut & “”.
segera untuk keperluan tertentu [6].
ii. Set Urut = Urut & A(1).

Teknik pengumpulan data pada penelitian b. Jika tidak, maka set Urut = A(1) &

terapan ini menggunakan teknik studi pustaka IIf(Urut <> "", ",", "") & Urut.

(Library research). yaitu dengan mempelajari c. Tukarkan data pada A(1) dan A(j).

konsep-konsep dasar mengenai heapsort yang d. Kurangi ukuran array A dengan 1.

terdapat pada beberapa sumber literatur. Sumber e. Jika TipeHeap = “S”, maka panggil

literatur dapat berupa buku teks, paper, website, prosedur HeapifyS(A, 1).

blog, laporan penelitian, karangan-karangan f. Jika TipeHeap = “L”, maka panggil

ilmiah, tesis dan disertasi dan sumber-sumber prosedur HeapifyL(A, 1).

tertulis baik tercetak maupun elektronik yang 4. Jika (TipeHeap = “S” dan TipeUrutan = “A”)

berhubungan dengan penelitian. Atau (TipeHeap = “L” dan TipeUrutan = “D”)


maka:
III. ANALISA DAN PERANCANGAN a. Jika Urut <> “” maka set Urut = Urut
Algoritma ini berfungsi untuk mengurutkan & “”.
sekumpulan data pada list array A. Cara kerjanya b. Set Urut = Urut & A(1).
adalah, Heap Sort akan mengambil data pada node 5. Jika tidak, maka set Urut = A(1) & IIf(Urut <>
akar (index array = 1) dan menggantinya "", ",", "") & Urut.
(exchange) dengan data pada node paling akhir
(index array = index paling maksimum dari pohon Untuk menggambarkan hubungan sistem
heap). Setelah itu, node terakhir dihapus dan Heap dengan lingkungan luarnya diperlukan diagram
Sort memanggil prosedur heapify untuk node ke-1 konteks. Diagram konteks dari sistem yang akan
dengan tujuan supaya setelah proses penggantian dirancang adalah seperti Gambar 3 di bawah ini.
data, pohon masih memenuhi properti heap. Data-
data yang dikeluarkan merupakan data yang
terurut, baik menaik (ascending) maupun menurun
(descending).
Deret angka, hasil pengurut an, propert i heap 2. Cara kerja perangkat lunak.
3. Proses penggambaran pohon biner.
4. Proses pengurutan Heap Sort, mencakup 3
USER 0 (tiga) buah prosedur, yaitu:
APLIKASI SIMULASI
HEAPSORT a. Prosedur Heapify.
b. Prosedur Build-Heap.
c. Prosedur HeapSort.
Proses pengurut an dat a, hasil pengurut an dat a
5. Perangkat lunak dimulai dari Form Main.
Pada form ini, user dapat meng-input barisan
Gambar 3. Diagram Konteks
angka yang akan diurutkan atau menghasilkan
Diagram konteks menunjukan bahwa sistem barisan angka secara acak. Setelah itu, tekan
terbentuk dari satu sistem besar yaitu aplikasi tombol ’Langkah-Langkah Pengurutan’ akan
simulasi heapsort. Diagram konteks juga membuka Form Pengurutan. Pada form ini,
menggambarkan tahap utama system perangkat lunak akan menjelaskan dan
Diagram konteks pada Gambar 3 dapat menampilkan proses kerja algoritma Heap
diperinci menjadi DFD level-1. Proses-proses pada Sort dalam melakukan pengurutan. Proses
DFD level-1 merupakan dekomposisi dari proses pengurutan dapat dihentikan sementara
pada diagram konteks. Proses-proses tersebut (pause) dan dilanjutkan kembali (resume).
dapat dilihat pada Gambar 4. A. Form Main

Der et angka,
1.0
1 2 3
USER hasil pengurut an,
pr operti heap Pengurutan data

4
5
Proses pengurutan dat a 2.0
Tampilkan
6 8
9
7 10
Hasil cetak

3.0
Cetak Proses Pengurut an Dat a Cetak Proses
pengurutan

Gambar 5. Form Main

lunak.

Gambar 4. DFD Level 1

IV. HASIL DAN PEMBAHASAN

Pembuatan perangkat lunak bantu pemahaman


Heap Sort ini mencakup beberapa bagian penting,
yaitu:
1. Cara memasukkan input ke dalam perangkat
1. Open (1)
Tombol ini berfungsi untuk meload file
deret angka yang berekstensi (.hps).
2. Button “Simpan” (2)
Tombol ini berfungsi untuk menyimpan
deret angka yang diinputkan pada sistem.
Deret angka tersebut disimpan dalam
ekstensi (.hps).
3. Button “Acak” (3) Gambar 6. Tampilan Form Main dengan
Tombol ini berfungsi untuk mengacak deret Data = 4,12,5,7,54,34,32,8,9
angka yang diinputkan.
C. Form Tampilan Pengurutan Data
4. Input Deret Angka (4)
Menu ini untuk tempat menginputkan data
deret angka yang akan diurutkan, untuk
1
menginput deret angka yang akan diuruttkan
ada 2 cara yaitu dengan menginputkan file 2

berekstensi (.hps) yang telah disimpan


sebelumnya atau menginputkan langsung
pada menu ini.
5. Batasan input (5)
3
Batasan input adalah syarat-syarat dalam
menginputkan data deret angka agar dapat
diproses oleh sistem.
6. Menu Hasil Pengurutan (6) 4 5 6 7
Gambar 7. Tampilan Form Pengurutan
Pada menu hasil pengurutan teerdapat 2
dengan Data
pilihan yaitu descending (terurut menurun) 1. Gambar Pohon Heapsort (1)
dan ascending (terurut menaik), pilihan ini Gambar pohon heapsort yang terbentuk
untuk menentukan hasil penguruan deret setelah diinputkan data deret angka ke
angka yang diinputkan kedalam sistem. dalam sistem.
2. Eksekusi Algoritma (2)
B. Pengujian Program
Proses algoritma yang berjalan secara
Sebagai contoh pengujian program, misalkan
terstruktur akan ditampilkan pada menu
input barisan data yang akan diurutkan =
ini.
4,12,5,7,54,34,32,8,9. Hasil pengurutan yang
3. Menu “Hasil Pengurutan” (3)
diinginkan adalah terurut menaik (ascending)
Hasil Pengurutan akan ditampilkan pada
dan properti heap yang dipilih adalah properti
menu ini
dengan data pada node parent >= data pada
4. Button “ Start” (4)
anak sebelah kiri atau anak sebelah kanan.
Tombol ini berfungsi untuk memulai
proses pengurutan data.
5. Button “pause” (5)
Tombol ini berfungsi untuk
memberhentikan sementara proses
pengurutan data.
6. Button “resume” (6)
Tombol ini berfungsi untuk melanjutkan
proses pengurutan yang di pause.
7. Button “reset” (7)
Tombol ini berfungsi untuk mengulang
kembali proses yang sedang berjalan.
Tampilan Form Pengurutan setelah proses
pengurutan dapat dilihat pada gambar 8 di bawah
ini.
Gambar 10. Form
About

Dari pengujian di atas disimpulkan bahwa


aplikasi simulasi pengurutan data menggunakan
algoritma Heap Sort dapat diimplementasikan
menggunakan vb 6.0, sehingga aplikasi ini nanti
diharapkan dapat membantu dalam proses belajar
mengajar mengenai algoritma heapsort.

Gambar 8. Tampilan Form Pengurutan VI. KESIMPULAN

Setelah Proses Pengurutan Berdasarkan analisi, perancangan dan

Dengan Data pembahasan terhadap algoritma heapsort ini, maka


dapat diambil kesimpulan berupa:
1. Perangkat lunak menjelaskan algoritma
D. Form Hasil Eksekusi
pengurutan Heap Sort dan gambar keadaan
pohon biner secara bertahap serta
menampilkan Form Teori, sehingga dapat
membantu pemahaman mengenai pengurutan
dengan metode Heap Sort.
2. Penggunaan aplikasi ini dapat mempermudah
dalam proses belajar mengajar.

DAFTAR PUSTAKA
[1] Bambang Hariyanto, Struktur Data : Memuat
Gambar 9. Tampilan Hasil Eksekusi Dasar Pengembangan Orientasi
Objek, Edisi Kedua,
Informatika Bandung, April 2003
[2] Robert L.Kruse, Data Structures & Program
E. Form About
Design,
Form ini adalah form about yaitu form yang Second Edition, 1991
menampilkan pembuat aplikasi Tampilan form [3] Firdi Mulia, Penerapan Pohon Dalam Heap
Sort, ITB Bandung
About pada perangkat lunak seperti terlihat pada
[4] Chalikdjen, Efendy dkk Heap Tree dan
gambar 10 berikut. Kegunaannya dalam Heap Sort. Makalah
STMIK. Institut Teknologi Bandung. [Online]
tersedia:
[5] http://MakalahStemik08 .pdf. [15 April 2008]
[6] Umar, Husein. 2005. Metode Penelitian Untuk
Skripsi dan Tesis Bisnis. Jakarta : PT. Raja
Grafindo Persada

Anda mungkin juga menyukai