Wednesday 10 April 2013

Laporan Praktikum Algoritma Modul 8


 LAPORAN PRAKTIKUM
ALGORITMA PEMROGRAMAN
DAN STRUKTUR DATA
MODUL 8




Disusun oleh :
Nama          :  Ricky Rudianto
NIM            :  2012081127
Kelas           :  Teknik Informatika A



LABORATORIUM KOMPUTER
FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
2012
MODUL 8

TUMPUKAN (STACK)

“PEMBAHASAN

Dasar Teori
STACK bisa diartikan sebagai suatu kumpulanyang seolah-olah diletakan di atas data yang lain. Satu hal yang perlu diingat bahwa kita bisa menambah (menyisipkan) data dan mengambil (manghapus) data melalui ujug 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.
Stack adalah suatu susunan koleksi data dimana data dappat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang disebut dengan top of stack. “Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack”.
Ada beberapa operasi dasar dalam stack, yaitu operasi menyisipkan data (push), operasi menghapus data (pop) dan lainnya. Berikut ini beberapa operasi stack :
·      Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
·      Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
·      Clear : digunakan untuk mengosongkan stack
·      IsEmpety : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
·      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
·      Pada mulanya isi top dengan -1, karena array dalam bahasa C dimulai dari 0, yang berarti bahwa data stack adalah KOSONG!
·      Top adalah suatu variabel penanda dalam stack yang menunjukan elemen teratas dalam stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK yang menyebabkan stack PENUH!
·      Bentuk umum :
void inisialisasi ( )
{
       Tumpuk.top = -1;
}
Fungsi IsFull
·      Untuk memeriksa apakah stack sudah penuh?
·      Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK -1 maka full, jika belum (lebih kecil dari MAX_STACK-1) maka belum full
·      Bentuk umum :
int isFull ( )
{
       if (tumpuk.top == MAX_STACK – 1)
       return 1;
       else
       return 0;

Fungsi Pop
·      Untuk mengambil data stack yang terletak paling atas (data yang ditunjuk oleh TOP)
·      Tampilkan terlebih dahulunilai elemen teratas stack dengan mengakses indeksnya sesuai dengan top of stacknya, baru dilakukan di-decrement nilai top of stacknya sehingga jumlah elemen stack berkurang
·      Bentuk umum :
void Pop ( )
{
       printf(“data terambil=%s\n”, tumpuk.data[tumpuk.top] );
       tumpuk.top--;
}


PRAKTIKUM
Praktikum 1
1.    Tulis source kode berikut ini :
#include <conio.h>
#include <string.h>
main( )
{
       char * str = “ LIKU LIKU LAKI LAKI TAK LAKU LAKU “
      
       cprintf(“%s\r\n”, strrev(str));
       cprintf(“%s]r]n”, str);
}

2.    Penulisan terhadap bahasa C++ :
3.    Dari sintaks diatas setelah dikompile, maka hasilnya adalah sebagai berikut :
Praktikum 2
1.    Tulis source code berikut ini :
#include <stdio.h>
#define N 20
main ( )
{
       int nilai [N], i, jml;
       printf(“Jmlh maksimal tumpukan (<=20) = “);
       scanf(“%d”, &jml);
       for(i=0; i <= jml; i++)
       {
                   if (i>=jml)
                               printf(“Tumpukan penuh”);
                   else
                   {
                               printf(“data ke-%d=”, i+1); scanf(“%d”, &nilai[i]);
                   }
       }
       for(i=0; i<jml; i++);
       {
                   printf(“\n data ke-%d = %d”, i+1, nilai [i]);
       }
       return = 0;
}
2.    Penulisan dengan bahasa C++ :


3.    Dari sintaks diatas setelah dikompile, maka hasilnya adalah sebagai berikut :

TUGAS MODUL 8

Soal !
1.    Buatlah program tumpukan (stack) untuk membalik kata dengan tampilan sebagai berikut :
Masukan kata : S T A C K
Setelah dibalik : K C A T S
2.    Buatlah program kalkulator SCIENTIFIC
·      Misalkan operasi : 3 + 2 * 5
·      Operasi diatas tersebut notasi infiks, notasi infiks tersebut harus diubah lebih dahulu menjadi notasi postfiks
·      3 + 2 * 5 notasi postfiksnya adalah 3 2 5 * +







Penyelesaian !
No. 1
1.    Tulis source code berikut :
2.    Setelah dikompile, maka hasilnya sebagai berikut :
No. 2
1.    Tulis source code berikut :
2.    Setelah dikompile, maka hasilnya sebagai berikut :

KESIMPULAN

STACK bisa diartikan sebagai suatu kumpulanyang seolah-olah diletakan di atas data yang lain. Satu hal yang perlu diingat bahwa kita bisa menambah (menyisipkan) data dan mengambil (manghapus) data melalui ujug 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.
Stack adalah suatu susunan koleksi data dimana data dappat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang disebut dengan top of stack. “Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack”.
Ada beberapa operasi dasar dalam stack, yaitu operasi menyisipkan data (push), operasi menghapus data (pop) dan lainnya. Berikut ini beberapa operasi stack :
• Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
• Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
• Clear : digunakan untuk mengosongkan stack
• IsEmpety : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
• IsFull : fungsi yang digunakan  untuk mengecek apakah stack sudah penuh.

No comments:

Post a Comment