Anda di halaman 1dari 9

LAPORAN PRAKTIKUM

STRUKTUR DATA

Disusun oleh:
Egy Sandi Pramono
5160411073

Program Studi S-1 Teknik Informatika


Fakultas Bisnis dan Teknologi Informasi
Universitas Teknologi Yogyakarta
Yogyakarta
2017
KATA PENGANTAR

Puji syukur terlebih dahulu dipanjatkan atas kehadirat Allah SWT karena berkat
Rahmat dan Karunia-Nya, sehingga dapat menyelesaikan makalah laporan struktur data
praktek ini. Shalawat beserta salam semoga senantiasa terlimpah curahannya kepada Nabi
Muhammad SAW, kepada keluarganya dan sahabatnya, hingga akhir zaman.
Disadari dalam penyusunan laporan ini masih belum sempurna, maka saran dan kritik
sangat diharapkan demi perbaikan laporan selanjutnya. Akhirnya diharapkan semoga karya
tulis ilmiah ini bermanfaat.

Yogyakarta, 18 Mei 2017

Penulis
BAB I
PENDAHULUAN

A. Latar Belakang Masalah


Pemograman dalam struktur data ada beberapa macam. Salah satunya adalah
pemograman C++. Dalam pemograman ini biasanya menggunakan variable Array, Struct
dan Linked List.

Laporan ini membahas tentang pertemuan sebelumnya yang membahas tentang Stack
yang merupakan bagian dari struktur data yang dikategorikan ke dalam bentuk linear data,
dimana operasi pemasukan maupun pengeluaran data selalu dilakukan pada salah satu
sisinya.

B. Tujuan
Mahasiswa mampu menerapkan konsep stack dengan array.
BAB II
LANDASAN TEORI

A. Stack
1. Pengertian Stack
Stack merupakan bagian dari struktur data yang dikategorikan ke dalam bentuk
linear data, dimana operasi pemasukan maupun pengeluaran data selalu dilakukan pada
salah satu sisinya. Dalam dunia komputer, penggunaan stack (tumpukan) merupakan
suatu hal yang umum digunakan seperti untuk penentuan alamat memory, penempatan
ruang data dan aplikasi lain. Sebagai bagian dari struktur data, aplikasi stack juga
digunakan untuk berbagai macam keperluan seperti pengujian kalimatpalindrome,
penguji tanda kurung (matching parentheses), dan juga berfungsi sebagai konversi dari
notasi infix menjadi notasi postfix.
Pada perhitungan aritmatika, notasi infix adalah notasi yang menempatkan operator
ditengah dua operand sedangkan notasi Postfix adalah notasi yang menempatkan
operator setelah dua operand. Penggunaan notasi infix merupakan hal yang lumrah
digunakan dalam perhitungan aritmatika dibandingkan dengan penggunaan notasi
Postfix, akan tetapi bagi mesin kompilasi notasi Postfixmerupakan notasi yang
digunakan untuk melakukan suatu perhitungan.
Suatu susunan koleksi data dimana data dapat ditambahkan dan dihapus selalu
dilakukan pada bagian akhir data, yang disebut dengan top of stack. Stack bersifat LIFO
(Last In First Out). “Benda yang terakhir masuk ke dalam stack akan menjadi yang
pertama keluar dari stack”.
2. Operasi Stack
a. Push, digunakan untuk menambah item pada stack pada tumpukan paling atas.
b. Pop, digunakan untuk mengambil item pada stack pada tumpukan paling atas.
c. Clear, digunakan untuk mengosongkan stack.
d. IsEmpty, fungsi yang digunakan untuk mengecek apakah stack sudah kosong.
e. IsFull, fungsi yang digunakan untuk mengecek apakah stack sudah penuh.
B. Array
1. Pengertian Array
Array atau larik didefinisikan sebagai pemesanan alokasi memory berurutan.
Definisi ini kurang tepat, karena terjadi kerancuan antara struktur data dan
representasinya. Memang benar array hampir selalu di implementasikan menggunakan
memory berurutan tapi tidak selalu demikian. Semua elemen array bertipe sama. Array
cocok untuk organisasi kumpulan data homogen yang ukuran atau jumlah elemen
maksimumnya telah diketahui dari awal. Homogen adalah bahwa setiap elemen dari
sebuah array tertentu haruslah mempunyai tipe data yang sama.
PEMBAHASAN

