Anda di halaman 1dari 39

i

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.

Bontang, Februari 2023

Penyusun

i
Daftar Isi

Halaman Sampul Depan................................................................................................................. i


Kata Pengantar ................................................................................................................................... ii
Daftar Isi ................................................................................................................................................ iii
Modul I Tipe Data List (Array) .................................................................................................. 3
Modul II Linked List (Senarai berantai) ............................................................................... 12
Modul III Tumpukan (Stack) ..................................................................................................... 30
Modul IV Antrian (Queue) ...................................................................................................................
Modul V Tree .............................................................................................................................................

ii Mata Kuliah Struktur Data


STITEK Bontang
SEKOLAH TINGGI TEKNOLOGI
BONTANGPROGRAM STUDI TEKNIK
INFORMATIKA
Praktikum Struktur Data
Modul I Tipe data List (Array)

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]

Mata Kuliah Struktur Data


3
STITEK Bontang
Array digunakan karena penggunaan variabel biasa dinilai kurang efisien. Jika kita
memiliki 3 variabel yang menyimpan tipe data integer seperti berikut:
int angka1;
int angka2;
int angka3;
int angka4;

Akan lebih efektif jika semua variabel itu disatukan. Karena untuk proses
selanjutnya dapat lebih mudah. Sebagai contohnya yaitu:
Int angka[4];

a. Array Satu Dimensi


1. Deklarasi Array
Variabel Array dideklarasikan dengan mencantumkan nama variable yang diikuti
dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi
untuk variable array c di atas adalah :
Int c[5];
Perlu diperhatikan bahwa C++ secara otomatis akan menyediakan lokasi memori
sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0.
Nilai suatu variable array dapat juga diinisialisasi secara langsung pada saat
deklarasi, misalnya:
Int c [5] = {-45, 0, 6, 72, 1543};
2. Format Deklarasi Array satu Dimensi

Tipe_data nama_Array[Jumlah data/elemen];


Contoh 1:

string nama[20]; cara Kedua


Contoh 2:
String Teman[5];
Teman[0] = "Ronaldo";
Teman[1] = "Benzema";
Teman[2] = "Isco";
Teman[3] = "Asensio";
Teman[4] = "Bale";

Atau dengan cara:


String Teman[5] = {"Ronaldo","Benzema","Isco","Asensio","Bale"};

4 Mata Kuliah Struktur Data


STITEK Bontang
3. Contoh Program Array satu dimensi
Program 1.1. Contoh Aplikasi Array

Bila Program diatas dijalankan, akan muncul hasil :

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 :

Mata Kuliah Struktur Data


5
STITEK Bontang
Int c[5];
Contoh mendeklarasikan array dua dimensi:
String kontak[5] = {{"Ronaldo","081360"}, {"Benzema","081361"},
{"Isco","081362"}, {"Asensio","081363"}, {"Bale","081364"}};
Dari contoh ini dapat divisualisasikan sebagai tabel ukuran 4x2 yang berisi:
0 1
0 “Ronaldo” "081360"
1 "Benzema" "081361"
2 "Isco" "081362"
3 "Asensio" "081363"
4 "Bale" "081364"

2. Format Deklarasi Array dua Dimensi


Struktur Array pada penjelasan sebelumnya mempunyai satu dimensi, sehingga
variabelnya disebut variable array berdimensi satu. Sedangkan pada bagian ini
ditunjukkan array berdimensi lebih dari satu, yang sering disebut dengan array
berdimensi dua.
Sebagai contoh, sebuah matrik B berukuran 2 x 3 dapat dideklarasikan dalam C
seperti berikut : int[2][3] = {{2, 4, 1}, {5, 3, 7}}; yang akan menempati loasi
memori dengan susunan sebagai berikut :
0 1 2
0 2 4 1
1 5 3 7
Dan definisi variable untuk setiap elemen tersebut adalah :
0 1 2
0 b[0][0] b[0][1] b[0][2]
1 B[1][0] b[1][1] b[1][2]
Sebagai contoh, berikut adalah program untuk lebih memahami konsep array
dimensi dua.
int datasiswa[4][3];
deklarasi diatas digunakan untuk mendeklarasikan suatu data siswa yang
berbentuk demikian :
Jumlah Siswa
No. Nama Kelas
Tahun 2020 Tahun 2021 Tahun 2022
1. Kelas 1 50 55 49

6 Mata Kuliah Struktur Data


