Jumat, 17 Oktober 2014

Array, Stack dan Queue dalam Struktur Data

ARRAY, STACK, QUEUE
SRUKTUR DATA

ARRAY

      A.     Pengertian Array

Array adalah kumpulan data bertipe sama yang menggunakan nama sama.

Array adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama, dan setiap  elemen diakses langsung melalui indeksnya. Indeks array haruslah tipe data yang menyatakan keter-urutan, misalnya: integer atau string.

Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam kurung siku.

Pada variabel array, kita tidak hanya menentukan tipe datanya saja, tetapi juga jumlah elemen dari array tersebut atau dalam hal ini adalah batas atas indeksnya. Pada banyak bahasa pemrograman seperti C++, Visual Basic, dan beberapa yang lainnya, nilai indeks awal adalah 0 bukan 1. Cara menuliskan variabel array berbeda-beda tergantung bahasa pemrograman apa yang dipakai. Tetapi, yang pasti tipe data harus disebutkan dan batas atas indeks harus ditentukan. Untuk mengisi data pada array kita dapat langsung menentukan pada indeks berapa kita akan isikan, demikian juga untuk memanggil atau menampilkan data dari array.
Macam Array :

1. Array berdimensi satu
2. Array berdimensi dua
3. Array berdimensi tiga

      B.     Penggunaan Array

Penggunaan array dalam java – digunakan untuk menampung beberapa tipe data yang sama dalam sebuah nama  variabel yang mempunyai indeks. Dalam jave, array merupakan objek yang beisi tipe data primitif atau class. Contoh pendeklarasian aray biasanya berupa kurung siku”[]” dan isi data dari array menggnakan kurung kurawal “{}”.

Contoh:
TipeData [] VariableArray = new TipeData[Length];
TipeData [] VariableArray = new TipeData[Length1][Length2];

Array dibagi menjadi 2, yaitu array satu dimensi (hanya satu array) dan array multi dimensi (lebih dari satu array.

STACK

      A.     Pengertian Stack

Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.  Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan Aturan penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu dilakukan “di atas“  TOP dan Penghapusan selalu dilakukan pada TOP.

Stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut. Tumpukan dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix).

Stack karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus.Dikatakan bahwa elemen Stack akan tersusun secara LIFO (Last In First Out).

Ciri tumpukan:
·         TOP merupakan sebutan untuk elemen paling atas dari suatu stack
·         Elemen TOP merupakan elemen yang paling akhir ditambahkan
·         Elemen TOP diketahui
·         penambahan dan penghapusan elemen selalu dilakukan di TOP
·         LIFO

Peenggunaan tumpukan:
·         Perhitungan ekspresi aritmatika (posfix)
·         algoritma backtraking (runut balik)
·         algoritma rekursif

Operasi-operasi/ fungsi Stack:

1.     InsertFirst () biasa disebut Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke tumpukan
2.     DeleteFirst () biasa disebut Pop (output E : typeelmt, input/output data : stack ) : menghapus sebuah elemen tumpukan
3.     IsEmpty () : mengecek apakah stack kosong atau ada elemennya
4.     IsFull () : mengecek apakah stack telah penuh atau belum
5.     Clear () : menghapus semua data
6.     Peek () : melihat data TOP

      B.     Penggunaan Stack

Fungsi dalam Stack:

·         Fungsi init: fungsi yang digunakan untuk inisialisasi atau membuat stack baru yang masih kosong.
·         Fungsi full: digunakan untuk mengetahui stack penuh atau tidak.
·         Fungsi empty: digunakan untuk mengetahui stack kosong atau tidak.
·         Fungsi clear: digunakan untuk mengosongkan stack. Stack dianggap kosong apabila puncak stack berada pada posisi -1.
·         Fungsi push: digunakan untuk menambahkan data ke dalam stack. Penambahan data tidak bisa dilakukan apabila stack sudah penuh. Urutan perintahnya adalah: menambahkan nilai top dan menambahkan data pada posisi nilai top. Jika dalam Linked List menggunakan method addLast
·         Fungsi pop: digunakan untuk mengeluarkan data teratas stack dengan syarat bahwa stack tidak kosong. Urutan perintahnya adalah : menghapus data pada posisi nilai top dan menurunkan nilai top. Jika dalam Linked List menggunakan method removeLast

QUEUE

A.     Pengertian Queue

Queue (Antrian) adalah kumpulan data dimana penambahan data hanya dapat dilakukan pada sisi belakang sedangkan penghapusan data dilakukan pada sisi depan. Jenis struktur data antrian sering digunakan untuk menggambarkan keadaan dunia nyata. Antrian banyak dijumpai dalam kehidupan sehari-hari. Misal : antrian registrasi mahasiswa, tiket kereta api dan lain-lain.

Antrian (Queue) merupakan representasi data yang hanya memperbolehkan pengaksesan data pada dua ujung. Penyisipan data dilakukan dibelakan (ekor) dan pengeluaran data dilakukan diujung (kepala). Berbeda dengan double lingked list pada praktikum 5 yang diperbolehkan mengakses data di sembarang tempat. Perilaku seperti ini meniru kejadian pada masalah antrian pada dunia nyata yakni yang pertama masuk dialah yang dilayani duluan (FIFO).

B.     Penggunaan Queue

Ada dua operasi pada antrian yaitu enQueue dan deQueue. enQueue digunakan untuk menyisipkan data pada antrian, dan deQueue digunakan untuk menghapus data dari antrian.

Operasi penting dalam queue atau antrian adalah :
1.      Add berfungsi untuk menambahkan elemen ke dalam antrian
2.      Delete berfungsi untuk menghapus atau mengeluarkan elemen dari dalam antrian

Sebagai contoh kita mempunyai antrian Q = [Q1, Q2, ….., Qn]. Maka Q1 adalah yang pertama, dan Qn adalah yang terakhir. Jika melakukan prosedur add Qm maka Qm akan berada di belakang Qn. Dan jika melakukan prosedur delete, maka Q1 akan dihapus dari antrian.