Anda di halaman 1dari 15

MAKALAH STRUKTUR DATA

DOSEN PEMBIMBING
Nisa miftachurohmah, S.kom., M.Si
PENYUSUN
SITI JAMILATUL MUADDIBAH
(14.1.03.03.0024)

FAKULTAS TEKNIK
PROGRAM STUDI SISTEM INFORMASI
UNIVERSITAS NUSANTARA PGRI
KEDIRI
2016

BAB 1
KONSEP DASAR STRUKTUR DATA

Apa itu Struktur Data ?


Cara menyimpan atau merepresentasikan data didalam komputer agar bisa dipakai
secara efesien.
Apa Itu Data ?
Data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang
kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara,
gambar, sinyal atau simbol.
Pemakaian struktur data yang tepat didalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara
keseluruhan lebih efesien dan sederhana.
KONSTANTA DAN VARIABEL
Jika dalam membuat suatu program, tentu akan sering menggunakan bilangan
numerik atau suatu kalimat string yang sama yang akan digunakan berkali-kali, ada baiknya
bilangan atau kalimat tersebut dijadikan sebagai suatu konstanta.
Manfaat Konstanta :
Penggunaan konstanta akan membuat program menjadi lebih mudah dimengerti
dan diperbaiki. Penggunaan konstanta akan dapat memberikan nama yang mudah dipahami
untuk suatu bilangan numerik yang kompleks.
Deklarasi Konstanta
Konstanta dideklarasikan pada awal program. Sesuai dengan namanya konstanta,
maka nilai dalam konstanta tersebut akan selalu konstan (tetap). Nilai tersebut tidak dapat
diganti pada saat program sedang dijalankan.
Deklarasi Variabel
Variabel adalah sebuah identifier yang nilainya dapat diubah sesuai dengan
kebutuhan program.
Jika dibutuhkan sebuah variabel yang dapat dikenali oleh semua lingkungan dalam
program maka harus digunakan variabel Global.

Pada C++ selalu terdapat fungsi utama, variabel global biasanya dideklarasikan di luar
fungsi utama tersebut.
Juga terdapat variabel Lokal. Variabel lokal hanya dikenali oleh suatu fungsi saja, artinya
variabel lokal tidak dikenal oleh lingkungan luar di dalam program yang dibuat.
Variabel lokal harus berada dalam lingkup fungsi tertentu.
Tipe Data
Di dalam bahasa pemrograman terdapat beberapa tipe data dasar yang telah
didefenisikan dan digolongkan :
- Tipe bilangan bulat(integer)
- Bilangan real(floating point)
- Tipe logika(boolean) dan
- Tipe karakter/teks(character/string).
Pada saat mendeklarasikan sebuah variabel, secara otomatis harus mendeklarasikan tipe
data yang dapat ditampung oleh varibel tersebut.

BAB 2
ARRAY
Konsep Dasar Array
Array merupakan tipe terstruktur yang terdiri dari sejumlah komponen-komponen
yang mempunyai tipe yang sama. Suatu array mempunyai jumlah komponen yang
banyaknya tetap. Banyaknya komponen dalam suatu array ditunjukkan oleh suatu indek
untuk membedakan variabel yang satu dengan variabel lainnya. Setiap data yang terdapat
dalam array tersebut menempati alamat memori yang berbeda disebut elemen array.
Untuk mengakses nilai dari suatu elemen array, akan digunakan indeks dari array tersebut.
Sangat perlu diperhatikan bahwa dalam bahasa C/C++, indeks array selalu dimulai dari
angka 0, bukan 1. Hal ini berbeda dengan bahasa pemrograman lainnya (misalnya bahasa
Pascal) dimana indeks awal array dapat ditentukan sendiri sesuai dengan keinginan kita.
Untuk mendeklarasikan suatu array dalam bahasa C adalah dengan menggunakan tanda [ ]
(bracket).

Bentuk Penulisan : tipe_data nama_array [banyak_elemen] ;