STITEK Bontang
2. Kelas 2 60 60 55
3. Kelas 3 56 56 56
4. Kelas 4 49 50 54
Dari deklarasi diatas maka angka [4] menyatakan jumlah kelas, dan angka indeks
[3] menyatakan tahun.
Data siswa [0][2] adalah kelas 1 dan jumlah siswa tahun 2021 adalah 55. Bentuk
data siswa juga dapat digambarkan sebagai berikut :
1 2 3
1 50 55 49
2 60 60 55
3 56 56 56
4 49 50 54

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];

4. Operasi Tipe Data Array


Sebagai sebuah struktur data, array harus dapat menangani proses yang sering
dilakukanketika bekerja dengan sebuah struktur data. Proses-proses tersebut antara lain
adalah:

Mata Kuliah Struktur Data


7
STITEK Bontang
- Menambah (Insert)
- Menghapus (Delete)
- Menampilkan isi array (Display)

C. LANGKAH PRAKTIKUM
1. Peralatan Praktikum
1) Personal Computer

2. Array Dimensi Satu


1) Silakan buka Aplikasi dan buat file project baru.
2) Simpan file dengan nama “array1.cpp”.
3) Ketikkan source code program berikut :
Program 1.1. Program Array dimensi 1

4) Seperti apakah output yang ditampilkan? Silakan berikan penjelasan!

3. Array Dimensi Dua


1) Buatlah file baru dan beri nama “array2.cpp”.
2) Ketikkan source code berikut :

8 Mata Kuliah Struktur Data


STITEK Bontang
Program 1.2. Program Array dimensi 2

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 :

Mata Kuliah Struktur Data


9
STITEK Bontang
Program 1.3. Program Array Multidimensi

3) Seperti apakah output yang ditampilkan dari source code Multidimensi


tersebut? Termasuk array dengan berapa dimensi? Silakan berikan
penjelasan!

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.

10 Mata Kuliah Struktur Data


STITEK Bontang
SEKOLAH TINGGI TEKNOLOGI BONTANG
PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Struktur Data
Modul II Linked List/Senarai Berantai

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

Contoh list kosong / first:

Mata Kuliah Struktur Data


11
STITEK Bontang
Awal

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.

2. Linked List (terurut)


Node-2 dalam linked list diurutkan berdasarkan salah satu field dalam node (field
kunci).
Operasi-operasi pada Linked List:
1. Buatlist (list)
Mendeklarasikan / mendefinisikan linked list kosong
2. Listkosong (list)
Mengecek apakah list dalam keadaan kosong atau tidak
3. Telusurlist (list) atau Cetaklist (list)
Menelusuri / mencetak semua node pada linked list.
4. Sisipnode (list)
Menambah/menyisipkan node baru bersisi info baru (IB) pada linked
listsedemikian sehingga linked list tetap terurut.
5. Hapusnode (list)
Menghapus node pada linked list yang sesuai dengan info yang dihapus.

C. LANGKAH PRAKTIKUM
1. Peralatan Praktikum
1) Personal Computer

12 Mata Kuliah Struktur Data


STITEK Bontang
2. Single Linked List
1) Silakan buka Aplikasi dan buat file project baru.
2) Simpan file dengan nama “array1.cpp”.
3) Ketikkan source code program berikut :
Program 2.1. Create dan add pada single linked list

Mata Kuliah Struktur Data


13
STITEK Bontang
14 Mata Kuliah Struktur Data
STITEK Bontang
Mata Kuliah Struktur Data
15
STITEK Bontang
4) Seperti apakah output yang ditampilkan? Silakan berikan penjelasan!
5) Kemudian buatlah fungsi baru yaitu fungsi remove data di luar fungsi main.
Tuliskanlah source code berikut:

16 Mata Kuliah Struktur Data


STITEK Bontang
Program 2.2. Remove first, middle dan last pada single linked list

Mata Kuliah Struktur Data


17
STITEK Bontang
6) Tambahkan pula source code berikut pada fungsi main:
Program 2.3. Menambahkan remove pada single linked list

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.

18 Mata Kuliah Struktur Data


STITEK Bontang
Program 2.4. Menambahkan remove pada single linked list

8) Seperti apakah output yang ditampilkan? Screenshot dan berikan penjelasan!

Mata Kuliah Struktur Data


19
STITEK Bontang
9) Tambahkan kembali fungsi change di luar fungsi utama. Source code yang
ditambahkan adalah:
Program 2.5. Menambahkan change pada linked list

