Coding Stack Array Dalam Bahasa Java
Stack dalam bahasa indonesia yakni tumpukan . Prinsip dari tumpukan yakni yang terakhir kali di masukan akan menjadi yang pertama kali di keluarkan . Dalam bahasa pemrograman di sebut dengan konsep LIFO abreviasi dari Last In First Out .
Apa yang harus di pahami sebelum masuk bahan ini ????
Sebelumnya kawan-kawan harus mengerti dulu dasar-dasar dari pemrograman java biar tidak kesulitan dalam memahaminya . Ya paling tidak harus mengerti hal-hal berikut :
Nah kalo sudah aku akan melanjutkannya lagi .
Sekilas dongeng oso ...
Katanya mau mencar ilmu stack kok malah dongeng sih ??? Tenang kita baca crita dulu biar nggak tegang .
si OSO mempunyai banyak buku di mejanya nah ia binging mau di taruh dimana bukunya alasannya yakni sudah nggak ada kawasan lagi . Akhirnya sesudah berfikir agak usang ia punya pandangan gres untuk memasukannay ke dalam kardus . Dia mempersiapkan kardus yang agak besar dan kemudian menaruhnya di bawah . Kemudian ia meletakan buku pertamanya , kemudian di ikuti buku kedua di atasnya buku pertama dan begitu seterusnya hingga kardus penuh .
Nah suatu hari si OSO mau baca buku yang ada di dalam kardus , ia kesannya membuka kardus dan mengambil buku yang paling atas . Ternyata bukan buku yang di carinya , kemudian ia mengambil buku lagi di bawahnya , ternyata bukan buku yang di carinya juga . Setelah menggambil satu demi satu buku ia kesannya menemukanya .
Cerita di atas yakni sebuah ilustrasi dari stack , kini akan kita terapkan di dalam coding .
ayo mulai coding ....
Saya sudah menciptakan kelas berjulukan kelasStack . Kemudian sama menyerupai ceritanya si OSO kita harus siapkan dulu kardusnya , kita pakai array sebagai kardusnya . Kita buat array tipe data integer dengan batas 10 menyerupai 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 menciptakan fungsi isEmpty , fungsi ini akan mengembalikan nilai TRUE kalau kosong dan FALSE kalau 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 kalau sudah penuh dan FALSE kalau belum penuh . Setelah itu kita masukkan bukunya (data). Disini aku menciptakan sebuah mekanisme untuk memasukan datanya dan aku beri nama mekanisme 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 , kalau belum maka kita masukan data dan kalau sudah penuh katakan stack sudah penuh. variabel top di atas di gunakan sebagai index , top akan di incrementkan kalau mau memasukan data gres . Makara 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 dukungan indeksnya dan letakan di bawah pembuatan array.
int ar [] = new int[10]; int top = -1;
Baru kemudian kita buat mekanisme 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 , kalau masih ada isinya dapat kita pop kalau sudah kosong kita katakan stack kosong . Lalu decrementkan variabel top . Untuk menampilkan isi dari stack gampang banget , kita buat mekanisme view dengan coding menyerupai dibawah .
public void view(){ if(!isEmpty()){ System.out.print("Isi stack kini : "); for (int i = 0; i <= top; i++) { System.out.print( ar[i] + " "); } System.out.println(""); }else{ System.out.println("Stack kosong"); } }
Makara kita tampilkan isi array dari indeks 0 hingga 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 kalau di run hasilnya akan menyerupai 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 memakai array . Masih banyak logika untuk menciptakan stack , jadi terus mencar ilmu 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 wacana java.
Download coding bahan 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 wacana java.
Download coding bahan di bawah ini
DOWNLOAD
praktik2.java:48: error: cannot find symbol
ReplyDeleteKelasStack ks = new KelasStack();
^
symbol: class KelasStack
location: class praktik2
praktik2.java:48: error: cannot find symbol
KelasStack ks = new KelasStack();
^
symbol: class KelasStack
location: class praktik2
2 errors
Itu kenapa ya yang KelasStack ks = new KelasStack(); ??