STACK dan QUEUE


Assalamualikum wwr.wb
Halo guys kali ini saya akan sedikit berbagi ilmu tentang stack dan queue. apa sih stack dab queue itu??? Yuk simak penjelasan di bawah ini
1.       STACK
Stack adalah tumpukan data yang terpenting dalam pemrogaman yang memiliki sifat LIFO(Last In First Out) yang berarti benda yang terakhir masuk manjadi benda yang pertama keluar. Untuk lebih jelasnya lihat gambar di bawah ini


berikut adalah contoh koding dari stack
<!DOCTYPE html>
<html>
<head>
<title>Praktikum 4</title>
<script type="text/javascript" language="javascript">
var pal = Array();
var hasil = 0;
function data(pal)
{
var toString = "";
var a = pal.length;
for (var i = a ; i > 0 ; i --)
{
toString += pal.charAt(i-1)
};
return toString;
}

function Palindrome(pal)
{
return (pal == data(pal));
}

function palindrome()
{
var b = document.palinForm.inputData.value;
document.palinForm.outputData.value = data(b);
document.palinForm.isPalin.value = Palindrome(b);
return true;
}

function PushData(Data)
{
pal.push(Data);
}

function PopData()

{
var data_dari_stack = pal.pop();
if (data_dari_stack == undefined)
return "Stack Sudah Kosong";
else
return data_dari_stack;
}

function TampilkanStack(list)
{
list.options.length = 0 ;
for ( var i = 0 ; i < pal.length ; i++)
{
var data = new Option(pal[i]);
list.options[list.options.length] = data;
}
PeekData();
document.getElementById("txtBanyak").innerHTML = pal.length;
}

function HapusData()
{
pal = [];
}

function PeekData()
{
var hasil = pal.length;
if (hasil == 0 || hasil == undefined)
document.getElementById("txtAtas").innerHTML = "tidak ada";
else
document.getElementById("txtAtas").innerHTML = pal[hasil -1];
}
</script>
</head>
<body bgcolor="rainbow">
<h1>praktikum 4</h2>

<form name="palinForm">

<p>Masukkan Data: <input type="text" name="inputData"><br>
<input type="button" value="Palindrome?" onclick='palindrome().value;PushData(inputData.value);inputData.value="";'>
<input type="text" name="isPalin" value=""><br>

<br/>
HASIL PALINDROME:
<input type="text" name="outputData"><br/>


</p>

<p>

<input type="button" value="Masukkan ke Stack" onclick='PushData(outputData.value);outputData.value=""; TampilkanStack(mediaList);'>

</p>

<p>Data di dalam stack:<br/>
<select name="mediaList" size="12">
<option>Tampilan data
</select>
</p>

<p>
<input type="text" name="textAmbil" size="20">
<input type="button" value="Ambil dari Stack" onclick="textAmbil.value = PopData(); TampilkanStack(mediaList);">
<input type="button" value="Hapus Data" onclick="HapusData(); TampilkanStack(mediaList);"> <br/>
<label>Banyak Data: </label><label id="txtBanyak"></label><br>
<label>Data Terakhir:</label><label id="txtAtas"></label>
</p>
</form>
</body>
</html>





2.       QUEUE
Queue adalah suatau kumpulan data yang mana penambahan data atau elemen hanya dilaukan di sisi belakang sedangkan untuk pengeluaran elemen di lakukan di sisi depan. Queue juga bisa disebut sebagai antrean. Untuk lebih jelasnya lihat gambar di bawah ini

Pada queue bersifat FIFO(First In First Out) yang berarti yang pertama masuk menjadi pertama keluar.
berikut adalah contoh koding queue
<!DOCTYPE html>
<html>
<head>
<title>praktikum 5</title>
<script type="text/javascript">
var queue = new Array();
var ganjil = new Array();
var genap = new Array();
var a = 0;
var b = 0;

function Enqueue(data)
{
document.getElementById("txthasil").innerHTML = "";
queue.unshift(data);

}

function datqueue()
{
var ambil = queue.pop();
if(ambil == undefined)
{
return "Queue Sudah Habis"
}
else
{
Hasil = ambil % 2;
if(Hasil == 0)
{
genap.push(ambil);
document.getElementById("Genap").innerHTML += ambil + "<br>";
a++;
return ambil;
}
else
{
ganjil.push(ambil);
document.getElementById("Ganjil").innerHTML += ambil + "<br>";
a++
return ambil;
}
}
}

function TampilkanQueue(list)
{
list.options.length = 0;
for(var i = 0; i<queue.length;i++)
{
var data = new Option(queue[i]);
list.options[list.options.length] = data;
}
}

function jumlah()
{
if(ganjil[b] == undefined)
{
c = parseInt(genap[b] + 0);
b++;
document.getElementById("hasil").innerHTML += a + "<br>";
}
else if(genap[b] == undefined)
{
e = parseInt(ganjil[b] + 0);
b++;
document.getElementById("hasil").innerHTML += b +"<br>";
}
else
{
f = parseInt(ganjil[b]) + parseInt(genap[b]);
b++;
document.getElementById("hasil").innerHTML += f +"<br>";
}
}
</script>
</head>
<body bgcolor="rainbow">
<h1>praktikum 5</h2>
<form>
<p>
<input type = "text" name ="txtjumlah">
<input type = "button" value = "Masukkan ke Queue" onclick='Enqueue(txtjumlah.value); txtjumlah.value="";TampilkanQueue(mediaList);'>
</p>

<p>
Data dalam Queue : <br/>
<select name="mediaList" size="12">
<option> Tampilan data..
</select>
</p>
<input type="text" name="Simpan">
<input type="button" value="Peninjauan" onclick='Simpan.value=datqueue()'><br/>
<label id="txthasil"></label>
<p>
<label>Genap :</label><br/>
<label id="Genap"></label>

<label>Ganjil :</label><br/>
<label id="Ganjil"></label>
</p>
<input type="button" value="JUMLAH" onclick="jumlah()">

<label>HASIL :</label>
<label id="hasil"></label>
</form>
</body>

</html>



Sekian dari materi STACK dan QUEUE semoga bermanfaat dan apabila ada kesalahan saya ucapkan mohon maaf yang sebesar-besarnya.
Wassalamualaikum wr.wb

Komentar

Postingan populer dari blog ini

GRAPH

SEARCHING

ARRAY 1 DIMENSI