Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

STRUKTUR DATA
PERTEMUAN – 14

Disusun Oleh :
NAMA : ANNISA SALSABILA
NIM : 185410070
JURUSAN : TEKNIK INFORMATIKA

STMIK AKAKOM
YOGYAKARTA
2019
PEMBAHASAN
PRAKTIK 1
Outputnya :
Pembahasan :
Pada program diatas merupakan program untuk menggunakan hashing pada larik. Dimana
pengertian hashing adalah teknik penempatan sebuah record pada larik dengan nomor indeks yang
tidak standar menjadi standar [0], [1], [2], [3], .. dst. Hashing menempatkan sebuah record pada
larik pada nomor indeks khusus yang merupakan hasil konversi dengan menggunakan rumus
khusus. Pada program diatas terdapat 2 program dengan nama class yang berbeda, pada program
pertama yaitu mempunyai nama class formatBiodata, dima afungsi dari program ini untuk
deklarasi awal program yang nantinya akan dijalankan pada program kedua nya, pada program ini
terdapat tipe data integer dengan variable nim dan umur, tipe data String dengan variable nama,
alamat, tipe data character dengan nama variable jenis kelamin, dan tipe data float dengan variable
ipk. Pada program kedua mempunyai nama class hashing dimana fungsi program ini adalah untuk
menjalankan perintah dan mengeluarkan output. Pada program tersebut terdapat fungsi untuk
menghitung hasil hashing, mengentri data, berhenti sebentar, hingga fungsi untuk menampilkan
data.
Output pada program diatas yaitu, user diminta untuk menginputkan beberapa (seperti yang ada di
modul, yaitu 8 data) setelah user menginputkan semua data. Maka, user bisa menekan tombol
Enter untuk melihat hasil dari fungsi hashing. Terdapat record – record yang di tempatkan pada
larik dengan indeks sesuai dengan NIM yang dimiliki oleh tiap – tiap data yang diinputkan.
Faktanya untuk mendeklarasikan larik dengan 9 digit seperti di atas tentu memerlukan memori
yang sangat besar (9 digit = 1 milyar). Itupun larik dengan kapasitas tersebut tidak akan digunakan
seluruhnya karena sesungguhnya jumlah mahasiswa secara keseluruhan tidak banyak misalkan
hanya berjumlah 1000 orang. Untuk itu diperlukan sebuah rumus yang mampu mengonversi NIM
mahasiswa menjadi nomor larik antara 000 sampai dengan 999. Fungsi tersebut dinamakan fungsi
hash.
Pada praktikum ini teknik hashing yang dibahas adalah dengan menggunakan metode pembagian.
Pada metode pembagian, nilai hash diperoleh dengan cara kunci yang akan di cari nilai hashnya
(misalkan NIM) di ’modulus’ dengan sebuah bilangan prima yang paling dekat dengan kapasitas
array (N). Misalnya kapasitas array yang akan kita bangun sebesar 1000, maka bilangan prima
terdekat 1000 yang akan digunakan sebagai pembagi NIM adalah 997.
Setelah user menginputkan data, maka posisi data akan ditempatkan di larik mana akan
ditampilkan, dengan perhitungan yang sudah dijelaskan diatas. Seperti contoh data AgungBP
ditempatkan di larik ke 428. Setelah semua data diinputkan, dan user menekan tombol Enter maka
akan terdapat tampilan yang berisi data – data yang diiputkan tadi, jika terdapat data di dalam larik,
maka larik akan menampilkan data yang telah diinputkan, jika tidak ada data maka larik berstatus
kosong atau yang ditampilkan yaitu null. Seperti output diatas.

