Sabtu, 20 Desember 2008

Implementasi Array, Tree, LinkList dan Stack

Program yang qbuat ini sebagai tugas akhir praktikum Algoritma dan Struktur Data merupakan program yang mengimplementasikan Array, Link List, Tree dan Stack yang di gabungkan menjadi satu.

Pada program terdapat deklarasi class Node untuk mendefinisikan semua variabel yang digunakan dan mendefinisikan variabel next yang merupakan object Node. Deklarasi class list_barang untuk mendefinisikan variabel head dan head_obj yang merupakan object Node
Penjelasan fungsi-fungsi kelas yang terdapat pada program
1. Kelas toko_komputer.java
Fungsi-fungsi Keterangan
public list_barang() Menginisialisasi nilai head dan head_obj = null
public void push Mengisi data pada program
public void InsertLast(int tgl, int stoktmp,int hrg) Mengisi data dari belakang
public Node FindLastNode() Mencari data yang terakhir

public String getstring(Node a) Menampilkan output string dari program
public toko_komputer() Konstruktor program
private void initComponents() Mengaturan dari semua label, TextField, Button, radiogroup dan panel
public void actionPerformed(java.awt.event.ActionEvent evt) Sesuatu yang dijalankan pada saat button ditekan
private void tanggal_enter(java.awt.event.ActionEvent evt) Mengecek tanggal
private void display(java.awt.event.ActionEvent evt) Mendisplay data ke program
private void hapus_brd(java.awt.event.ActionEvent evt) Menghapus data pada papan, tetapi data masih ada
private void hapus_dataActionPerformed(java.awt.event.ActionEvent evt) Menghapus semua data sehingga semua data yang telah dimasukkan menjadi hilang.
Pada program toko_komputer ini menggunakan struktur data linear yaitu linked list. Dan Linked List yang digunakan adalah dengan implementasi dari stack dan double linked list circular. Implementasi stack karena terdapat procedure untuk push data dan implementasi linked list karena proses pengolahan datanya menggunakan link list
Pada setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data. Pada akhir linked list, node terakhir akan menunjuk ke node terdepan sehingga linked list tersebut berputar. Node terakhir akan menunjuk lagi ke head. Dan pada setiap data yang akan dimasukkan berarti procedure push dijalankan. Pada program menggunakan pengecekan jika list masih kosong yaitu dengan dibuat procedure boolean isempty().
Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali atau saat list masih kosong, maka penambahan data dilakukan pada head berarti head yang menjadi object Node() dan apabila list sudah terisi berarti membuat object baru dengan penginisialan x sebagai head dan dibuat object baru dari Node(). Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan. Untuk menghubungkan node terakhir dengan node terdepan dibutuhkan pointer bantu.
Penambahan data dilakukan juga bisa dilakukan di belakang, namun pada saat pertama kali data langsung ditunjuk pada head-nya. Penambahan di belakang lebih sulit karena kita membutuhkan prosedur public Node FindLastNode() untuk mengetahui data terbelakang, kemudian dikaitkan dengan data baru.
Karena pada program menggunakan implementasi dari queue maka dibuat procedure boolean enabling(int k) agar setiap pengisian data harus selalu ke tanggal selanjutnya, yaitu jika memasukkan data ke tanggal sebelumnya tidak bisa dilakukan. Untuk menampilkan data pada output program digunakan procedure public String getstring(Node a)dan private void display(java.awt.event.ActionEvent evt). Pada program untuk pengecekan tanggal juga terdapat procedure private void tanggal_enter(java.awt.event.ActionEvent evt) dengan perulangan tanggal 1 sampai 31.


Penjelasan tree
Pada kelas directory tersebut merupakan implementasi dari array karena dalam penyimpanan data (root dan childnya) menggunakan array yang disimpan secara iterasi dan merupakan implementasi dari tree karena dapat menampilkan struktur directory tree.
DefaultMutableTreeNode disini merupakan root atau parent dari tree
Terdapat Jtree yang merupakan komponen yang bermanfaat untuk menampilkan data yang bersifat hierarkis. Fungsi untuk menampilkan treenya adalah Treedirectory(top,tm);
Didalam fungsi ini terdapat suatu iterasi (for ( int i=0; i < fileArray.length; i++ )) yang berguna untuk mencetak dan menambahkan child dari parent tersebut (menggunakan array). Fungsi penambahan child yaitu n.add(new DefaultMutableTreeNode (fileArray[i] .getName())); Itu merupakan penjelasan program dan untuk mengetahui source programnnya dapat request di hyuuga.keswara@gmail.com

Tidak ada komentar:

Posting Komentar