Nama: Zabil Sabri Muhammad
NIM: H071211016
Kelas: Struktur Data A
- Stack
Stack adalah salah satu jenis struktur data yang mana elemennya hanya bisa dimasukkan dan dikeluarkan pada posisi akhir saja atau konsep ini lebih sering dikenal dengan Last In First Out (LIFO). Struktur data jenis ini sering kita temukan pada fiturUndopada aplikasi. Jadi ketika memasukkan data, data tersebut akan diletakkan pada posisi paling atas atau terakhir dan jika kita melakukanUndo, maka data yang paling terakhir masuk akan dihapus.
Agar kita dapat memahami lebih mudah, berikut adalah ilustrasi dari struktur data stack:

Berikut adalah salah satu contoh kode program bahasa PHP yang menggunakan konsep struktur data Stack:
class stack{
public $data = array();
private $pointer = 0;
public function push($data) // Menambahkan data ke dalam array, ke indeks yang paling terakhir
{
$this->data[$this->pointer++] = $data;
}
public function peek() // Mengakses data/element yang paling terakhir(indeks yang paling tinggi) di dalam array
{
return end($this->data);
}
public function pop() // Menghapus data yang paling terakhir di dalam array
{
return array_pop($this->data);
}
}
$stack = new stack();
$stack->push('Minuman');
$stack->push('Makanan');
$stack->push('Cemilan');
$stack->push('Soda');
# Last In First Out (LIFO)
$stack->pop(); // mengeluarkan soda
$stack->pop(); // mengeluarkan cemilan
$stack->pop(); // mengeluarkan makanan
echo($stack->peek()); // minuman
- Queue
Queue adalah jenis struktur data yang mana kebalikan dari struktur data Stack. Queue memiliki konsep First In First Out (FIFO) yang mana data yang pertama kali masuk akan keluar terlebih dahulu. Salah satu contoh peng-aplikasian dari jenis struktur data ini adalah aplikasi pesanan makanan, yang mana orang yang pertama memesan akan proses terlebih dahulu.
Berikut adalah ilustrasi dari struktur data queue:
Berikut adalah contoh kode program bahasa PHP yang menggunakan jenis struktur data Queue:
<?php
class queue{
public $data = array();
private $pointer = 0;
public function push($data) // Menambahkan data ke dalam array, ke indeks yang paling terakhir
{
$this->data[$this->pointer++] = $data;
}
public function peek() // Mengakses data/element yang paling pertama(indeks yang paling rendah) di dalam array
{
return reset($this->data);
}
public function shift() // Menghapus data yang paling Pertama di dalam array
{
return array_shift($this->data);
}
}
$queue = new queue();
$queue->push('Minuman');
$queue->push('Makanan');
$queue->push('Cemilan');
$queue->push('Soda');
# First In First Out (FIFO)
$queue->shift(); // Mengeluarkan Minuman
$queue->shift(); // Mengeluarkan Makanan
$queue->shift(); // Mengeluarkan Cemilan
echo ($queue->peek()); // Soda