Contoh Pendeklarasian Array : float Nil_Akhir [6] ;
Variabel array dalam bahasa C/C++ dapat digolongkan menjadi tiga dimensi :
A. Array Berdimensi Satu
Array atau larik adalah kumpulan dari nilai-nilai data bertipe sama dalam
urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data pada
suatu larik disebut dengan elekmen-elemen larik. Letak urutan dari suatu larik
ditunjukkan oleh suatu subscript atau index.
Deklarasi array (larik):
tipe_data nama_var_array [ukuran];
Keterangan :
tipe_data : menyatakan jenis tipe data elemen larik
(int, char, float, dll)
nama_var_array : menyatakan nama variabel yang
dipakai.
ukuran : menunjukkan jumlah maksimal elemen larik.
Contoh :
Int nilai[6];

Inisialisasi array :
Menginisialisasi array sama dengan memberikan nilai awal array pada saat
didefinisikan.
int nilai[6] = {8,7,5,6,4,3};
bisa disederhanakan sehingga menjadi :
int nilai[] = {8,7,5,6,4,3};
Keterangan :
Contoh diatas berarti berarti anda memesan tempat di
memori komputer sebanyak 6
tempat dengan indeks dari 0-5, dimana indeks ke-0
bernilai 8, ke-1 bernilai 7, dst, dan
semua elemennya bertipe data integer.
Catatan: Untuk memberikan niai 0 terhadap seluruh
elemen array pada saat
didefinisikan, Anda dapat memberikan nilai awal 0
pada elemen
pertama.
Sebagai contoh:
Int temp[100] = {0};
Akan memberikan hasil pemberian nilai nol dari
subscript bernilai 0 hingga 99.

Mengakses elemen array :


nama_var_array [indeks];
Keterangan :
Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan
mengeset nilai atau menampilkan nilai pada indeks yang dimaksud.
Pengaksesan elemen array dapat dilakukan berurutan atau random
berdasarkan indeks tertentu secara langsung.
Contoh : nilai[2];

Suatu array dapat digambarkan sebagai kotak panjang yang berisi kotak-kotak kecil
didalam kotak panjang tersebut.
Elemen

Elemen

Elemen

Elemen

Elemen

Elemen

Array Nil_Akhir

B. Array Berdimensi Dua


Array tidak hanya dapat dibentuk dalam dimensi satu, juga dapat dibentuk dalam
dimensi dua. Bentuk penulisan array berdimensi dua adalah sebagai berikut :
tipe_data nama_array [elemen_1][elemen_2] = { nilai array
}; float nilai[2][5] = {2, 3, 4, 5, 2},{4, 2, 6, 2, 7};

BAB 3
STRUCTURE
Struktur merupakan kumpulan elemen data yang digabungkan menjadi
satu kesatuan data. Masing-masing elemen data tersebut dinamakan field atau
elemen struktur. Field tersebut bisa memiliki tipe data yang ataupun berbeda,
meskipun field tersebut dalam satu kesatuan tetapi tetap bisa siakses secara
individu.
Struktur dan array mempunyai kesamaan dan perbedaan, kesamaannya yaitu
alokasi memori untuk elemen-elemennya sudah ditentukan sebelum program
dijalankan. Perbedaannya, array adalah struktur data yang tipe data dari
elemen-elemennya harus sama dan elemen tersebut diakses melalui indeks
sedangkan struktur adalah struktur data yang tipe data dari elemenelemennya
tidak harus sama dan elemen tersebut diakses melalui identifier atau nama variabel.
Deklarasi struktur
struct nama_struktur // nama struktur, kata struct harus
ada
{
type1 element1;
type2 element2;
anggota / elemen dari struktur
type3 element3;
..
} nama_object; // identifier yang digunakan untuk
pemanggilan struktur
------------atau--------------struct nama_struktur
{
type1 element1;
type2 element2;
type3 element3;
..
} ;
struct nama_struktur nama_object;

Enumerasi
Enumerasi adalah tipe data yang mempunyai elemen-elemen bertipe
konstnta dengan urutan yang sudah dtentukan. Nilai-nilai dari konstanta ini berupa
nilai-nilai integer yang diwakili oleh pengenal yang ditulis di antara tanda kurung
kurawal { dan }. Tipe ini dideklarasikan dengan kata kunci enum.
Deklarasi Enumerasi :
Enum nama_enumerasi{nilai1,nilai2,}
Nested structure (Struktur Bersarang)
Suatu struktur yang dapat digunakan di dalam struktur yang lainnya.

