Stack dalam bahasa indonesia adalah tumpukan . Prinsip dari tumpukan adalah yang terakhir kali di masukan akan menjadi yang pertama kali di keluarkan . Dalam bahasa pemrograman di sebut dengan konsep LIFO singkatan dari Last In First Out .
Apa yang harus di pahami sebelum masuk materi ini ????
Sebelumnya kawan-kawan harus mengerti dulu dasar-dasar dari pemrograman java agar tidak kesulitan dalam memahaminya . Ya paling tidak harus mengerti hal-hal berikut :
Nah kalo sudah saya akan melanjutkannya lagi .
Sekilas cerita oso ...
Katanya mau belajar stack kok malah cerita sih ??? Tenang kita baca crita dulu biar nggak tegang .
si OSO memiliki banyak buku di mejanya nah dia binging mau di taruh dimana bukunya karena sudah nggak ada tempat lagi . Akhirnya setelah berfikir agak lama dia punya ide untuk memasukannay ke dalam kardus . Dia mempersiapkan kardus yang agak besar dan kemudian menaruhnya di bawah . Kemudian dia meletakan buku pertamanya , lalu di ikuti buku kedua di atasnya buku pertama dan begitu seterusnya sampai kardus penuh .
Nah suatu hari si OSO mau baca buku yang ada di dalam kardus , dia akhirnya membuka kardus dan mengambil buku yang paling atas . Ternyata bukan buku yang di carinya , lalu dia mengambil buku lagi di bawahnya , ternyata bukan buku yang di carinya juga . Setelah menggambil satu demi satu buku dia akhirnya menemukanya .
Cerita di atas adalah sebuah ilustrasi dari stack , sekarang akan kita terapkan di dalam coding .
ayo mulai coding ....
Saya sudah membuat kelas bernama kelasStack . Kemudian sama seperti ceritanya si OSO kita harus siapkan dulu kardusnya , kita pakai array sebagai kardusnya . Kita buat array tipe data integer dengan batas 10 seperti di bawah ini .
// PESAN MEMORI BUAT ARRAY
int ar [] = new int[10];
Kemudian kita buat dulu fungsi untuk mengecek apakah stacknya kosong atau tidak .
boolean isEmpty(){
if(top == -1){
return true;
}
return false;
}
Diatas kita membuat fungsi isEmpty , fungsi ini akan mengembalikan nilai TRUE jika kosong dan FALSE jika terisi .
Buat juga fungsi isFull untuk mengecek apakah sudah penuh atau belum .
boolean isFull(){
if(top == ar.length){
return true;
}
return false;
}
Fungsi isFull mengembalikan nilai TRUE jika sudah penuh dan FALSE jika belum penuh .
Setelah itu kita masukkan bukunya (data). Disini saya membuat sebuah prosedur untuk memasukan datanya dan saya beri nama prosedur PUSH .
public void push(int angka){
if(!isFull()){
top++; // TOP DI NAIKAN
ar[top] = angka; // ANGKA DI ISIKAN
System.out.println("Angka " + angka + " berhasil di push");
}else{
System.out.println("Stack penuh");
}
}
Logikanya cek dulu apakah sudah penuh , jika belum maka kita masukan data dan jika sudah penuh katakan stack sudah penuh. variabel top di atas di gunakan sebagai index , top akan di incrementkan jika mau memasukan data baru . Jadi data yang pertama di masukan akan di timpa oleh data yang kedua , begitu seterusnya .
Nah kan tu di critanya OSO mau ambil bukunya lagi . Seperti caranya si oso kita ambil dari yang paling atas . Kalo di array berarti dari indeks yang paling besar . Namun kita buat dulu variabel top untuk bantuan indeksnya dan letakan di bawah pembuatan array.
int ar [] = new int[10];
int top = -1;
Baru kemudian kita buat prosedur POP.
public void pop(){
if(!isEmpty()){
int indexPop = top;
top--; // TOP DI TURUNKAN
System.out.println("Stack indek " + indexPop + " berhasil di pop");
}else{
System.out.println("Stack kosong");
}
}
Kita cek dulu apakah stack ada isinya atau sudah kosong , jika masih ada isinya bisa kita pop jika sudah kosong kita katakan stack kosong . Lalu decrementkan variabel top .
Untuk menampilkan isi dari stack mudah banget , kita buat prosedur view dengan coding seperti dibawah .
public void view(){
if(!isEmpty()){
System.out.print("Isi stack sekarang : ");
for (int i = 0; i <= top; i++) {
System.out.print( ar[i] + " ");
}
System.out.println("");
}else{
System.out.println("Stack kosong");
}
}
Jadi kita tampilkan isi array dari indeks 0 sampai top . Jangan lupa untuk menampilkannya kita buat juga mainnya .
public static void main(String [] suroso){
KelasStack ks = new KelasStack();
ks.push(3);
ks.view();
ks.push(5);
ks.push(6);
ks.view();
ks.pop();
}
Maka jika di run hasilnya akan seperti ini .
Kekurangan dari coding di atas kita hanya memanipulasi tampilan di view , nilai yang ada di dalam array tidak kita hapus , hanya kita sembunyikan . Sebaiknya kita gunakan list bukan menggunakan array . Masih banyak logika untuk membuat stack , jadi terus belajar ya .
Baca juga Queue atau Antrian yang ada dalam java dengan konsep FIFO , kembalikan dari LIFO . Nantikan postingan berikutnya hanya ada di tutorialjava-mudah.blogspot.com untuk sedikit ilmu tentang java.
Download coding materi di bawah ini
DOWNLOAD
Baca juga Queue atau Antrian yang ada dalam java dengan konsep FIFO , kembalikan dari LIFO . Nantikan postingan berikutnya hanya ada di tutorialjava-mudah.blogspot.com untuk sedikit ilmu tentang java.
Download coding materi di bawah ini
DOWNLOAD
Terimakasih.. sangat bermanfaat..
ReplyDeleteKunjungi my blog
sip min, makasih
ReplyDeletepapan penjepit pcb