Langsung ke konten utama

Belajar dan Mengerti STACK pada Bahasa Pemrograman C++

STACK

Stack atau biasanya dikenal sebagai tumpukan adalah struktur data yang menumpuk data sedemikian rupa hingga data menjadi tersusun rapi. Biasanya Stack atau Tumpukan ini bisa kita temukan pada lemari pakaian atau pun tumpukan buku-buku pelajaran dan lain sebagainya. Sifat dari Stack ini adalah LIFO (Last In First Out). Artinya, data terakhir yang dimasukkan akan menjadi top dan data yang berada di top akan keluar lebih dulu karena posisinya yang berada pada posisi top.



Ada beberapa Operasi dari Stack yaitu :
IsFull : Mengecek isi Stack apakah sudah terisi penuh atau belum.
IsEmpty : Mengecek isi Stack apakah sudah dalam keadaan kosong atau belum.
Push : Untuk menambahkan isi Stack yang berada pada posisi paling atas.
Pop : Untuk mengeluarkan isi Stack yang berada pada posisi paling atas.
Print : Untuk mencetak hasil dari Stack/mencetak isi dari Stack.
Source Code Stack
Berikut ini adalah source code atau syntax program dari Stack pada bahasa C++
#include <string>
#include <iostream>

using namespace std;

int top = -1;
char stack[128]; // secara program, jika stack sudah berisi lebih dari 128 item, ERROR.
char x;

void push()
{
    cout << "Masukkan satu karakter ";
    cin >> x;

    top++;
    stack[top] = x;

    cin.clear();
    cin.ignore(1, '\n');
}

void pop()
{
    if(top < 0)
    {
        cout << "Stack kosong" << endl;
        return;
    }

    x = stack[top];
    top--;

    cout << "Karakter yang terakhir masuk adalah " << x << endl;
}

void cetak()
{
    if(top < 0)
    {
        cout << "Stack kosong" << endl;
        return;
    }

    int i = 0;
    for(i = top; i >= 0; i--)
        cout << stack[i] << endl;

    // kalo mau dicetak dari yang pertama masuk pakai script dibawah
    //for(i = 0; i <= top; i++)
    //    cout << stack[i] << endl;
}

int main()
{
    string input = "";
    cout << "Pilihan yang dikenal adalah" << endl;
    cout << "\tpush" << endl;
    cout << "\tpop" << endl;
    cout << "\tcetak stack" << endl;
    cout << "\tquit" << endl;

    while(true)
    {
        cout << "Masukkan pilihan: ";

        getline(cin, input);

        if(input == "push")
        {
            push();
        }
        else if(input == "pop")
        {
            pop();
        }
        else if(input == "cetak stack")
        {
            cetak();
        }
        else if(input == "quit")
        {
            break;
        }
        else
        {
            cout << "Perintah '" << input << "' tidak dikenal" << endl;
        }
    }

    cout << "Program Akan berhenti" << endl;
}
Berikut adalah Tampilan dari Stack

Referensi dari Buku Karya Adi Nugroho yang berjudul Algoritma & Struktur Data dengan C#


Komentar

Postingan populer dari blog ini

Belajar dan Mengerti ARRAY pada Bahasa Pemrograman C++

ARRAY Array atau yang biasa dikenal sebagai Larik adalah kelompok peubah tunggal atau multi-dimensi. Larik adalah sejumlah nilai yang memiliki tipe data yang sama yang bias dirujuk menggunakan nama peubah yang sama diikuti indeksnya. Array digunakan untuk menyimpan data dengan tipe data yang sama. Array 1 Dimensi Elemen-elemen array dapat diakses oleh program menggunakan suatu indek tertentu. Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung. Biasanya, array 1 dimensi berbentuk seperti rel kereta api yang memiliki batas akhir. Contoh dari array 1 dimensi adalah  Deklarasi dan Source Code Array 1 Dimensi Cara mendeklarasi Array 1 dimensi adalah Variabel array dideklarasikan dengan mencantumkan tipe data dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Bentuk umum yang biasa digunakan untuk mendeklarasikan array adalah tipe_data_nama_array[ukuran] . Contohnya yaitu : int x[...

Belajar dan Mengerti SELECTION SORT dan INSERTION SORT pada Bahasa Pemrograman C++

SORTING Sorting adalah metode dari Struktur data untuk mengurutkan data dari indeks yang terkecil hingga terbesar atau biasa disebut dengan Ascending ataupun dari besar hingga terkecil atau biasa disebut dengan Descending. Fungsi dari sorting hanyalah mengurutkan data hingga menjadi suatu informasi yang sesuai dengan yang diinginkan oleh sang programmer. Nah, disini saya akan menjelaskan tentang Selection Sorting dan Insertion Sorting. 1. SELECTION SORTING Selection sorting adalah metode pengurutan data dengan cara memilih elemen atau proses kerja dengan memilih elemen terkecil kemudian membandingkan dengan elemen selanjutnya, hingga menemukan data dari yang terkecil hingga terbesar. Prinsip kerja dari Selection Sorting yaitu : • Pengecekan dimulai data ke-1 sampai dengan data ke-n. • Carilah data terkecil dari seluruh data yang ada. • Jika data lebih kecil, maka akan ditukarkan dengan data yang dibandingkan, jika tidak, maka akan dilakukan kembali pembandingan dengan data ...

Belajar dan Mengerti QUEUE pada Bahasa Pemrograman C++

QUEUE Queue atau yang biasa dikenal sebagai antrian adalah struktur data yang membuat nilai yang akan dimasukkan mengantri sebelum akan dipanggil oleh program. Contoh nyata dari antrian adalah saat kita mengantri untuk membeli tiket bioskop, atau tiket konser musik. Atau yang lebih umum lagi yaitu saat kita mengantri untuk membayar belanjaan kita di Supermarket. Queue tidak jauh berbeda dengan Stack, bedanya adalah jika Stack bersifat LIFO(Last In First Out) maka kalau queue bersifat FIFO(First In First Out). Artinya, data yang pertama kali masuk maka data itulah yang akan pertama kalo keluar/dieksekusi. Di dalam queue, ada terdapat beberapa operasi, yaitu : 1. IsEmpty   : Mengecek apakah queue itu kosong atau tidak 2. IsFull   : Mengecek apakah queue itu sudah penuh atau belum 3. Enqueue   : Menambahkan data pada Queue 4. Dequeue   : Mengambil data pada Queue 5. Clear : Menghapus data dalam antrian 6. View : Melihat data dalam antrian Berbeda ...