Selasa, 06 April 2010

contoh penerapan queue dalam kehidupan sehari-hari fifo lifo

1.POINTER

Pointer merupakan tipe data berukuran 32 bit yang berisi satu nilai yang berpadanan
dengan alamat memori tertentu. Sebagai contoh, sebuah variabel P bertipe pointer
bernilai 0×0041FF2A, berarti P menunjuk pada alamat memori 0041FF2A. Pointer
dideklarasikan seperti variabel biasa dengan menambahkan tanda * (asterik) yang
mengawali nama variabel.

Bentuk Umum:
namaVariabel;
Contoh:
float * px;
Statement di atas mendeklarasikan variabel px yang merupakan pointer. Penyebutan
tipe data float berarti bahwa alamat memori yang ditunjuk oleh px dimaksudkan untuk
berisi data bertipe float.

2. ARRAY
Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data
yang sama. Elemen-elemen array tersusun secara sekuensial dalam memori komputer.
Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi
(multi dimensi).

2.1 Array Satu Dimensi
Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yang
tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data yang
sama, tetapi isi dari elemen tersebut boleh berbeda.

2.2. Array Dua Dimensi
Array dua dimensi sering digambarkan sebagai sebuah matriks, merupakan
perluasan dari array satu dimensi. Jika array satu dimensi hanya terdiri dari
sebuah baris dan beberapa kolom elemen, maka array dua dimensi terdiri dari
beberapa baris dan beberapa kolom elemen yang bertipe sama

3. STRUCTURE
Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi
satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field
data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun fieldfield
tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat
diakses secara individual.

Field-field tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam
operasinya. Misalnya Anda ingin mencatat data-data mahasiswa dan pelajar dalam
sebuah program, Untuk membedakannya Anda dapat membuat sebuah record
mahasiswa yang terdiri dari field nim, nama, alamat dan ipk serta sebuah record pelajar yang terdiri dari field-field nama, nonurut, alamat dan jumnilai. Dengan demikian akan lebih mudah untuk membedakan keduanya.
Untuk menggunakan struktur, tulis nama struktur beserta dengan fieldnya yang
dipisahkan dengan tanda titik (“ . “). Misalnya Anda ingin menulis nim seorang
mahasiswa ke layar maka penulisan yang benar adalah sebagai berikut:
cout<

4. LINKED LIST
Pada bab sebelumnya telah dijelaskan mengenai variabel array yang bersifat statis
(ukuran dan urutannya sudah pasti). Selain itu, ruang memori yang dipakai olehnya
tidak dapat dihapus bila array tersebut sudah tidak digunakan lagi pada saat program
dijalankan. Untuk memecahkan masalah di atas, kita dapat menggunakan variabel
pointer. Tipe data pointer bersifat dinamis, variabel akan dialokasikan hanya pada saat dibutuhkan dan sesudah tidak dibutuhkan dapat direlokasikan kembali.
Setiap ingin menambahkan data, Anda selalu menggunakan variabel pointer yang baru,
akibatnya Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, ada
baiknya jika Anda hanya menggunakan satu variabel pointer saja untuk menyimpan
banyak data dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan
elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya
terdiri dari dua bagian.
infotype 8 sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list
next 8 address dari elemen berikutnya (suksesor)
Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu dengan notasi : first (L)

Pembuatan Single Linked List dapat menggunakan 2 metode:
· LIFO (Last In First Out), aplikasinya : Stack (Tumpukan)
· FIFO (First In First Out), aplikasinya : Queue (Antrean)

- LIFO ( Last In First Out)
Lifo adalah suatu metode pembuatan Linked List di mana data yang masuk paling akhir
adalah data yang keluar paling awal. Hal ini dapat dianalogikan (dalam kehidupan
sehari-hari) dengan saat Anda menumpuk barang seperti digambarkan dibawah ini.
Pembuatan sebuah simpul dalam suatu linked list seperti digambarkan dibawah ini.
Jika linked list dibuat dengan metode LIFO, terjadi penambahan / Insert simpul di
belakang, dikenal dengan istilah INSERT.

- FIFO (Fisrt In Fisrt Out)
FIFO adalah suatu metode pembuatan Linked List di mana data yang masuk paling
awal adalah data yang keluar paling awal juga. Hal ini dapat di analogikan (dalam
kehidupan sehari-hari), misalnya saat sekelompok orang yang datang (ENQUEUE)
mengantri hendak membeli tiket di loket.

4.3. Double Linked List
Salah satu kelemahan single linked list adalah pointer (penunjuk) hanya dapat bergerak satu arah saja, maju/ mundur, atau kanan/kiri sehingga pencarian data pada single linked list hanya dapat bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, anda dapat menggunakan metode double linked list. Linked list ini dikenal dengan nama Linked list berpointer Ganda atau Double Linked List.

4.4. Circular Double Linked List
Ini adalah double linked list yang simpul terakhirnya menunjuk ke simpul terakhirnya
menunjuk ke simpul awalnya menunjuk ke simpul akhir sehingga membentuk suatu
lingkaran.

Operasi-Operasi yang ada pada Linked List :
Insert
Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.
IsEmpty
Fungsi ini menentukan apakah linked list kosong atau tidak.
Find First
Fungsi ini mencari elemen pertama dari linked list
Find Next
Fungsi ini mencari elemen sesudah elemen yang ditunjuk now.
Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu
dikembalikan oleh fungsi.
Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu.
Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalah
elemen pertama dari linked list (head), head akan berpindah ke elemen berikut.
Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen
sesudahnya.
Clear
Fungsi ini menghapus linked list yang sudah ada. Fungsi ini wajib dilakukan bila anda
ingin mengakhiri program yang menggunakan linked list. Jika anda melakukannya,
data-data yang dialokasikan ke memori pada program sebelumnya akan tetap tertinggal
di dalam memori.

5. STACK
5.1 Definisi Stack
Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First
Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang
dikeluarkan dari stack.
stack haruslah memiliki operasi-operasi sebagai berikut :
Push Untuk menambahkan item pada tumpukan paling atas
Pop Untuk mengambil item teratas
Clear Untuk mengosongkan stack
IsEmpty Untuk memeriksa apakah stack kosong
IsFull Untuk memeriksa apakah stack sudah penuh
Retreive Untuk mendapatkan nilai dari item teratas

5.2. Stack dengan Array
Sesuai dengan sifat stack, pengambilan / penghapusan di elemen dalam stack harus
dimulai dari elemen teratas.
Operasi-operasi pada Stack dengan Array

IsFull
Fungsi ini memeriksa apakah stack yang ada sudah penuh. Stack penuh jika puncak
stack terdapat tepat di bawah jumlah maksimum yang dapat ditampung stack atau
dengan kata lain Top =MAX_STACK -1.

Push
Fungsi ini menambahkan sebuah elemen ke dalam stack dan tidak bisa dilakukan lagi
jika stack sudah penuh.

IsEmpty
Fungsi menentukan apakah stack kosong atau tidak. Tanda bahwa stack kosong adalah
Top bernilai kurang dari nol.

Pop
Fungsi ini mengambil elemen teratas dari stack dengan syarat stack tidak boleh kosong.

Clear
Fungsi ini mengosongkan stack dengan cara mengeset Top dengan -1. Jika Top bernilai
kurang dari nol maka stack dianggap kosong.

Retreive
Fungsi ini untuk melihat nilai yang berada pada posisi tumpukan teratas.

Sumber: http://diaa4n.wordpress.com/2010/03/21/contoh-penerapan-queue-dalam-kehidupan-sehari-hari-fifo-lifo/

Tidak ada komentar:

Posting Komentar