Stack Dan Queue




Hai semuanya....☺


Balik lagi nih bersama saya, di blog sederhana ini. Baiklah langsung saja ke topik utama. Mari kita mbahas tentang stack dan queue. pertama kita bahas dulu tentang stack, stack adalah kumpulan elemen-elemen data yg disimpan dalam satu lajur linear. Nah stack sendiri memakai konsep LIFO (Last In First Out) jadi, benda yg masuk terakhir dalam stack akan menjadi benda pertama yg dikeluarkan dari stack. Anda bisa melihat contoh gambar berikut :
Nah logikanya setelah kita menumpuk barang seperti diatas, akan tidak mungkin kita dapat mengambil data dari bawah dan kita harus mengambil barang tersebut dari atas. oh ya kita juga dapat mengkonversi bilangan dengan menggunakan stack lho contohnya sebagai berikut :

kita akan mengkonversi bilangan desimal 10 menjadi bilangan biner, ok untuk caranya akan saya sertakan dibawah:


berikut adalah contoh dari script stack beserta hasilnya

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>tugas stack n pop</title>
<script>
var palin = new Array();
function data(palin) 
{
var toString = "";
var a = palin.length;
for (var i = a ; i > 0 ; i --)
{
toString += palin.charAt(i-1)
};
return toString;
}
function palindrome(palin)
{
return (palin == data(palin));
}
function datpalin()
{
var b = document.iniform.indata.value;
document.iniform.outputData.value = data(b);
document.iniform.hslpalin.value = palindrome(b);
return true;
}

function datapush(Data)
{
palin.push(Data);
}
</script>
</head>
<body>
<center>
<marquee><h1>palindrome???</h1></marquee>
<form name="iniform">
<label>Masukkan kata:</label> <input type="text" name="indata"><br>
<input type="button" value="palindrom gak nih?" onclick='datpalin().value;datapush(indata.value);indata.value="";'>
<input type="text" name="hslpalin" value="" placeholder="true/false???"><br>
<br/>
<label>Hasil Kalo dibalik :</label> 
<input type="text" name="outputData"><br/>
</p>
</form>
</center>
</body>
</html>

dan inilah hasilnya...


Selanjutnya Queue, Queue adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front). 
Pada Stack atau tumpukan menggunakan prinsip“Masuk terakhir keluar pertama”atau LIFO (Last In First Out), Maka pada Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).
Queue atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex: antrian Mobil diloket Tol, Antrian mahasiswa Mendaftar, dll.
Contoh lain dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu(time-sharing computer system) dimana ada sejumlah pemakai yang akan menggunakan sistem tersebut secara serempak.
Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front, belakang/rear).

Karakteristik Queue atau antrian :
1. elemen antrian
2. front (elemen terdepan antrian)
3. tail (elemen terakhir)
4. jumlah elemen pada antrian
5. status antrian

berikut adalah contoh ilustrasi dari Queue

Berikut contoh script queue dan hasilnya :

<title>tugas sorting</title>
<script>
var data = new Array;
var j = 0;
function InputData()
                {
                    
                    for(var j = 0 ; j < 20; j++)
                        {
                            data[j] = Math.floor(Math.random()*(50-1))+1;
                            document.getElementById("dataacak").innerHTML += data[j]+",";
                        }
                }
function OutputData(teks)
{
  for (var a = 0; a < data.length; a++)
document.getElementById(teks).innerHTML +=data[a] +",";
  document.getElementById(teks).innerHTML +="<br>";
}
function InsertSort()
{
var sementara;
var upper=data.length;
for (var outer=1; outer < upper; outer++)
{
sementara=data[outer];
inner=outer-1;
while(data[inner] >sementara && inner >= 0)
{
data[inner +1]=data[inner];
inner--;
}
data[inner +1]=sementara;
OutputData("hslsorting");
}
}
</script>
</head>
<body>
    <center>
    <marquee direction="left"><h1 align="center">Insertion Sort</h1></marquee>
<table>
<form>
<td><center><p><label>Masukkan Data:</label>
<label id="dataacak"></label>
<input type="button" value="Random Data" onClick="InputData()"><br></p>
<p><input type="button" value="Pencet Sini" onClick="OutputData('lblData')"><br>
<label>Data Awal:</label><label id="lblData"></label><br></p>
<p><label>Proses Sortingnya =</label>
<input type="button" value="Pencet Saya" onClick="InsertSort()"><br>
<label id="hslsorting"></label><br></p></center></td>
</form>
</table>
        </center>
</body>
</html>

dan inilah hasilnya :

Sekian materi yg dapat saya sampaikan, jika ada kekurangan mohon dimaklumi.
semoga dapat bermanfaat bagi kita semua.

Byeeee..




Komentar

Postingan populer dari blog ini

Nested Looping/perulangan bersarang

Sorting