laporan praktikum resmi stack

Upload: giseyaki

Post on 03-Jun-2018

251 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 Laporan Praktikum Resmi Stack

    1/19

    LAPORAN PRAKTIKUM RESMI

    STACK

    Disusun oleh :

    Albert Sugihartono

    201301018

    Dosen pengampu :

    Yosef Murya Kusuma Ardhana.S.T., M.Kom

    JURUSAN SISTEM INFORMASI

    SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO

    PURWOKERTO

    2014

  • 8/12/2019 Laporan Praktikum Resmi Stack

    2/19

    2

    BAB I

    TEORI DASAR

    1.

    Pengantar

    Stack merupakan bentuk khusus dari struktur data, dimana node yang ditambahkan ke dalam

    list hanya pada kepalanya atau dengan kata lain prinsip pengolahannya adalah last-in first-

    out (LIFO). Ada dua operasi utama yaitu push(memasukkan node ke dalam stack) dan

    pop(mengambil node dari stack). Operasi lainnya adalah ISEMPTY, ISFULL, dan CLEAR.

    Untuk menentukan jumlah maksimum elemen stack, dapat dideklarasikan terlebih dahulu

    preprocessor define. Sebagai contoh adalah define MAX_STACK. Contoh

    pendeklarasiannya:

    TOP of STACK merupakan elemen teratas dalam stack. Jika TOP of STACK terus bergerak

    hingga mencapai MAX_STACK, maka stack akan penuh.

    Elemen pada stack diindikasikan oleh indeks yaitu dari indeks 0 hingga indeks ke-n. Hal ini

    dikarenakan sistem stack menggunakan fungsi dari array.

    #define MAX_STACK 10

  • 8/12/2019 Laporan Praktikum Resmi Stack

    3/19

    3

    BAB II

    PENJELASAN PROGRAM

    Pada penjelasan program bab ini dijelaskan mengenai bagaimana melakukan pemrograman

    C++ program stack.cpp, push.cpp dan pop.cpp

    Listing program stack.cpp

    /*

    * stack.cpp

    *

    * Created on: May 20, 2014

    * Author: STIKOM109

    */

    #include

    #include

    #define MAX_STACK 10

    using namespace std;

    struct STACK

    {

    int top;

    char data[10][10];

    };STACK tumpuk;

    void inisialisasi()

    {

    tumpuk.top=-1;}

    int IsFull()

    {

    if(tumpuk.top==MAX_STACK-1)

    return 1;

    else

    return 0;

    }

    int IsEmpty()

    {

    if(tumpuk.top==-1)

    return 1;

    else

    return 0;

    }

    void Push(char d[10])

  • 8/12/2019 Laporan Praktikum Resmi Stack

    4/19

    4

    {

    tumpuk.top++;

    strcpy(tumpuk.data[tumpuk.top],d);

    }

    void Pop()

    {cout

  • 8/12/2019 Laporan Praktikum Resmi Stack

    5/19

    5

    else

    cout

  • 8/12/2019 Laporan Praktikum Resmi Stack

    6/19

    6

    stack adalah 10. Program menggunakan preprocessor #include yang digunakan

    untuk operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk

    mengcopy string yang satu ke string lainnya.

    2. Pada program dideklarasikan struct STACK yang berisi member top untuk stack mencapaitop of stack dan data untuk memasukkan data stack.

    3. Stack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belum dimanapersamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah Top of stack =

    max_stack 1; dimana apabila bernilai TRUE maka stack penuh jika tidak maka sebaliknya

    stack belum penuh.

    4. Program menggunakan fungsi perulangan do-while sehingga jika user belum memilih pilihankeluar, maka user dapat melakukan salah satu operasi stack tersebut. Untuk pemilihan operasi

    stack, digunakan fungsi pemilihan switch dengan variabel pil sebagai acuan case (1-5). Case

    pertama merupakan case untuk operasi Push dengan menggunakan prosedur IsFull untuk

    memberi peringatan jika stack yang di push elemennya telah mencapai batas maksimumnya,

    dan memanggil prosedur Push. Case kedua digunakan untuk operasi pop. Pada operasi pop,

    digunakan decrement pada top (tumpuk.top--) dengan syarat IsEmpty bukan 1. Case ketiga

    digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur

    TampilStack();. Case keempat digunakan untuk operasi Clear yang memanggil prosedurClear dimana top of stack diassignment sama dengan -1 yang mengindikasikan bahwa stack

    sudah kosong.

    Tugas Praktikum

    Pada tugas praktikum ini merupakan program operasi dalam stack yaitu push dan pop dengan

    user dapat menentukan jumlah maksimum elemen stack yang dapat dimasukkan.

    Program praktikum push.cpp

    /*

    * push.cpp

    *

    * Created on: May 25, 2014

  • 8/12/2019 Laporan Praktikum Resmi Stack

    7/19

    7

    * Author: ALBERT

    */

    #include

    #include

    using namespace std;

    struct STACK

    {

    int top;

    char data[10][10];

    int MAX_STACK;

    }; STACK tumpuk;

    void insialisasi()

    {

    tumpuk.top=-1;

    }

    int IsFull()

    {

    if(tumpuk.top == tumpuk.MAX_STACK-1)

    return 1;

    else

    return 0;

    }

    int IsEmpty()

    {

    if(tumpuk.top == -1)

    return 1;

    else

  • 8/12/2019 Laporan Praktikum Resmi Stack

    8/19

    8

    return 0;

    }

    int MAX_STACK(int n)

    {

    tumpuk.MAX_STACK=n;

    return 0;

    }

    void Push(char d[10])

    {

    tumpuk.top++;

    strcpy(tumpuk.data[tumpuk.top],d);

    }

    void TampilStack()

    {

    for(int i=tumpuk.top;i>=0;i--)

    {

    cout

  • 8/12/2019 Laporan Praktikum Resmi Stack

    9/19

    9

    cout

  • 8/12/2019 Laporan Praktikum Resmi Stack

    10/19

    10

    Output program push.cpp

    Penjelasan program push.cpp

    Berikut penjelasan dari program push.cpp :

    1. Pada program push.cpp, user dapat mengset berapa jumlah maksimum elemen stack yangmungkin dimasukkan. Maka dari itu, MAX_STACK tidak dideklarasikan dengan

    preprocessor #define melainkan dimasukkan sebagai member ke dalam struct STACK

    sehingga MAX_STACK sebagai member struct dapat diakses oleh user dalam main

    program. Program menggunakan preprocessor #include yang digunakan untuk

    operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk

    mengcopy string yang satu ke string lainnya.

    2. Stack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belumdimana persamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah

    Top of stack = max_stack 1; dimana apabila bernilai TRUE maka stack penuh jika tidak

    maka sebaliknya stack belum penuh.

    3. Agar MAX_STACK dapat didefinisikan valuenya, maka MAX_STACK dibuat ke dalamsebuah fungsi yaitu int MAX_STACK(int n) dimana n nantinya merupakan variable untuk

    menapung value jumlah maksimum stack.

  • 8/12/2019 Laporan Praktikum Resmi Stack

    11/19

    11

    4. Program menggunakan fungsi perulangan do-while sehingga jika user belum memilihpilihan keluar, maka user dapat melakukan salah satu operasi stack tersebut. User pertama

    kali akan diminta untuk mengset jumlah maksimum stack. Pemasukkan ini dilakukan di

    luar loop do-while agar proses pengesetan maksimum stack tidak berulang-ulang. Value

    untuk maksimum stack diindikasikan oleh variabel x.Untuk pemilihan operasi stack,

    digunakan fungsi pemilihan switch dengan variabel pilihan sebagai acuan case (1-3). Case

    pertama merupakan operasi Push dengan menggunakan prosedur IsFull untuk memberi

    peringatan jika stack yang di push elemennya telah mencapai batas maksimumnya, dan

    memanggil prosedur Push. Pada case ini pula, fungsi MAX_STACK dipanggil untuk

    memberikan batas maksimum stack yang telah dimasukkan oleh user sebelumnya. Case

    kedua digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur

    TampilStack();. Case ketiga digunakan untuk keluar dimana digunakan untuk

    menghentikan proses looping do-while.

    Program praktikum pop.cpp

    /*

    * pop.cpp

    *

    * Created on: May 25, 2014

    * Author: AAT

    */

    #include

    #include

    using namespace std;

    struct STACK

    {

  • 8/12/2019 Laporan Praktikum Resmi Stack

    12/19

    12

    int top;

    char data[10][10];

    int MAX_STACK;

    }; STACK tumpuk;

    void insialisasi()

    {

    tumpuk.top=-1;

    }

    int IsFull()

    {

    if(tumpuk.top == tumpuk.MAX_STACK-1)

    return 1;

    else

    return 0;

    }

    int IsEmpty()

    {

    if(tumpuk.top == -1)

    return 1;

    else

    return 0;

    }

    int MAX_STACK(int x)

    {

    tumpuk.MAX_STACK=x;

  • 8/12/2019 Laporan Praktikum Resmi Stack

    13/19

    13

    return 0;

    }

    void Push(char d[10])

    {

    tumpuk.top++;

    strcpy(tumpuk.data[tumpuk.top],d);

    }

    void Pop()

    {

    cout

  • 8/12/2019 Laporan Praktikum Resmi Stack

    14/19

    14

    do

    {

    cout

  • 8/12/2019 Laporan Praktikum Resmi Stack

    15/19

    15

    cout

  • 8/12/2019 Laporan Praktikum Resmi Stack

    16/19

    16

    Penjelasan program pop.cpp

    Berikut penjelasan dari program pop.cpp:

    1. Pada program push.cpp, user dapat mengset berapa jumlah maksimum elemen stack yangmungkin dimasukkan. Maka dari itu, MAX_STACK tidak dideklarasikan dengan

    preprocessor #define melainkan dimasukkan sebagai member ke dalam struct STACK

    sehingga MAX_STACK sebagai member struct dapat diakses oleh user dalam main

    program. Program menggunakan preprocessor #include yang digunakan untuk

    operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk

    mengcopy string yang satu ke string lainnya.

    2. Stack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belumdimana persamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah

    Top of stack = max_stack 1; dimana apabila bernilai TRUE maka stack penuh jika tidak

    maka sebaliknya stack belum penuh.

    3. Agar MAX_STACK dapat didefinisikan valuenya, maka MAX_STACK dibuat ke dalamsebuah fungsi yaitu int MAX_STACK(int n) dimana n nantinya merupakan variable untuk

    menapung value jumlah maksimum stack.

    5. Program menggunakan fungsi perulangan do-while sehingga jika user belum memilih pilihankeluar, maka user dapat melakukan salah satu operasi stack tersebut. User pertama kali akan

    diminta untuk mengset jumlah maksimum stack. Pemasukkan ini dilakukan di luar loop do-

    while agar proses pengesetan maksimum stack tidak berulang-ulang. Value untuk maksimum

    stack diindikasikan oleh variabel x.Untuk pemilihan operasi stack, digunakan fungsi

    pemilihan switch dengan variabel pilihan sebagai acuan case (1-5). Case pertama merupakan

  • 8/12/2019 Laporan Praktikum Resmi Stack

    17/19

    17

    operasi Push dengan menggunakan prosedur IsFull untuk memberi peringatan jika stack yang

    di push elemennya telah mencapai batas maksimumnya, dan memanggil prosedur Push. Pada

    case ini pula, fungsi MAX_STACK dipanggil untuk memberikan batas maksimum stack

    yang telah dimasukkan oleh user sebelumnya. Case kedua digunakan untuk operasi pop. Pada

    operasi pop, digunakan decrement pada top (tumpuk.top--) dengan syarat IsEmpty bukan 1.

    Case ketiga digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur

    TampilStack();. Case keempat digunakan untuk operasi Clear yang memanggil prosedur

    Clear dimana top of stack diassignment sama dengan -1 yang mengindikasikan bahwa stack

    sudah kosong.Untuk case ke lima digunakan untuk keluar yang mana menghentikan proses

    loop do-while.

  • 8/12/2019 Laporan Praktikum Resmi Stack

    18/19

    18

    BAB III

    KESIMPULAN

    Kesimpulan akan apa yang dapat dipelajari dalam praktikum ini adalah bahwa bahwa stackmerupakan bentuk khusus dari linear list yang pemasukkan dan penghapusan elemennya hanya

    dapat dilakukan pada satu posisi yaitu last list. Prinsip stack yaitu last-in first-outatau disingkat

    LIFO. Stack memiliki beberapa operasi yaitu IsEmpty yang digunakan untuk memeriksa apakah

    stack kosong, IsFull yang digunakan untuk memeriksa apakah stack sudah penuh, Pop digunakan

    untuk menghapus elemen paling atas (top), Push untuk menyisipkan elemen stack dan Clear

    untuk mengosongkan stack. Jumlah maksimum stack umumnya dideklarasikan terlebih dahulu

    dengan menggunakan preprocessor #define untuk memberikan nilai absolut. Namun, ada kalanya

    sebuah stack dapat ditentukan batas maksimumnya ditentukan oleh user dengan memasukkan

    MAX_STACK ke dalam struct dan membuat sebuah fungsi untuknya sehingga MAX_STACK

    dapat diakses di dalam main program. Untuk stack, memiliki persamaan yang digunakan untuk

    menentukan apakah sebuah stack sudah penuh atau belum yaitu dengan Top of stack =

    Max_stack 1 yang mana jika bernilai TRUE maka stack full.

  • 8/12/2019 Laporan Praktikum Resmi Stack

    19/19

    19

    Sumber Referensi

    Kristanto, Andi. 2003. Struktur Data Dengan C++

    Yogyakarta : Graha Ilmu

    Ardhana. YM Kusuma. 2013. Struktur Data Dalam Ilustrasi Eclipse Indigo C++Yogyakarta : CAPS (Center of Academic Publishing Service)