Monday, May 26, 2014

Collection queue dalam bahasa pemograman C#

Pada artikel sebelumnya saya telah membahas tentang collection list, selanjutnya pada artikel kali ini saya akan membahas tentang collection queue. Queue jika diartikan ke dalam bahasa Indonesia yaitu antrian. sesuai dengan pengertiannya, collection queue bersifat seperti sebuah antrian, dimana data yang pertama kali masuk akan keluar / di proses lebih awal.
Misalkalkan saya mempunyai 5 data antrian dengan urutan dari kiri ke kanan 4, 6, 7, 2, 1, maka jika dilakukan pengambilan data, data yang akan keluar pertama adalah 4, kemudian 6, 7, dan seterusnya.

Supaya lebih jelas, perhatikan contoh program queue berikut :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ContohQueue
{
    class Program
    {
        static void Main(string[] args)
        {
            Queue<int> myQueue = new Queue<int>();

            //Menambahkan elemen myQueue
            myQueue.Enqueue(5);
            myQueue.Enqueue(8);
            myQueue.Enqueue(4);
            myQueue.Enqueue(1);
            myQueue.Enqueue(2);

            //Menampilkan data myQueue
            Console.WriteLine("Isi myQueue :");
            foreach (int i in myQueue)
            {
                Console.WriteLine("{0}", i);
            }
            Console.WriteLine();

            //Melakukan pengambilan data elemen myQueue
            myQueue.Dequeue();

            //Menampilkan data myQueue setelah dilakukan pengambilan data
            Console.WriteLine("Isi myQueue :");
            foreach (int i in myQueue)
            {
                Console.WriteLine("{0}", i);
            }
            Console.WriteLine();

            //Melakukan pengambilan data lagi
            myQueue.Dequeue();

            //Menampilkan data myQueue setelah dilakukan pengambilan data
            Console.WriteLine("Isi myQueue :");
            foreach (int i in myQueue)
            {
                Console.WriteLine("{0}", i);
            }
            Console.WriteLine();
        }
    }
}
Jika program di jalankan maka hasilnya adalah sebagai berikut :


Pada contoh program di atas, data dimasukan secara berurutan yaitu 5, 8, 4, 1, 2, jadi ketika dilakukan pengambilan data, angka yang pertama kali di inputkan yaitu 5 akan hilang, kemudian jika dilakukan pengambilan data lagi, angka yang kedua di inputkan yaitu 8 kan hilang.

Sebenarnya method Dequeue mengembalikan sebuah nilai, yaitu nilai yang diambil dari elemen myQueue. Untuk membuktikannya perhatikan contoh program berikut ini :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ContohQueue
{
    class Program
    {
        static void Main(string[] args)
        {
            int dataOut;
            Queue<int> myQueue = new Queue<int>();

            //Menambahkan elemen myQueue
            myQueue.Enqueue(5);
            myQueue.Enqueue(8);
            myQueue.Enqueue(4);
            myQueue.Enqueue(1);
            myQueue.Enqueue(2);

            //Menampilkan data myQueue
            Console.WriteLine("Isi myQueue :");
            foreach (int i in myQueue)
            {
                Console.WriteLine("{0}", i);
            }
            Console.WriteLine();

            //Melakukan pengambilan data elemen myQueue
            dataOut = myQueue.Dequeue();

            //Menampilkan data myQueue setelah dilakukan pengambilan data
            Console.WriteLine("Isi myQueue :");
            foreach (int i in myQueue)
            {
                Console.WriteLine("{0}", i);
            }
            Console.WriteLine();

            Console.WriteLine("Data yang di ambil : {0}", dataOut);
        }
    }
}
Hasilnya adalah :