Rabu, 08 April 2015

Algoritma modul 8

Untitled Document

MODUL 8
TUMPUKAN (STACK)

I. Dasar Teori

Stack bisa diartikan sebagai suatu kumpulan data yang seolah-olah diletakan diatas data yang lain. Satu hal yang perlu diingat bahwa kita bisa menambah (menyisipkan) data dan mengambil (menghapus) data melalui ujung yang sama, yang disebut sebagai ujung atas stack ( top of stack ). Stack mempunyai sifat LIFO ( LAST IN FIRST OUT ) yang terakhir masuk adalah yang pertama keluar.
Ada beberapa operasi dasar dalam stack, yaitu menyisipkan data (push), operasi menghapus data (pop) dan lainnya. Berikut ini beberapa operasi dalam stack :

  1. Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
  2. Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
  3. Clear : digunakan untuk mengosongkan stack
  4. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
  5. IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh.

Bentuk umum STACK
Contoh deklarasi MAX_STACK

#define MAX_STACK 10

Contoh deklarasi STACK dengan struct dan array data

Typedef struct STACK
{
Int top;
Int data [10];
};

Deklarasi/buat variabel dari struct

STACK tumpuk;

Inisialisasi STACK

  1. Pada mulanya isi top dengan -1,karena array dalam bahasa C dimulai dari 0, yang berarti bahwa data dalam stack adalah KOSONG!
  2. Top adalah suatu variabel penanda dalam stack yang menunjukan elemen teratas data stack sekarang.
  3. Bentuk umum :

    void inisialisasi ( )
    {
    tumpuk.top = -1;
    }

Fungsi isFull

  1. Untuk memeriksa apakah stack sudah penuh?
  2. Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK -1 maka full
  3. Bentuk umum :

    Int isFull ( )
    {
    If (tumpuk.top == MAX_STACK -1)
    Return 1;
    Else
    Return 0;
    }

Fungsi isEmpty

  1. Untuk memeriksa apakah data stack masih kosong?
  2. Dengan cara memeriksa top of stack, jika masih -1 maka data stack masih kosong!
  3. Bentuk umum :

    Int isEmpty ( )
    {
    If (tumpuk.top ==  -1)
    Return 1;
    Else
    Return 0;
    }

Fungsi Push

    1. Untuk memasukan data kedalam stack.
    2. Jika data belum penuh,
      - Tambah satu (increment) nilai top of stack lebih dahulu setiap kali ada penambahan kedalam array data stack.
      - Isikan data baru kedalam stack berdasarkan top of stack yang telah di increment sebelumnya.
    3. Jika tidak, outputkan “penuh”
    4. Bentuk umum :

      Void push ( char d[10] )
      {
      Tumpuk.top++;
      Strcpy (tumpuk.data [tumpuk.top].d);
      }

    Fungsi Pop

    1. Untuk mengambil data stack yang terletak paling atas (data yang ditunjuk oleh TOP).
    2. Tampilkan terlebih dahulu nilai elemen teratas stack dengan mengakses indeks sesuai dengan top of stacknya, baru dilakukan di-decrement nilai top of stacknya sehingga jumlah elemen stack berkurang.
    3. Bentuk umum :

      void pop ( )
      {
      Printf(“data terambil = %s\n”, tumpuk.data[tumpuk.top] );
      Tumpuk.top--;
      }

     

    II. Praktikum

    Untuk praktikum, klik aja link di bawah ini :

    https://www.scribd.com/doc/261307836/Praktikum-modul8

     

    III. Tugas Modul 6

    Untuk tugas, klik aja link di bawah ini :

    https://www.scribd.com/doc/261308014/Tugas-Modul8

    Catatan : Jangan asal CoPas aja ya,,,harus dipelajari lebih dalam...!!!hehe...

     

     

     

     

Tidak ada komentar:

Posting Komentar