10) Tambahkan coding yang telah dicetak merah pada source code 2.6. dibawah
ini.

20 Mata Kuliah Struktur Data


STITEK Bontang
Program 2.6. Menambahkan change pada linked list

Mata Kuliah Struktur Data


21
STITEK Bontang
Program 2.7. Menambahkan change pada linked

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!

22 Mata Kuliah Struktur Data


STITEK Bontang
3. Double Linked List
1) Silakan buka Aplikasi dan buat file project baru.
2) Simpan file dengan nama “doubleslinkedlist.cpp”.
3) Ketikkan source code program berikut :
Program 2.8. Create dan add pada double linked list

Mata Kuliah Struktur Data


23
STITEK Bontang
24 Mata Kuliah Struktur Data
STITEK Bontang
Mata Kuliah Struktur Data
25
STITEK Bontang
26 Mata Kuliah Struktur Data
STITEK Bontang
Mata Kuliah Struktur Data
27
STITEK Bontang
4) Running program tersebut dan perhatikanlah output yang kini tampil.
5) Tambahkan fungsi change data pada bagian awal/first, middle dan last.
6) Apakah terdapat perbedaan dengan source code pada bagian single linked
list? Jelaskan 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.

28 Mata Kuliah Struktur Data


STITEK Bontang
SEKOLAH TINGGI TEKNOLOGI
BONTANGPROGRAM STUDI TEKNIK
INFORMATIKA
Praktikum Struktur Data
Modul III Tumpukan (Stack)

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

Mata Kuliah Struktur Data


29
STITEK Bontang
3) Peek(): digunakan untuk melihat data yang berada di posisi paling atas
4) Count(): digunakan untuk mengetahui jumlah isi data pada Stack
5) Clear(): digunakan untuk mengapus seluruh data yang ada pada Stack

1) Buat stack (stack)


a. Tujuan : Menginisialisai / mendefinisikan stack yang kosong
b. Input : Stack
c. Syarat awal : Tidak ada
d. Output : Stack
e. Syarat akhir : Stack dalam keadaan normal
2) Stack kosong (stack)
a. Tujuan : Mengecek apakah stack dalam kedaan kosong atau tidak ?
b. Input : Stack
c. Syarat awal : Tidak ada
d. Output : boolean (T/F)
e. Syarat akhir : True jika stack dalam keadaan kosong
3) Stack penuh (stack)
a. Tujuan : Mengecek apakah stack dalam kedaan penuh atau tidak ?
b. Input : Stack
c. Syarat awal : Tidak ada
d. Output : boolean (T/F)
e. Syarat akhir : True jika stack dalam keadaan penuh
4) Push (stack,IB)
a. Tujuan : Menambah elemen baru pada stack yang berisi info baru
(IB) pdposisi teratas
b. Input : Stack dan IB
c. Syarat awal : stack tidak penuh
d. Output : stack
e. Syarat akhir : stack bertambah satu

30 Mata Kuliah Struktur Data


STITEK Bontang
5) Pop (stack,IP)
a. Tujuan : Menengambil elemen dari stack yg berada pada posisi
palingatas dan infonya disimpan dalam info pop (IP)
b. Input : Stack
c. Syarat awal : stack tidak kosong
d. Output : stack dan IP
e. Syarat akhir : stack berkurang satu

2. Implementasi Stack Menggunakan Array

1) Push
Caranya:
1. Naikkan nilai topnya

Mata Kuliah Struktur Data


31
STITEK Bontang
2. Tambahkan info baru (IB) pada stack paling atas (top)
2) Pop
Caranya:
1. Ambil/keluarkan elemen teratas dan simpan dalam info pop (IP)
2. Turunkan 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;

b) Pembuatan variabel top :


int top;
c) Pembuatan variabel untuk menampung panjang array :
int array_size;
pada deklarasi diatas, mendeklarasikan variabel bernama array_size dengan tipe
integer)
d) Pembuatan variabel Array :
int 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”.

32 Mata Kuliah Struktur Data


STITEK Bontang
3) Ketikkan source code program berikut
Program 1.2. Program Array dimensi

Mata Kuliah Struktur Data


33
STITEK Bontang
34 Mata Kuliah Struktur Data
STITEK Bontang
Mata Kuliah Struktur Data
35
STITEK Bontang
4) Seperti apakah output yang ditampilkan? Silakan berikan penjelasan !

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)!

36 Mata Kuliah Struktur Data


STITEK Bontang

Anda mungkin juga menyukai