04 Modul Praktikum Struktur Data 2023
04 Modul Praktikum Struktur Data 2023
Kata Pengantar
Puji syukur kehadirat Allah SWT yang telah melimpahkan hidayah, inayah, rahmat
dan barakah-Nya, sehingga modul praktikum Struktur Data dapat diselesaikan. Modul
ini dibuat sebagai petunjuk praktikum kepada mahasiswa STITEK yang mengambil
mata kuliah Struktur Data pada Program Studi Teknik Informatika STITEK Bontang.
Hasil dari dari praktikum diharapkan mahasiswa mampu memahami Struktur Data
dapat mengimplementasikannya dalam bentukbahasa pemrograman sesuai kebutuhan.
Penyusun berterima kasih kepada semua pihak yang telah membantu dalam
penyelesaian modul praktikum ini. Modul ini masih jauh dari kesempurnaan oleh
karenanya Masukan dan saran yang sifatnya konstruktif sangat diharapkan demi
perbaikan modul praktikum ini. Semoga modul praktikum ini dapat berguna dan
bermanfaat dalam proses pendidikan di Program Studi Teknik Informatika STITEK
Bontang. Aamin.
Penyusun
i
Daftar Isi
A. TUJUAN PRAKTIKUM
1) Mahasiswa mampu menjelaskan konsep dan implementasi array pada program
2) Mahasiswa mampu melakukan manipulasi data array: menambahkan item,
melakukan pencarian, dan menghapus item pada array
3) Mahasiswa mampu mengimplementasikan ordered array pada program.
4) Mahasiswa mampu mengimplementasikan binary search pada ordered array.
5) Mahasiswa mampu menyimpan dan manipulasi objek pada array.
B. DASAR TEORI
Tipe Data Array
Array : Array adalah suatu variable yang terdiri dari sekumpulan tipe data yang sama
yangdapat dibedakan dengan index-nya. Setiap data disimpan dalam alamat memori/
lokasi memori yang berbeda-beda yang disebut dengan elemen array. Setiap elemen
array mempunyai nilai index sesuai dengan nilai urutannya.
Berikut adalah contoh variable bernama c yang mempunyai 5 lokasi memori yang
semuanya bertipe int.
C[0] -45
C[1] 6
C[2] 0
C[3] 72
C[4] 1543
Masing-masing nilai dalam setiap lokasi mempunyai identitas berupa nama (‘c’) dan
nomor indeks yang dituliskan di dalam tanda kurung siku ‘[…]’. Sebagai contoh, 72
adalah nilai dari c[3]. Nilai indeks ini merupakan suatu ekspresi, sehingga jika a=1
dan b=2, maka c[a+b] += 2 berarti menambahkan nilai 2 ke dalam c[3]
Akan lebih efektif jika semua variabel itu disatukan. Karena untuk proses
selanjutnya dapat lebih mudah. Sebagai contohnya yaitu:
Int angka[4];
Penjelasan :
Hasil penjumlahan setiap elemen array diperoleh dari jumlah data atau elemen
array sebanyak 12 buah yang sudah didefinisikan pada awal program yaitu
#define SIZE 12. Kemudian setiap elemen array dari a[0] yang berisi data 3
dijumlah sampai dengan a[11] yang berisi data 45. Proses penjumlahan dilakukan
pada loop dimulai dari 0 sampai data di indeks terakhir.
b. Array dua dimensi
1. Deklarasi Array
Deklarasi Array 2 Dimensi tampak serupa dengan Array satu dimensi. Pembeda
antara kedua array ini adalah dari jumlah elemen yang dideklarasikan. Bentuk
umum dari deklarasi array dua dimensi adalah sebagai berikut :
Tipe_data Nama_Array =
[jumlah_elemen_pertama][jumlah_elemen_kedua];
Contoh :
Array ini dapat pula diberi nilai tetap dengan static seperti pada array dimensi
satu. Deklarasinya adalah sebagai berikut:
Static int jumlah[4][3];
{
50, 55, 49,
60, 60, 55,
56, 56, 56,
49, 50, 54,
};
3. Array Multidimensi
Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih
besar. Sebenarnya array dimensi banyak ini tidak terlalu sering digunakan, tetapi
sewaktu-waktu kalau dimensi banyak dibutuhkan, maka array ini sangat
memegang peranan yang penting.
Contoh :
Static int dataktp[2][7][8][5];
C. LANGKAH PRAKTIKUM
1. Peralatan Praktikum
1) Personal Computer
3) Seperti apakah output yang ditampilkan dari source code Array 2D tersebut?
Silakan berikan penjelasan!
4. Array Multidimensi
1) Buatlah file baru dan beri nama “array2.cpp”.
2) Ketikkan source code berikut :
D. TUGAS PRAKTIKUM
1. Buatlah program menu yang berisi data-data KTP penduduk yang disimpan
dalam array struct 1 dimensi dan dapat dilakukan penambahan data, pencarian
data, penampilan datadan penghapusan data.
A. TUJUAN PRAKTIKUM
1) Mempraktekkan bentuk linked list / senarai berkait beserta operasi-operasi yang
dikenakanpadanya.
2) Mengimplementasikan linked list menggunakan pointer.
B. DASAR TEORI
1. Linked List/ Senarai Berkait
List : Koleksi dari obyek-obyek homogen dengan sifat setiap elemen (kecuali yang
terakhir)memiliki penerus dan setiap elemen (kecuali yang pertama) memiliki
pendahulu.
Suatu list linier dikenali :
alamat elemen pertama (First / Awal)
alamat elemen berIkut (Next)
setiap elemen list memiliki alamat, jika tidak ada disebut NULL.
Elemen list / Node:
INFO/Value NEXT
Contoh suatu list yang terdiri dari 3 elemen:
Awal
Info Next
Elemen pertama tidak memiliki pendahulu/predesor oleh sebab itu alamat elemen
pertama digambarkan dengan anak panah dari kotak yang namanya awal. Elemen
terakhir tidak memiliki penerus / suksesor oleh sebab itu field Next nya di-NULL-
kan. Setiap elemen menyimpan alamat elemen penerusnya sehingga elemen list
saling berkait, maka list sepertiini disebut dengan Linked List.
C. LANGKAH PRAKTIKUM
1. Peralatan Praktikum
1) Personal Computer
7) Tambahkan coding yang telah dicetak merah pada source code 2.3. Kemudian
tambahkan potongan coding dibawah ini, pada bagian switch case ‘pilih’.
Tambahkan case 6, 7 dan 8.
10) Tambahkan coding yang telah dicetak merah pada source code 2.6. dibawah
ini.
11) Silakan ubah batas pilih anda menjadi 11, seperti pada source code diatas
yang telah dicetak merah.
12) Running program tersebut dan perhatikanlah output yang kini tampil. Apakah
ada perbedaan dengan output sebelum fungsi remove dan change
ditambahkan? Silakan tulis analisa anda!
D. TUGAS PRAKTIKUM
1. Buatlah program untuk memasukkan beberapa data dalam sebuah senarai (linked list),
jika akan mengakhiri tekan n maka akan muncul semua node yang masuk ke dalam linked
list tersebut.
A. TUJUAN PRAKTIKUM
Mampu menjelaskan konsep LIFO pada Stacks
Mampu mengimplementasikan operasi dasar Stack dengan struktur data Array.
B. DASAR TEORI
1. Pengertian Stack
Stacks (tumpukan) merupakan suatu susunan koleksi data dimana data yang
dapat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang
disebut dengan top of stack. Dengan kata lain, stack hanya mengijinkan akses
pada item yang terakhir dimasukkan.
Stacks bersifat LIFO (Last In First Out). Jelaskan sifat LIFO pada stacks dan
gambarkan skema lengkap dari LIFO!
Koleksi dari obyek-obyek yang homogen dengan operasi penambahan (push) dan
pengambila nelemen (pop) melalui suatu tempat yang disebut dengan TOS (Top of
Stack).
1. Operasi-operasi Pada Stack
Operasi pada Stack
Ada 2 operasi dasar yang bisa dilaksanakan pada sebuah tumpukkan yaitu operasi
menyisipkan data (push) dan operasi menghapus data (pop).
1) Push() : digunakan untuk menambah item pada stack pada tumpukan paling atas
2) Pop() : digunakan untuk mengambil item pada stack pada tumpukan paling atas
1) Push
Caranya:
1. Naikkan nilai topnya
3. Deklarasi Stack
a) Bentuk Umum stack, dapat dideklarasikan dengan berbagai cara. Salah satunya
adalah dengan struct dan array:
//deklarasi stack dengan struct dan array
struct STACK
{
int data[5];
int top;
};
//deklarasi variabel tumpukan dari struct
STACK tumpukan;
C. LANGKAH PRAKTIKUM
1. Peralatan Praktikum
1) Personal Computer
2. Stack
1) Silakan buka Aplikasi dan buat file project baru.
2) Simpan file dengan nama “stack01.cpp”.
D. TUGAS PRAKTIKUM
1) Dari program yang menggunakan tumpukan (stack) diatas, gambarlah dalam
bentuk ilustrasi POP dan PUSH datanya. (jangan lupa gambarkan posisi TOP
selama proses Push dan Pop Terjadi)!