Structure of Array
Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara :
Deklarasi manual
#include <stdio.h>
typedef struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk; };
void main()
{ Mahasiswa a,b,c;

artinya struct mahasiswa digunakan untuk 3 variabel, yaitu a,b,c


Struct of array
#include <stdio.h>
typedef struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk; };
void main()
{ Mahasiswa mhs[3];

artinya struct mahasiswa digunakan untuk mhs[0], mhs[1], dan mhs[2]

BAB 4
POINTER (VAR. PENUNJUK)

Pointer adalah suatu variabel penunjuk yang menunjuk pada suatu alamat
memori komputer tertentu. Pointer merupakan variabel level rendah yang dapat
digunakan untuk menunjuk nilai integer, character, float, double, atau single, dan
bahkan tipe-tipe data lain yang didukung oleh bahasa C. Variabel biasa, sifatnya
statis dan sudah pasti, sedangkan pada pointer sifatnya dinamis dan dapat lebih
fleksibel. Variabel pointer yang tidak menunjuk pada nilai apapun berarti
memiliki nilai NULL, dan disebut sebagai dangling pointer karena nilainya tidak
diinisialisasi dan tidak dapat diprediksi.

Operator Pointer
Terdapat dua macam operator pointer, yaitu :
1.Operator Alamat / Deference ( & ).
2.Operator Reference ( * ).
1. Operator Alamat / Dereference Operator(&)
Setiap variabel yang dideklarasikan, disimpan dalam sebuah lokasi memori dan
pengguna biasanya tidak mengetahui di alamat mana data tersebut disimpan. Dalam
C++, untuk mengetahui alamat tempat penyimpanan data, dapat digunakan tanda
ampersand(&) yang dapat diartikan alamat.
Contoh :
Bil1 = &Bil2;
dibaca: isi variabel bil1 sama dengan alamat bil2
2. Operator Reference (*)
Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjuk oleh
variabel pointer.
Contoh :
Bil1=*Bil2;
dibaca: bil1 sama dengan nilai yang ditunjuk oleh bil2.
Deklarasi variabel pointer
tipe * nama_pointer;
Beberapa hal tentang pointer :
Operasi variabel pointer dapat dikerjakan oleh variabel pointer yang lain, contoh :
X = 10;
Ptr1 = &X;
Ptr2 = Ptr1;
Ptr1 dan Ptr2 menghasilkan alamat variabel X yang sama.
OPERASI POINTER
1. Operasi penugasan
Nilai dari suatu variabel pointer dapat disalin ke variabel pointer yang lain.
contoh: y = 35;
x1 = &y;
x2 = x1;
2. Operasi aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer
saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.
Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index
selanjutnya) dalam memori. Begitu juga operasi pengurangan.
3. Operasi Logika
Operasi logika juga dapat dilakukan pada sebuah variabel pointer

BAB 5
FUNCTION (FUNGSI)
Functin/fungsi adalah bagian dari suatu program yang memiliki nama tertentu yang
unik, digunakan untuk suatu pekerjaan tertentu, serta letaknya dipisahkan dari bagian
program yang menggunkan/memanggil fungsi tersebut.
Tipe data sederhana : integer, real, boolean dan string

