DI SUSUN OLEH
SITI MUJADILAH
105841105019
3.B
DAFTAR ISI........................................................................................................................ii
BAB I PENDAHULUAN...................................................................................................
1.1 Latar Belakang...............................................................................................................
1.2 Rumusan Masalah..........................................................................................................
1.3 Tujuan ............................................................................................................................
BAB II PEMBAHASAN.....................................................................................................
2.1 Pengertian data ………….............................................................................................
2.2 Pengertian Struktur data.................................................................................................
2.3 Pengertian Array............................................................................................................
2.4 Karakteristik Array….....................................................................................................
2.5 Deklarasi Array..............................................................................................................
2.6 Jenis Array.....................................................................................................................
2.7 Stack..............................................................................................................................
BAB III Penutup................................................................................................................
3.1 Kesimpulan..................................................................................................................
BAB I
PENDAHULUAN
Sedangkan jika didefinisikan lebih jauh lagi, pengertian struktur data merupakan tata letak data yang
berisi kolom data, baik kolom yang terlihat oleh pengguna atau kolom yang hanya digunakan untuk
keperluan pemrograman yang tidak terlihat oleh pengguna.
Setiap baris kumpulan kolom disebut catatan. Lebar kolom untuk data dapat berubah dan bervariasi.
Ada kolom yang lebarnya berubah secara dinamis sesuai dengan input pengguna dan ada juga kolom
yang lebarnya diperbaiki.
Sesuai sifatnya, struktur data dapat diterapkan untuk pemrosesan basis data, misalnya untuk tujuan
data keuangan, atau untuk pengolah kata. Strutur data ini kolomnya berubah-ubah secara dinamis.
Contoh struktur data dapat dilihat dalam spreadsheet, database, pengolah kata, gambar
terkompresi, dan mengompresi file dengan teknik tertentu yang memanfaatkan struktur data.
1.3 Tujuan
2 Untuk mengenal struktur data
3 Untuk mengenal Array
4 Untuk mengenal stack
BAB II
PEMBAHASAN
Data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang
disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.
Pengertian data ini menyiratkan suatu nilai yang bisa dinyatakan dalam bentuk konstanta / variable.
Konstanta digunakan untuk menyatakan nilai tetap sedangkan variable digunakan dalam program
untuk menyatakan nilai yang dapat berubah-ubah selang eksekusi berlangsung.
Ada empat istilah data, yaitu:
1. Tipe data adalah jenis atau macam data di dalam suatu variable dalam bahasa
pemrograman.
2. Objek data mengacu kumpulan elemen, D (domain).
3. Representasi data : Suatu mapping dari struktur data ‘d’ ke suatu set ke struktur data
‘e’ (d===e) misal bolean di representasikan dalam 0 dan 1.
4. Struktur data biasa dipakai untuk mengelompokan beberapa informasi yang terkait
menjadi sebuah kesatuan.
Tipe data sederhana terbagi menjadi dua, yaitu:
1. Data sederhana tunggal. Misalnya : Integer, real / float, Boolean dan character.
2. Data sederhana majemuk. Misalnya : String.
Struktur data adalah suatu koleksi / kelompok data yang dapat di karakteristikan oleh organisasi
serta operasi yang di definisikan terhadapnya.
Dalam teknik pemrograman,struktur data berarti tata letak yang berisi kolom-kolom data,baik itu
kolom yang tampak oleh pengguna (user) ataupun kolom yang hanya digunakan untuk keperluan
pemrograman yang tidak tampak oleh pengguna.
Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma
yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan
sederhana.
Untuk membuat menjadi struktur data, kita harus melakukan dulu aktivitas terhadap objek data,
yaitu :
o Mendeskkripsikan kumpulan operasi sah yang diterapkan ke elemen-elemen objek data.
o Menunjukan mekanisme kerja operasi-operasi.
Objek data integer ditambah operasi (+ , - , * , / , mod ,cell , floor , < , >) dan operasi-operasi lain
yang memanipuasi objek data integer menyatakan struktur data.
Struktur data = Objek data + { Operasi manipulasi }.
Sesuai dengan relasi yang didefinisikan di spesifikasi perancangan harus memilih tipe-tipe data yang
telah ada untuk merepresentasikan struktur data.
Struktur data di bangun menggunakan fasilitas pembentukan atau pembuatan struktur data yang
disediakan bahasa seperti array, record, dan sebagainya atau yang telah di buat seperti stack, queue,
atau himpunan menggunakan linked list.
Pembuatan struktur data adalah pembentukan tipe data lengkap yang mempunyai empat property
berikut :
1. Nama : Identifier tipe data
2. Domain : Domain / himpunan semesta nilai di tipe data
3. Konstanta (penyebutan anggota-anggotanya) : Cara penyebutan anggota-anggota tipe data
4. Operasi-operasi terhadap tipe data itu (operator) : Daftar operasi terhadap anggota
tipe data sehingga kelakuan objek data sesuai spesifikasi.
PENGURUTAN ARRAY
Pengurutan atau sorting adalah proses yang paling sering di lakukan dalam pengolahan
data.pengurutan di bedakan menjadi dua, yaitu :
a. Pengurutan internal
Pengurutan dilakukan terhadap sekumpulan data di media memory internal komputer
dimana data dapat di akses elemennya secara langsung.
b. Pengurutan eksternal
Pengurutan data di memory sekunder. Biasanya data bervolume besar sehingga tidak
mampu dimuat semuanya di memori utama.
1. Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu secara
langsung tanpa melalui elemen-elemen lain.
2. Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-
elemen tetangga, baik elemen pendahulu atau elemen penerus 3
3. Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga, maka
penggunaan penyimpanannya sangat efisien.
Kelemahan array adalah sebagai berikut :
Array mempunyai fleksibilitas rendah, sehingga tidak cocok untuk berbagai aplikasi karena array
Bila penambahan dan pengurangan terjadi terus menerus, maka representasi statis (array):
1. Tidak efisien dalam penggunaan memory
2. Menyiakan banyak waktu komputasi
3. Pada suatu aplikasi, representasi statis tidak di mungkinkan.
2.7 STACK
DASAR TEORI
1. Pengertian Stack
Stack merupakan sebuah kumpulan data yang diletakkan di atas data lainya, seperti
sebuah tumpukan. Dengan demikian, stack merupakan salah satu struktur data yang
menerapkan prinsip LIFO (Last In First Out). Dimana elemen yang terakhir disimpan
dalam stack, menjadi elemen yang pertama diambil. Untuk meletakkan sebuah elemen
pada bagian atas dari stack, maka dilakukan operasi push. Sedangkan untuk
memindahkan sebuah elemen dari tempat atas tersebut dalam sebuah stack, maka
dilakukan operasi pop.
Create
Merupakan operator yang berfungsi untuk membuat sebuah stack kosong.
struct STACK {
int top;
float data[5];
}; float
dta;
struct STACK stackbaru;
IsEmpty
Merupakan operator yang berfungsi untuk menentukan apakah suatu stack
merupakan stack kosong. Tanda bahwa sebuah stack kosong adalah Top bernilai
kurang dari nol (-1).
bool isempty() {
if (stackbaru.top==1) return true;
else return false;
}
IsFull
Merupakan operator yang digunakan untuk memeriksa apakah stack yang ada sudah
penuh. Stack akan penuh jika puncak stack terletak tepat dibawah jumlah
maksimum yang dapat ditampung stack (Top = MAX_STACK-1).
bool isfull() {
if (stackbaru.top==maxstack) return
true; else return false;
}
Push
Merupakan operator yang berfungsi untuk menambahkan satu elemen ke dalam
stack dan tidak dapat dilakukan jika stack dalam keadaan penuh.
if (isfull()==false) {
puts("stack penuh");
} else { stackbaru.top++;
stackbaru.data[top]=dta;
}
}
Pop
Merupakan operator yang berfungsi untuk mengeluarkan satu elemen teratas dari
dalam stack dengan syarat stack tidak dalam kondisi kosong.
void pop() {
if (isempty()==false) {
cout<<"data kosong";
} else { cout<<"data yang terambil :
"<<stackbaru.data[top]<<endl;
stackbaru.top--;
}
}
Clear
Fungsi yang digunakan untuk mengosongkan stack dengan cara mengeset Top
dengan 1. Jika Top bernilai kurang dari nol maka stack dianggap kosong.
void clear () {
top=-1
}
Retrieve fungsi yang digunakan untuk melihat nilai yang berada pada posisi
tumpukan teratas.
void print() {
for (int i=0; i<=top; i++) {
cout<<stackbaru.data[i]<<"
";
}
}
3. Pointer Sebagai Penunjuk Stack
Selain menggunakan indeks, untuk menunjuk sebuah Top atau posisi teratas dari stack,
dapat juga digunakan pointer sebagai berikut.
Proses Push
if (Top < BatasAtas)
Top++;
*Top = X;
else
printf(“Stack Penuh”);
Proses Pop
Stack adalah salah satu dari contoh struktur data yang terdiri dari satu collection,
yang juga menerapkan prinsip LIFO. Bila stack tersebut menggunakan array satu
dimensi, maka stack tersebut dapat diilustrasikan sebagai berikut :
Gambar 4.2 Ilustrasi sebuah stack 1 Dimensi menggunakan indeks array
Pada gambar 4.2 diatas diilustrasikan ada sebuah indeks array yang masih kosong pada awal
pembuatan stcak dimana n[10], variabel Top berada pada -1 yang menunjukkan indeks
masih dalam keadaan kosong.
Pada gambar 4.3 adalah keadaan ketika stack sudah diisi data. Pada kondisi ini data pertama
yang diinputkan adalah S[0]=11, data kedua S[1]=7, data ketiga S[2]=15, data keempat
S[23]=23. Kondisi Top sudah berubah menjadi data yang terakhir diinputkan (data keempat)
sehingga Top[3] X=23.
Variabel Top digunakan sebagai indeks untuk menunjuk nomor elemen array yang berisi nilai
stack yang berada paling kanan atau Top, yang ditunjukan dengan angka 3. Variabel X
bertipe integer digunakan sebagai perantara, dimana data yang akan disimpan kedalam
stack harus berasal dari X. Demikian juga data yang baru diambil dari dalam stack harus
diterima terlebih dahulu oleh variabel X, kemudian baru diberikan ke variabel lain untuk
diolah.
Oleh karena itu, jika ada instruksi PUSH, maka data baru (yang diambil dari isi variabel X)
akan disimpan dalam elemen S[4] sehingga indeks Top harus diarahkan ke posisi no.4.
Artinya, Top maju terlebih dahulu satu langkah ke S[4], kemudian baru mengisi nilai pada
S[4]. Sedangkan jika ada instruksi Pop, maka yang akan diambil adalah isi dari S[3] dan
datanya akan disimpan terlebih dahulu dalam variabel X, kemudian indeks Top menjadi
mundur satu langkah sehingga akan menunjuk S[2].
5. Double Stack
Double Stack atau Stack Ganda adalah dua stack yang berada dalam satu array. Satu
array digunakan untuk dua stack dimana dasar Stack1 berada pada sisi indeks yang
terkecil dan dasar Stack2 berada pada sisi indeks yang terbesar. Sama halnya dengan
Single Stack, Double Stack juga menerapkan prinsip LIFO (Last in Firt Out).
Pada gambar 4.4 diatas adalah ilustrasi indeks array pada double stack. Padastack 1
kondisi data pertama yang diinputkan adalah S[0], data kedua S[1], data ketiga S[2] dan
Top=data input terakhir S[2]. Sedangkan pada stack 2 data pertama adalah S[9], data
kedua S[8], data ketiga S[7], data keempat S[6] dan Top=data input terakhir S[6].
Is Empty
Sama dengan single stack, yaitu proses pengecekan stack dalam kondisi kosong
Is Full
Sama dengan single stack, yaitu proses pengecekan stack dalam kondisi kosong
int full(void){
if(top1+1>=top2){
return true;
}
BAB III
PENUTUP
3.1 Kesimpulan
Struktur data merupakan salah satu bahan dasar pembuatan program. Pemakaian struktur data yang
tepat di dalam proses pemrograman, akan menghasilkan algoritma yang jelas dan tepat sehingga
menjadikan program secara keseluruhan lebih sederhana. Array merupakan bagian dari struktur
data yaitu termasuk kedalam struktur data sederhana yang dapat di definisikan sebagai pemesanan
alokasi memory sementara pada komputer. Apabila kita membuat program dengan data yang sudah
kita ketahui batasnyamaka kita menggunakan Array (type data statis), namun apabila datanya belum
kita ketahui batasnya maka gunakan pointer (type data dinamis).