• Tidak ada hasil yang ditemukan

FAKULTAS REKAYASA INDUSTRI Struktur Data

N/A
N/A
Protected

Academic year: 2017

Membagikan "FAKULTAS REKAYASA INDUSTRI Struktur Data"

Copied!
10
0
0

Teks penuh

(1)

2012-2013

Struktur Data dan

Pemrograman Lanjut

Praktikum Modul 2 : Stack & Queue

(2)

Standar kompetensi:

1. Mahasiswa memahami konsep Stack 2. Mahasiswa memahami konsep Queue

3. Mahasiswa dapat membuat dan menggunakan stack dan queue dalam kasus yang sesuai. 4. Mahasiswa dapat melakukan operasi create, insert, dan delete data di dalam stack dan queue.

Stack

Stack merupakan suatu struktur data yang memiliki sifat Last In First Out (LIFO). Seperti kata

stack yang berarti tumpukan, stack dapat dianalogikan seperti suatu tumpukan. Tumpukan tersusun dari bawah ke atas, dengan setiap elemen yang baru selalu diletakkan di bagian paling atas tumpukan. Analogi dari stack dapat dilihat di gambar berikut:

Gambar 1 : Stack sebagai suatu tumpukan elemen

Untuk mengimplementasikan struktur data stack ke dalam pemrograman, kita dapat menggunakan struktur data yang pernah kita ketahui, seperti array dan linked list. Karena kita mengetahui bahwa array memiliki kekurangan yang cukup signifikan jika dibandingkan dengan linked list, maka kita akan mengimplementasikan stack menggunakan struktur data linked list.

(3)

Operasi-operasi yang dapat dilakukan pada stack terbatas pada operasi pemeriksaan apakah stack kosong, insert, dan delete. Proses penampilan data atau pengaksesan data dilakukan di luar struktur data stack.

1. Pemeriksaan status stack, kosong atau berisi

Untuk memeriksa apakah stack memiliki elemen atau tidak, cukup dengan memeriksa apakah penunjuk ke elemen teratas (top) menunjuk ke null atau tidak. Jika null, maka kembalikan status bahwa stack kosong, jika tidak maka kembalikan status bahwa stack tidak kosong.

2. Push (insert)

Pada stack, proses insert elemen baru dinamakan push. Proses push selalu meletakkan elemen baru di atas elemen yang paling atas (top).

3. Pop (delete)

Pada stack, proses delete elemen dinamakan pop. Proses pop selalu menghapus elemen yang terletak paling atas (top). Elemen yang dihapus oleh proses pop dikembalikan (return). Agar dapat digunakan oleh baris yang memanggil proses pop.

Contoh dari implementasi fungsi-fungsi tersebut dapat dilihat dalam contoh program di bawah ini. Catatan: program terdiri dari file Data.java,Stack.java, dan StackRunner.java.

---

Class berikut merupakan class untuk menyimpan satu elemen data dalam stack, class ini juga dapat digunakan dalam queue.

Class berikut merupakan class untuk mengimplementasikan struktur data stack. Class ini menggunakan class Data sebagai elemen dari dari stack.

(4)

top = top.next;

(5)

Queue

Queue merupakan struktur data yang memiliki sifat First In First Out (FIFO). Sesuai dengan kata

queue yang berarti antrian, maka queue juga dapat dianalogikan dengan suatu antrian, dimana setiap elemen yang masuk lebih awal, juga akan keluar lebih awal. Pada antrian, elemen yang baru akan diletakkan di bagian paling belakan dari antrian, dan elemen yang keluar adalah elemen yang paling depan. Antrian dapat dianalogikan sebagai berikut:

Gambar 3 : Queue sebagai antrian elemen

Seperti halnya pada stack, untuk mengimplementasikan struktur data queue ke dalam pemrograman, kita dapat menggunakan struktur data yang pernah kita ketahui, seperti array dan linked list. Karena kita mengetahui bahwa array memiliki kekurangan yang cukup signifikan jika dibandingkan dengan linked list, maka kita akan mengimplementasikan queue menggunakan struktur data linked list.

Gambar 4 : Implementasi queue menggunanan linked list

Seperti terlihat di gambar 4, queue dapat dimodelkan dengan menggunakan linked list. Perbedaan yang cukup signifikan adalah, pada implementasi queue menggunakan linked list, kita juga perlu mencatat elemen yang paling belakang. Hal ini dilakukan agar setiap kali ada proses penambahan data kita tidak perlu menelusuri list dari awal, sehingga proses insert menjadi efisien.

Proses-proses yang terdapat di dalam queue secara umum sama dengan stack. Proses-proses tersebut adalah:

1. Pemeriksaan status stack, kosong atau berisi

Untuk memeriksa apakah queue memiliki elemen atau tidak, cukup dengan memeriksa apakah penunjuk ke elemen terdepan (front) menunjuk ke null atau tidak. Jika null, maka kembalikan status bahwa stack kosong, jika tidak maka kembalikan status bahwa stack tidak kosong.