PRAKTIK 2
Outputnya :
Pembahasan :
Pada program diatas merupakan program untuk menggunakan hashing pada larik. Dimana
pengertian hashing adalah teknik penempatan sebuah record pada larik dengan nomor indeks yang
tidak standar menjadi standar [0], [1], [2], [3], .. dst. Hashing menempatkan sebuah record pada
larik pada nomor indeks khusus yang merupakan hasil konversi dengan menggunakan rumus
khusus. Pada program diatas terdapat 2 program dengan nama class yang berbeda, pada program
pertama yaitu mempunyai nama class formatBiodata, dima afungsi dari program ini untuk
deklarasi awal program yang nantinya akan dijalankan pada program kedua nya, pada program ini
terdapat tipe data integer dengan variable nim dan umur, tipe data String dengan variable nama,
alamat, tipe data character dengan nama variable jenis kelamin, dan tipe data float dengan variable
ipk. Pada program kedua mempunyai nama class hashing dimana fungsi program ini adalah untuk
menjalankan perintah dan mengeluarkan output. Pada program tersebut terdapat fungsi untuk
menghitung hasil hashing, mengentri data, berhenti sebentar, hingga fungsi untuk menampilkan
data.
Output pada program diatas yaitu, user diminta untuk menginputkan beberapa (seperti yang ada di
modul, yaitu 10 data) setelah user menginputkan semua data. Maka, user bisa menekan tombol
Enter untuk melihat hasil dari fungsi hashing. Terdapat record – record yang di tempatkan pada
larik dengan indeks sesuai dengan NIM yang dimiliki oleh tiap – tiap data yang diinputkan.
Faktanya untuk mendeklarasikan larik dengan 9 digit seperti di atas tentu memerlukan memori
yang sangat besar (9 digit = 1 milyar). Itupun larik dengan kapasitas tersebut tidak akan digunakan
seluruhnya karena sesungguhnya jumlah mahasiswa secara keseluruhan tidak banyak misalkan
hanya berjumlah 1000 orang. Untuk itu diperlukan sebuah rumus yang mampu mengonversi NIM
mahasiswa menjadi nomor larik antara 000 sampai dengan 999. Fungsi tersebut dinamakan fungsi
hash.
Pada praktikum ini teknik hashing yang dibahas adalah dengan menggunakan metode pembagian.
Pada metode pembagian, nilai hash diperoleh dengan cara kunci yang akan di cari nilai hashnya
(misalkan NIM) di ’modulus’ dengan sebuah bilangan prima yang paling dekat dengan kapasitas
array (N). Misalnya kapasitas array yang akan kita bangun sebesar 1000, maka bilangan prima
terdekat 1000 yang akan digunakan sebagai pembagi NIM adalah 997.
Setelah user menginputkan data, maka posisi data akan ditempatkan di larik mana akan
ditampilkan, dengan perhitungan yang sudah dijelaskan diatas. Seperti contoh data AgungBP
ditempatkan di larik ke 428. Setelah semua data diinputkan, dan user menekan tombol Enter maka
akan terdapat tampilan yang berisi data – data yang diiputkan tadi, jika terdapat data di dalam larik,
maka larik akan menampilkan data yang telah diinputkan, jika tidak ada data maka larik berstatus
kosong atau yang ditampilkan yaitu null. Seperti output diatas.
Beda praktik ini dengan praktik sebelumnya yaitu pada praktik ini terjadi collision atau tabrakan
data. Dimana pengertian dari collision itu sendiri merupakan kondisi ketika dua atau lebih objek
yang bertabrakan. Seperti pada data diatas yaitu terdapat 2 data tambaham yaitu data Fifin dan
Hermon setelah data diinputkan maka kedua data tersebut sama – sama ditempatkan di larik ke
774 sama denga larik dari data Dion. Karena data Hermon yang terakhir diinputkan maka data
Dion dan Fifin menjadi hilang dan diganti dengan data Hermon. Sehingga outputnya seperti
diatas.
PRAKTIK 3