Dalam matematika : f(x,y) = 3x y +xy ,f adalah sebuah fungsi dengan parameter x dan y.
Nilai yang diberikan fungsi tergantung nilai parameter masukannya. Fungsi diakses dengan
memanggil namanya (sama seperti prosedur). Fungsi dapat mengandung parameter formal
berjenis parameter masukan .Fungsi harus dideklarasikan dengan tipenya atau jenis
hasilnya.
Fungsi dibagi 2:
a. Fungsi tanpa parameter
b. Fungsi dengan parameter
Dalam pemrograman dikenal tiga jenis parameter yaitu :
1. Parameter masukan, adalah parameter yang digunakan untuk menampung nilai yang
akan dijadikan masukan (input) ke dalam suatu fungsi, artinya, sebuah fungsi dapat
menghasilkan nilai yang berbeda tergantung dari nilai dalam perameter yang
dimasukan pada saat pemanggilan fungsi tersebut.
2. Parameter keluaran, adalah parameter yang digunakan untuk menampung nilai yang
akan dijadikan keluaran (output) yang akan dikirimkan ke bagian yang memanggil
fungsi tersebut, umumnya parameter ini digunakan untuk fungsi yang tidak memiliki
nilai balik (prosedur)
3. Parameter masukan/keluaran, adalah parameter yang digunakan untuk menampung
nilai yang akan dijadikan masukan (input) ke dalam suatu fungsi selain itu juga
menampung nilai yang akan dijadikan keluaran (output) yang akan dikirimkan ke
bagian yang memanggil fungsi tersebut, artinya, sebuah parameter sebelum fungsi
dijalankan bertindak sebagai parameter masukan dan setelah fungsi dijalankan
parameter tersebut bertindak sebagai parameter keluaran.

BAB 6
SORTING (PENGURUTAN)
Sorting adalah proses mengatur sekumpulan objek menurut aturan atau
susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil
ke data lebih besar) atau menurun (descending = dari data besar ke data lebih
kecil).
Banyak sekali algoritma pengurutan yang ada, tetapi disini akan kita pelajari 3
metode yaitu:
Bubble sort (gelembung)
Selection sort (maksimum/minimun)
Insertion sort (sisip)
1. PENGURUTAN GELEMBUNG
Metode pengurutan gelembung (bubble sort) diinspirasi oleh gelembung sabun yang
ada di permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada
berat jenis air maka gelembung sabun akan selalu mengapung. Prinsip pengapungan
ini juga dipakai pada pengurutan gelembung. Elemen yang berharga paling kecil
diapungkan, artinya diangkat ke atas (atau ke ujung paling kiri) melalui pertukaran.
Proses pengapungan ini dilakukan N kali langkah. Pada langkah ke-I, Larik[1..N] akan
terdiri dari 2 bagian yaitu:
A. Bagian yang sudah terurut yaitu L[1]..L[i].
B. Bagian yang belum terurut L[I+1]..L[n].
ALGORITMA PENGURUTAN GELEMBUNG
Untuk mendapatkan larik yan terurut menaik, proses yang harus dilakukan pada

setiap langkah sebagai berikut:


Langkah 1: Mulai dari elemen K=N,N-1,N-2,..2 bandingkan L[K] jika L[K] < L[K-1], pertukarkan
L[K] dengan L[K-1].
Pada akhir langkah 1, elemen L[1] berisi harga minimum pertama.
Langkah 2: Mulai dari elemen K=N,N-1,N-2,..3 bandingkan L[K] jika L[K] < L[K-1], pertukarkan
L[K] dengan L[K-1].
Pada akhir langkah 2, elemen L[2] berisi harga minimum kedua dan L[1]..L[2]
terurut..
Langkah 3: Mulai dari elemen K=N,N-1,N-2,..4 bandingkan L[K] jika L[K] < L[K-1], pertukarkan
L[K] dengan L[K-1].
Pada akhir langkah 3, elemen L[3] berisi harga minimum ketiga dan L[1]..L[3]
terurut..
Langkah N-1: Mulai dari elemen K=N,N-1,N-2,..4 bandingkan L[K] jika L[K] < L[K-1],
pertukarkan L[K] dengan L[K-1].