A. Push

Jika kita memasukkan nilai yang sesuai dengan instruksi untuk melanjutkan maka
secara terus menerus program akan terus menanyakan hal yang sama.

Sedangkan jika dimasukkan angka yang tidak sesuai dengan instruksi maka program
akan menanyakan pertanyaan yang berbeda sampai akhirnya program berhenti/keluar.
Hal ini karena push berarti menambah item pada stack pada tumpukan paling atas
yang kemudian jika dilanjutkan berarti item sebelumnya tertumpuk/tertindih oleh item
yang baru diinputkan, sehingga item yang baru diinputkan akan menjadi tumpukan paling
atas. Dan kemudian pop yang berarti mengambil item pada stack pada tumpukan paling
atas berarti data yang terakhir diinputkanlah yang akan diambil sebagai output. Dan jika
pop dilanjutkan maka akan mengambil item dibawahnya dan seterusnya.
BAB III
PENUTUP

A. Kesimpulan
Jadi Stack adalah satu struktur data yang terbentuk dari barisan hingga yang terurut
dari satuan data. Pada Stack, penambahan dan penghapusan elemennya hanya dapat
dilakukan pada satu posisi, yaitu posisi akhir stack. Posisi ini disebut Puncak atau Top
dari stack..

B. Tugas
Buatlah sebuah laporan praktikum tentang praktikum yang teman-teman lakukan.
Format laporan tersebut sebagai berikut;
FORMAT LAPORAN
Cover(judul,nim,nama, dll)
BAB I(20%) -- persentase penilaian
1. Latar belakang
2. Tujuan
BAB II(50%)
1. Landasan teori
2. Isi/pembahasan
BAB III(30%)
1. Kesimpulan
2. Tugas
3. Lampiran(listing program dari yang dipraktikan)
Pembuatan laporan dilakukan setiap minggu, pengumpulan laporan dilakukan setiap
akan masuk praktikum. Laporan yang sama akan mendapatkan nilai sesuai dengan jumlah
laporan yang sama
C. Lampiran
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

#define MAX 10
void push(int stack[], int *top, int value);
void pop(int stack[], int *top, int *value);
int main()
{
int stack[MAX];
int top=-1;
int n, value;
do
{
do
{
cout<<"masukkan nilai yang akan di PUSH : ";
cin>>value;
push(stack,&top,value);
cout<<"Tekan 1 untuk melanjutkan : ";
cin>>n;
}while(n==1);

cout<<"Tekan 1 untuk melakukan pop : ";


cin>>n;
while(n==1)
{
pop(stack,&top,&value);
cout<<"Nilai yang di POP : "<<value<<endl;
cout<<"Tekan 1 untuk melakukan pop sebuah elemen : ";
cin>>n;
}
cout<<endl;
cout<<"Tekan 1 untuk melanjutkan : ";
cin>>n;
}while (n==1);
getch();
return 0;
}
void push(int stack[], int *top, int value)
{
if (*top < MAX)
{
*top=*top+1;
stack[*top]=value;
}
else
{
cout<<"Stack penuh, PUSH nilai tidak dapat dilakikan ! "<<endl;
exit(0);
}
}
void pop(int stack[], int *top, int *value)
{
if(*top >= 0)
{
*value=stack[*top];
*top=*top-1;
}
else
{
cout<<"Stack kosong, POP nilai tidak dapat dikakukan ! "<<endl;
exit(0);
}
getch();
}

Anda mungkin juga menyukai