2. Insert

(6)

3. Remove

Pada queue, proses remove selalu menghapus elemen yang terletak paling depan (front). Elemen yang di keluarkan oleh proses remove akan dikembalikan (return) agar dapat digunakan oleh baris yang memanggil proses remove.

Contoh dari implementasi fungsi-fungsi tersebut dapat dilihat dalam contoh program di bawah ini. Catatan: program terdiri dari file Data.java,Queue.java, dan QueueRunner.java. Jika pengerjaan queue dilakukan dalam package yang sama dengan stack, maka tidak perlu lagi membuat file

Data.java.

---

Class berikut merupakan class untuk menyimpan satu elemen data dalam queue, class ini juga dapat digunakan dalam stack.

Class berikut merupakan class untuk mengimplementasikan struktur data queue. Class ini menggunakan class Data sebagai elemen dari dari queue.

(7)

Class berikut merupakan program utama yang menggunakan struktur data queue yang telah dibuat untuk menyimpan dan menampilkan data.

 QueueRunner.java

Pada prakteknya, data seringkali tidak diinputkan satu-persatu secara manual. Data hampir selalu disimpan dalam suatu file. Salah satu metode penyimpanan paling awal adalah penyimpanan data menggunakan file text.

(8)

1. Nim : 1 Nama : Rudi C 2. Nim : 2

Nama : Farah Q

Maka isi dari file CSV yang menyimpan data mahasiswa tersebut adalah 1,”Rudi C”

2,“Farah Q”

Untuk melakukan pembacaan, maka data perlu dibaca baris-per baris. Kemudian setiap baris dipecah berdasarkan koma. Contoh program untuk membaca data dari CSV adalah sebagai berikut:

 CSVReader.java

import java.io.BufferedReader; import java.io.File;

import java.io.FileReader;

public class CSVReader {

public static void main(String[] args) { try{

File f = new File("/home/d3m14w/data.csv"); // sesuaikan path FileReader fr = new FileReader(f); // pembaca file BufferedReader br = new BufferedReader(fr); // buffer input

String a[]; String tmpLine;

while ((tmpLine = br.readLine()) != null){ // baca perbaris a = tmpLine.split(","); // split baris System.out.println(a[0] + " >> " + a[1]); // tampilkan hasil }

} catch(Exception e){}

}

(9)

Latihan

1. Di dalam gudang A terdapat 10 buah palet penempatan barang. Palet-palet tersebut diberi nomor dari 0-9. Setiap palet dapat menampung setumpuk barang dengan tinggi maksimal 10 buah. Modelkan sistem penyimpanan barang di gudang A dengan menggunakan struktur data yang sesuai.

a. Gambarkan ilustrasi dari kasus

b. Jika setiap kotak merupakan bilangan integer, buatlah source code dari ilustrasi yang telah dibuat.

2. Implementasikan proses konversi bilangan desimal (0-9) ke dalam bilangan hexadesimal (0-F) menggunakan stack sebagai alat bantu konversi.

(10)

Daftar Pustaka

Gambar

Gambar 1 : Stack sebagai suatu tumpukan elemen
Gambar 3 : Queue sebagai antrian elemen

Referensi

Dokumen terkait

Chip Intel 4004 yang dibuat pada tahun 1971membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (central processing unit, memori, dan kendali

Pada umumnya belt conveyor terdiri dari : kerangka (frame), dua buah pulley yaitu pulley penggerak (driving pulley) pada head end dan pulley pembalik ( take-up pulley) pada

• Berdasarkan hasil perhitungan diketahui bahwa nilai koefisien model regresi berganda pada Contoh Kasus 3.2 adalah β0=9.4401, β1=0.6426 dan β3=0.2190.. Seperti halnya

Adapun tujuan penelitian yang dilakukan dalam penyusunan ini adalah untuk menganalisis bahwa audit manajemen atas fungsi keuangan dapat dipergunakan dalam

Kesimpulan dari penelitian ini adalah terdapat pola komunikasi pada Ritual Haul Habib Ali al Habsyi yang di dalam pola tersebut menyangkut perilaku dari komunikator dalam

Daya listrik yang disediakan oleh PLTS sebesar 5000 W untuk pemakaian selama 10 jam, menggunakan panel surya sebanyak 40 panel, daya puncak setiap panel surya 250 WP,

siswa mempelajari sebuah teori, konsep atau mempraktekan, dan.. mencobanya, maka siswa akan memahami lebih sempurna, dan mengintegrasikan dengan apa yang dia

besarnya pengaruh antara Kemampuan verbal, Kemampuan berhitung dan Motivasi Belajar terhadap hasil belajar akuntansi siswa kelas XI SMA Negeri 7 Semarang 2010/2011 secara