BAB 7
SEARCHING (PENCARIAN)
Ada beberapa pencarian yang akan kita uraikan disini:
1. Pencarian Beruntun (Sekuensial Search)
2. Pencarian Beruntun dengan sentinel
3. Pencarian Bagi dua (Binary Search)
Pencarian Beruntun (Sekuensial Search)
Konsep : Membandingkan setiap setiap elemen larik satu per satu secara urut (beruntun),
mulai dari elemen pertama sampai dengan elemen yang terakhir. Ada 2 macam
pencarian beruntun,yaitu pencarian pada array yang sudah terurut, dan pencarian
pada array yang belum terurut.
Pencarian Beruntun Dengan Sentinel
Algoritma ini adalah pengembangan dari algoritma pencarian beruntun. Yang
dimaksud dengan sentinel adalah elemen fiktif yang sengaja ditambahkan sesudah
elemen terakhir dari larik tersebut. Jadi jika elemen terakhir dari larik adalah
L[N], maka sentinel diletakkan pada elemen L[N+1]. Akibatnya proses pencarian
akan selalu menemukan data yang dicari, akan tetapi harus selalu diperiksa letak
data yang ditemukan, apakah:
1. Di antara elemen-elemen larik yang sesungguhnya(antara L[1] sampai dengan L[N])
2. Pada elemen fiktif [L[N+1]]
Pencarian Bagi Dua (Binary Search)
Syarat : Data harus terurut
Salah satu keuntungan data yang terurut adalah memudahkan pencarian, yang
dalam hal ini adalah pencarian bagi dua. Sebenarnya dalam kehidupan sehari-hari
kita sering menerapkan algoritma ini. Untuk mencari kata tertentu dalam kamus
(misalnya kamus bahasa Inggris), kita tidak membuka kamus tersebut dari
halaman awal sampai halaman akhir satu persatu, namun kita mencarinya dengan
cara membelah atau membagi halaman-halaman buku tersebut. Begitu seterusnya
sampai kita menemukan kata yang dicari.
Prinsip Pencarian :
Kita asumsikan data sudah terurut, misalkan terurut menurun. Kita menyebut
indeks terkecil sebagai indeks ujung paling kiri, dan indeks terbesar sebagai
indeks ujung paling kanan.
Misalkan indeks kiri Ia dan indeks kanan adalah Ib. Pada mulanya Ia adalah 0 dan
Ib adalah N.
Langkah 1: Bagi 2 elemen larik pada elemen tengah. Elemen tengah adalah elemen dengan

indeks k=(Ia+Ib) div 2. (Elemen tengah, L[k], membagi larik menjadi 2 bagian
L[Iak-1] dan bagian kanan L[k+1Ib]).
Langkah 2: Periksa apakah L[k]=X. Jika L[k]=X, pencarian dihentikan sebab X sudah
ditemukan, tetapi jika tidak , harus ditentukan apakah pencarian pada larik
bagian kiri atau larik bagian kanan. Jika L[k] < X maka pencarian dilakukan pada
larik kiri. Sebaliknya jika L[k] >X maka pencarian dilakukan pada larik bagian
kanan.
Langkah 3: Ulangi langkah 1 sampai X atau Ia>Ib.

BAB 8
LINKED LIST
LINKED LIST
Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang
tersusun secara sekuensial, saling sambung-menyambung, dinamis dan terbatas. Linked
List sering disebut juga Senarai Berantai . Linked List saling terhubung dengan bantuan
variabel pointer . Masing-masing data dalam Linked List disebut dengan node (simpul) yang
menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari
beberapa field.
Bentuk Single Linked List
Pengertian:
Single artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir
node, pointernya menunjuk NULL. .Linked List artinya node-node tersebut saling terhubung
satu sama lain.

Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan
juga memiliki field yang berisi data.

Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada
saat pembacaan isi linked list.
Pembuatan Single List
Deklarasi Node
typedef struct TNode{ int data; TNode *next; };
Penjelasan:
1. Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data bertipe integer
dan field next yang bertipe pointer dari TNode
2. Setelah pembuatan struct, buat variabel head yang bertipe pointer dari TNode yang
berguna sebagai kepala linked list.
3. Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta
alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk
ke NULL.
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
Single List Menggunakan Head
1. Dibutuhkan satu buah variabel pointer: head
2. Head akan selalu menunjuk pada node pertama

Deklarasi Pointer Penunjuk Kepala Single Linked List


Manipulasi linked list tidak bisa dilakukan langsung ke node yang dituju, melainkan harus
menggunakan suatu pointer penunjuk ke node pertama dalam linked list (dalam hal ini
adalah head). Deklarasinya sebagai berikut:
TNode *head;

BAB 9
STACK

