Politeknik Tanah Laut Teknik Informatika Semester 2

Senin, 11 Maret 2019

CodeBlocks C++ : Stacks

By Maret 11, 2019
“Stacks”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Stacks". Silahkan juga lihat Pointer pada postingan sebelumnya.

  • Stacks
Tumpukan adalah jenis wadah yang dirancang khusus untuk beroperasi dalam konteks LIFO (last-in first-out), di mana elemen baru ditambahkan di satu ujung dan (atas) elemen dihapus dari ujung itu saja.
tumpukan diimplementasikan sebagai interaksi wadah, yang merupakan kelas dimana digunakan objek yang diletakkan dari kelas kosong tertentu sebagai wadah yang mendasarinya, menyediakan serangkaian fungsi anggota khusus untuk mengakses elemen-elemennya. Elemen didorong/muncul dari "belakang" wadah tertentu, yang dikenal sebagai bagian atas tumpukan.
  • Operasional Stack
Fungsi yang terkait dengan tumpukan adalah:
  1. bersih() - Mengembalikan tumpukan menjadi kosong Contoh:
    void bersih()
    {
        if (s.top == -1)
        {
            cout << "\nTumpukan masih kosong!\n";
            getch();
        }
        else
        {
            s.top = -1;
            cout << "\nTumpukan berhasil dibersihkan!\n";
            getch();
        }
    }
  2. tampil() - Menampilkan tumpukan yang ada Contoh:
    void tampil()
    {
        if (s.top == -1)
        {
            cout << "\nTidak ada tumpukan!\n";
            getch();
        }
        else
        {
            for (int a = s.top; a >= 0; a--)
            {
                cout << "\nTumpukan ke " << a+1 << " " << "= " << s.bot[a];
            }
            getch();
        }
    }
  3. nambah() - Menambahkan elemen Contoh:
    void nambah(int x)
    {
        if (s.top == max)
        {
            cout << "\nTumpukan penuh!\n";
            getch();
        }
        else
        {
            s.top++;
            s.bot[s.top] = x;
            cout << "\nTumpukan berhasil diisi!\n";
            getch();
        }
    }
  4. kurang() - Menghapus elemen paling atas tumpukan Contoh:
    void kurang()
    {
        if (s.top == -1)
        {
            cout << "\nTumpukan kosong!\n";
            getch();
        }
        else
        {
            s.top-1;
            cout << "\nTumpukan berhasil dihapus!\n";
            getch();
        }
    }
  • Contoh Program
#include <iostream>
#include <conio.h>
#include <windows.h>
#define max 4 // 0 -> 4 = 5 buah tempat stack

using namespace std;

struct numpuk
{
    int top;
    int bot[max];
}s;

void start()
{
    s.top = -1;
}

void nambah(int x)
{
    if (s.top == max)
    {
        cout << "\nTumpukan penuh!\n";
        getch();
    }
    else
    {
        s.top++;
        s.bot[s.top] = x;
        cout << "\nTumpukan berhasil diisi!\n";
        getch();
    }
}

void kurang()
{
    if (s.top == -1)
    {
        cout << "\nTumpukan kosong!\n";
        getch();
    }
    else
    {
        s.top-1;
        cout << "\nTumpukan berhasil dihapus!\n";
        getch();
    }
}

void tampil()
{
    if (s.top == -1)
    {
        cout << "\nTidak ada tumpukan!\n";
        getch();
    }
    else
    {
        for (int a = s.top; a >= 0; a--)
        {
            cout << "\nTumpukan ke " << a+1 << " " << "= " << s.bot[a];
        }
        getch();
    }
}

void bersih()
{
    if (s.top == -1)
    {
        cout << "\nTumpukan masih kosong!\n";
        getch();
    }
    else
    {
        s.top = -1;
        cout << "\nTumpukan berhasil dibersihkan!\n";
        getch();
    }
}

main ()
{
    int x;
    char pil;

    start();
    ulang:
    system("cls");
    cout << "1. Tambah\n2. Kurang\n3. Tampil\n4. Format\n5. Keluar\nPilihan : ";
    cin >> pil;

    switch (pil)
    {
    case '1':
        cout << "\nMasukan Value : ";
        cin >> x;
        nambah(x);
        break;
    case '2':
        kurang();
        break;
    case '3':
        tampil();
        break;
    case '4':
        bersih();
        break;
    case '5':
        return 0;
        break;
    default:
        cout << "\nSalah input!\n";
        getch();
        goto ulang;
        break;
    }
}

Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.

0 komentar:

Posting Komentar