Setelah kemarin posting tentang penerapan algoritma bubble sort pada C#, kali ini ingin posting tentang penerapan algoritma struktur data, yaitu stack dan queue. Stack dan queue adalah materi yang paling dasar dalam materi struktur data. Stack bisa diartikan dengan tumpukan dan queue berarti antrian. Kedua algoritma inilah yang menjadi acuan dasar bukan hanya untuk sebuah program aplikasi tetapi juga sebuah sistem operasi. Stack bisa digambarkan seperti sebuah batu yang dimasukkan ke dalam toples, dan ketika akan di ekseskusi atau diambil maka batu yang paling terakhir(teratas) yang akan diambil terlebih dahulu. Sehingga data yang pertama kali dimasukan berada pada posisi terakhir, dan data yang dimasukan terakhir justru akan berada pada posisi yang pertama. Proses ini biasanya disebut dengan LIFO, atau Last In First Out. Sedangkan queue bisa digambarkan seperti antrian orang di sebuah loket di penjualan tiket. Yang akan dilayani terlebih dahulu, ialah pengunjung yang berada di baris terdepan atau dengan kata lain yang masuk pertama ke dalam antrian. Sehingga data yang pertama kali dimasukan berada pada posisi pertama, dan data yang dimasukan terakhir juga akan berada pada posisi yang terakhir. Proses ini biasanya disebut dengan FIFO, atau First In First Out. Kira-kira ilustrasinya seperti gambar di bawah ini :
Implementasinya pada C# juga tidak terlalu sulit, karena pada C# sudah terdapat class Stack dan Queue yang siap untuk dipakai. Penggunaan class Stack dan Queue, kira-kira seperti di bawah ini, dimana saya deklarasikan objek Stack dan Queue sebagai variabel global terlebih dahulu :
public Stack isi = new Stack(); public Queue isi2 = new Queue();
Kemudian, untuk memasukkan data ke dalam stack, saya menggunakan fungsi Push. Sedangkan untuk memasukkan data ke dalam queue, saya menggunakan fungsi Enqueue :
if (isi.Count>5 || isi2.Count>5) { MessageBox.Show("Data penuh, hapus dulu data sebelumnya..!!!"); } else{ label1.Text = ""; label2.Text = ""; isi.Push(inData.Text.ToString()); isi2.Enqueue(inData.Text.ToString()); foreach(string d in isi) { label1.Text += d.ToString()+"\n"; } foreach(string q in isi2) { label2.Text += q.ToString()+"\n"; } inData.Text=""; }
Dan yang terakhir ketika data akan diambil, maka untuk stack kita menggunakan fungsi Pop. Sedangkan untuk queue kita menggunakan fungsi Dequeue :
if (isi.Count==0 || isi2.Count==0) { MessageBox.Show("Tidak ada data yang bisa dihapus...!!!"); } else{ label1.Text = ""; label2.Text = ""; string h_s = (string) isi.Pop(); string h_q = (string) isi2.Dequeue(); foreach(string d in isi) { label1.Text += d.ToString()+"\n"; } foreach(string q in isi2) { label2.Text += q.ToString()+"\n"; } }
Ternyata mudah kan penerapan stack dan queue pada C#?. Jika masih ada yang bingung, di bawah postingan ini sudah saya sediakan untuk mendownload aplikasi jadi + source code-nya. Mudah-mudahan bisa membantu rekan-rekan yang lagi dipusingkan dengan materi struktur data, yaitu stack dan queue.
Happy Blogging and Keep Coding
Cheerrrss….!!!!
wuisss.. mantaph! C# bro!
the picture nice 🙂
i like it….
kok hslnya g bs g berbalik kata’a