STACK
Stack atau tumpukan adalah suatu struktur yang penting dalam pemrograman. Bersifat LIFO ( Last In
First Out ). Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang
dikeluarkan dari stack. Ujung list disebut top.

Ada 2 operasi dasar yang bisa dilakukan pada stack yaitu :


Push (menambah/menyisipkan data)
Pop (menghapus/mengurangi data)
Stack Exception
Eksekusi suatu operasi stack mungkin mengakibatkan suatu kondisi error condition
yang disebut exception. Dalam Stack ADT, operasi pop dan top tidak dapat dilakukan jika
stack nya kosong. Upaya mengeksekusi pop dan top pada stack yang kosong akan
mengakibatkan adanya EmptyStackException.

BAB 10
QUEUE

QUEUE
Queue atau antrian adalah barisan elemen yang apabila ditambah maka penambahannya
berada di posisi belakang dan jika dilakukan pengambilan elemen dilakukan di elemen paling depan
(front). Bersifat FIFO ( First In First Out ). Benda yang pertama masuk ke dalam queue akan menjadi
benda pertama yang dikeluarkan dari queue.
Dalam queue sendiri terdapat beberapa operasi , yaitu:
1. IsEmpty : Mengecek apakah queue kosong atau tidak
2. IsFull : Mengecek apakah queue sudah penuh atau belum
3. Enqueue : Menambahkan data di queue
4. Dequeue : Mengambil data dari queue
5. Clear : Menghapus data dalam antrian
6. View : melihat data dalam antrian

Berbeda dengan stack, queue mempunyai 2 kata kunci, yaitu tail dan head. Fungsi nya buat
apa? Head adalah penanda urutan paling depan, sedangkan tail adalah penanda urutan
paling belakang. Karena jumlah operasinya banyak, kita kerjakan secara modular aja ya biar
lebih mudah.
1. Deklarasi Awal Queue
Variabel yang akan digunakan adalah data (array sebagai tempat queue), head, tail.
Sama seperti Stack, Nilai dari head dan tail dimulai dari -1 yang menandakan queue kosong.
2. IsEmpty
Sama seperti di Stack, IsEmpty berguna untuk mengecek apakah queue kosong atau
tidak. Indikator bahwa queue kosong adalah nilai dari head dan tail bernilai -1.
3. IsFull
Operasi IsFull digunakan untuk mengecek apakah queue sudah penuh atau belum.
Indikator kalau queue penuh adalah nilai tail = max 1. Mengapa? karena nilai maksimal
pada array yang mempunyai index 7 pada saat diakses akan mempunyai nilai maksimal 6.
4. Enqueue
Enqueue digunakan untuk memasukkan data kedalam queue. Sama seperti push
dalam stack. Sebelum memasukkan data kedalam antrian, kita harus mengecek terlebih
dahulu apakah queue / antrian sudah penuh atau belum. Kalau belum maka kita harus
mengecek apakah head sudah berada pada nilai 0 atau belum. Ini sangat penting karena
nilai head tidak akan lebih dari 0. PERLU DIPERHATIKAN ! Yang akan bergerak terus adalah
tail, sedangkan head hanya penunjuk urutan paling depan, sehingga nilainya tidak pernah
lebih dari 0. Kecuali antrian kosong, maka posisi head dan tail akan kembali menjadi -1.
5. Dequeue
Kebalikan dari fungsi enqueue, dequeue digunakan untuk mengambil data yang
sudah masuk di urutan pertama. Sehingga kita tinggal membaca data yang ada di posisi
head. Nah inilah fungsi dari head. Jangan lupa kita cek dulu apakah queue kosong atau tidak.
Tapi jika ada isinya, setelah data diambil, data dibelakangnya digeser ke depan.
6. Clear
Operasi clear digunakan untuk menghapus data yang ada di dalam queue. Caranya
cukup merubah nilai pada head dan tail menjadi -1. Tidak perlu diperhatikan data yang ada
di dalam array. Nantinya data data tersebut juga akan ditimpa.
7. View
Operasi ini digunakan untuk melihat data yang ada didalam queue. Caranya adalah
dengan membaca data pada index yang terdapat diantara head sampai tail.

Anda mungkin juga menyukai