Outputnya :
Pembahasan :
Pada program diatas merupakan program untuk menggunakan hashing pada larik. Dimana
pengertian hashing adalah teknik penempatan sebuah record pada larik dengan nomor indeks yang
tidak standar menjadi standar [0], [1], [2], [3], .. dst. Hashing menempatkan sebuah record pada
larik pada nomor indeks khusus yang merupakan hasil konversi dengan menggunakan rumus
khusus. Pada program diatas terdapat 2 program dengan nama class yang berbeda, pada program
pertama yaitu mempunyai nama class formatBiodata, dima afungsi dari program ini untuk
deklarasi awal program yang nantinya akan dijalankan pada program kedua nya, pada program ini
terdapat tipe data integer dengan variable nim dan umur, tipe data String dengan variable nama,
alamat, tipe data character dengan nama variable jenis kelamin, dan tipe data float dengan variable
ipk. Pada program kedua mempunyai nama class hashing dimana fungsi program ini adalah untuk
menjalankan perintah dan mengeluarkan output. Pada program tersebut terdapat fungsi untuk
menghitung hasil hashing, mengentri data, berhenti sebentar, hingga fungsi untuk menampilkan
data.
Output pada program diatas yaitu, user diminta untuk menginputkan beberapa (seperti yang ada di
modul, yaitu 10 data) setelah user menginputkan semua data. Maka, user bisa menekan tombol
Enter untuk melihat hasil dari fungsi hashing. Terdapat record – record yang di tempatkan pada
larik dengan indeks sesuai dengan NIM yang dimiliki oleh tiap – tiap data yang diinputkan.
Faktanya untuk mendeklarasikan larik dengan 9 digit seperti di atas tentu memerlukan memori
yang sangat besar (9 digit = 1 milyar). Itupun larik dengan kapasitas tersebut tidak akan digunakan
seluruhnya karena sesungguhnya jumlah mahasiswa secara keseluruhan tidak banyak misalkan
hanya berjumlah 1000 orang. Untuk itu diperlukan sebuah rumus yang mampu mengonversi NIM
mahasiswa menjadi nomor larik antara 000 sampai dengan 999. Fungsi tersebut dinamakan fungsi
hash.
Pada praktikum ini teknik hashing yang dibahas adalah dengan menggunakan metode pembagian.
Pada metode pembagian, nilai hash diperoleh dengan cara kunci yang akan di cari nilai hashnya
(misalkan NIM) di ’modulus’ dengan sebuah bilangan prima yang paling dekat dengan kapasitas
array (N). Misalnya kapasitas array yang akan kita bangun sebesar 1000, maka bilangan prima
terdekat 1000 yang akan digunakan sebagai pembagi NIM adalah 997.
Setelah user menginputkan data, maka posisi data akan ditempatkan di larik mana akan
ditampilkan, dengan perhitungan yang sudah dijelaskan diatas. Seperti contoh data AgungBP
ditempatkan di larik ke 428. Setelah semua data diinputkan, dan user menekan tombol Enter maka
akan terdapat tampilan yang berisi data – data yang diiputkan tadi, jika terdapat data di dalam larik,
maka larik akan menampilkan data yang telah diinputkan, jika tidak ada data maka larik berstatus
kosong atau yang ditampilkan yaitu null. Seperti output diatas.
Perbedaan praktik ini dengan praktik sebelumnya yaitu jika pada praktik sebelumnya data
mengalami collision atau tabrakan data, maka di praktik ini merupakan solusi dari collision atau
tabrakan data, sehingga data tersebut tidak jadi bertabrakan. Karena data yang diinputkan pun
terdapat 10 data. Jadi di tambahkan perintah tambahan yang terdapat pada baris ke 59 sampai
dengan baris ke 63. Itu merupakan perintah untuk mengatasi collision atau tabrakan data. Setelah
program dijalankan maka outputnya yaitu pada data Dion akan ditempatkan di larik ke 774, data
Fifin diletakkan di larik ke 775, dan data Hermon di letakkan di larik ke 776. Sehingga tidak terjadi
tabrakan antar data seperti yang terjadi di praktik sebelumnya. Outputnya seperti diatas.

KESIMPULAN
Pada praktik ini mahasiswa melakukan penempatan suatu data ke dalam larik menggunakan teknik
hashing. Dimana Hashing adalah teknik penempatan sebuah record pada larik dengan nomor
indeks yang tidak standar menjadi standar [0], [1], [2], [3], .. dst. Hashing menempatkan sebuah
record pada larik pada nomor indeks khusus yang merupakan hasil konversi dengan menggunakan
rumus khusus.

Ada beberapa metode dalam melakukan hashing yaitu ;


(1) metode pembagian,
(2) metode midsquare, dan
(3) metode penjumlahan digit.

Anda mungkin juga menyukai