Modul Struktur Data PDF
Modul Struktur Data PDF
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 1, praktikan diharapkan mampu memahami array dan struct
serta penggunaannya serta mampu mengimplementasikannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui konsep array dan struct.
2. Mengetahui deklarasi dan penggunaan elemen pada array dan struct.
3. Mampu mengimplementasikan array dan struct dalam pemrograman.
TUGAS PENDAHULUAN
1. Tuliskan pengertian dan konsep array.
2. Tuliskan deklarasi array dan pemangillan elemen array.
3. Buatlah contoh program array.
4. Jelaskan pengertian struct.
5. Tuliskan deklarasi umum dari struct.
6. Jelaskan tahapan dalam menggunakan struct.
7. Tuliskan contoh program dari struct.
8. Tuliskan pengertian procedure dan function.
9. Tuliskan deklarasi procedure dan function disertai dengan contoh.
TEORI DASAR:
1. Array
Array adalah kumpulan data yang memiliki tipe data yang sama.
Deklarasi Array
TipeData NamaArray[PanjangArray];
Contoh :
int nilai[10]; atau
int nil[3]={10, 20, 30};
//penggunaan elemen array dari array nil
cout<<nil[0]; //output : 10
2. Struct
Struct adalah kumpulan elemen-elemen yang memiliki bentuk dan tipe yang berbeda-beda yang
dinyatakan dalam sebuah nama. Elemen struct ini dapat berupa variabel, konstanta, array, atau function.
1) Deklarasi Struct
Ada beberapa cara untuk mendeklarasikan sebuah struct.
Deklarasi Struct
struct NamaStruct{
elemen1; elemen2 ; … ; elemen n;
};
Contoh :
struct Nilai{
int tugas1, tugas2; float mid, uas;
};
3. Kegiatan Praktikum
1) Buka texteditor yang akan digunakan.
2) Buat file baru kemudian simpan file tersebut dengan nama “Modul1.cpp”
3) Kerjakan program berikut.
#include <iostream>
#include <string>
using namespace std;
struct Kehadiran {
int izin, alfa;
};
struct Siswa {
string nim, nama;
Kehadiran absen;
};
int main(){
Siswa sis[3];
sis[0].nim ="9970283044";
sis[0].nama="Askadina";
sis[0].absen.izin = 4;
sis[0].absen.alfa = 1;
sis[1].nim ="9970283034";
sis[1].nama="Ainun";
sis[1].absen.izin = 4;
sis[1].absen.alfa = 2;
sis[2].nim ="9980283034";
sis[2].nama="Abyah";
sis[2].absen.izin = 0;
sis[2].absen.alfa = 1;
cout<<"Data Dari Struct : "<<endl;
for (int i=0; i<3; i++){
cout<<"Nim : " <<sis[i].nim<<endl;
cout<<"Nama : "<<sis[i].nama<<endl;
cout<<"Jumlah Izin : "<<sis[i].absen.izin<<endl;
cout<<"Jumlah Alfa : "<<sis[i].absen.alfa<<endl;
cout<<" "<<endl;
}
}
4) Setelah percobaan selesai, tutup semua perangkat lunak yang telah digunakan.
5) Matikan PC dan Rapihkan meja praktikum.
EVALUASI PRAKTIKUM
1. Pak Iman adalah seorang guru IPS dengan siswa 20 orang, ia ingin
menghitung nilai akhir siswa-siswanya. Setiap siswa memiliki data
nim dan nama lengkap. Untuk menghitung nilai IPS siswanya, pak
Iman membutuhkan 4 nilai tugas, nilai uts dan nilai uas disetiap
siswanya. Pak iman membutuhkan nilai akhir dalam bentuk nilai
angka yang didapatkan dari 30% dari rata-rata nilai tugas, 30% dari
nilai uts, dan 40% dari nilai uas. Untuk mengolah data yang mudah,
pak Iman ingin nilai-nilai tiap siswanya tertampung dalam 1 struktur
data seperti gambar disamping.
Modul 2 : Function
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 2, praktikan diharapkan mampu memahami konsep function
serta pengimplementasiannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui konsep function dan implementasinya.
2. Mengetahui penggunaan parameter pass by value dan pass by reference pada function dan
implementasinya.
3. Mengetahui konsep rekursif dan implementasinya.
TUGAS PENDAHULUAN
1. Jelaskan pengertian konsep sorting.
2. Gambarkan ilustrasi dari metode bubble sorting, selection sorting dan merge sorting.
3. Tuliskan algoritma dalam metode bubble sorting, selection sorting dan merge sorting.
TEORI DASAR:
1. Function
Function adalah sebuah blok berisi kumpulan perintah untuk melakukan proses tertentu.
Deklarasi Function
TipeData NamaFunction ( ){
//statement
}
Contoh :
int Tambah ( ){
return 100; }
2. Parameter Function
Parameter pada function adalah sebuah nilai awal yang diberikan pada saat sebuah function dipanggil.
Parameter function diinisialisasikan pada saat pembuatan function sedangkan pemberian nilai pada
parameternya diberikan pada saat function akan dipanggil atau digunakan. Parameter dapat berupa
variabel, konstanta, array dan pointer.
Deklarasi Function Berparameter
TipeData NamaFunction (parameter1, parameter2, …, parameter-n ){
//statement
}
Contoh :
int Tambah (int nil1, int nil2 ){
return nil1+nil2;
}
Secara umum, procedure dan function terbagi menjadi 2 berdasarkan model parameternya yaitu
passing by value dan passing by reference
1) Passing By Value
Function dengan parameter passing by value yaitu menyalin data (nilai) dari argumen yang
memanggil ke parameter function tersebut. Sehingga jika ada perubahan nilai pada parameter
tidak akan berpengaruh dengan nilai argumennya.
#include <iostream>
using namespace std;
void tambah(int angka){
angka +=20;
cout<<“Nilai Angka Dari Procedure tambah = ”<<angka;
}
int main(){
int nilai = 10;
}
return nilai2;
}
int main(){
int nilai;
cout<<"Masukkan Nilai : ";
cin>>nilai;
cout<<endl<<faktorial(nilai);
}
PRAKTIKUM MANDIRI
1. Peralatan
a) Perangkat komputer / PC / Laptop / Notebook .
b) Sistem operasi Windows / Linux (optional Mac OS)
c) Aplikasi Code Block
2. Prosedur
a) Baca dan pahami semua tahapan praktikum dengan cermat.
b) Gunakan fasilitas yang disediakan dengan penuh rasa tanggung jawab.
c) Rapihkan kembali setelah menggunakan komputer (mouse, keyboard, kursi, dll)
d) Perhatikan sikap anda untuk tidak mengganggu rekan praktikan lain
e) Pastikan diri anda tidak menyentuh sumber listrik.
3. Kegiatan Praktikum
1) Buka texteditor yang akan digunakan.
2) Kerjakan program pada contoh program Passing By Value, Passing By Reference, dan Recursive.
3) Kerjakan program berikut.
Program 1 :
#include <iostream>
using namespace std;
float kali10 (float a){return a*=100;}
float bagi10 (float a){return a/=100.d;}
int main(){
float a;
cout<<"Masukkan Nilai : "; cin>>a;
cout<<"Hasil Hitung Dari fungsi kali10 = "<<kali10(a)<<endl;
cout<<"Hasil Hitung Dari fungsi bagi10 = "<<bagi10(a)<<endl;
cout<<" "<<endl;
cout<<"Nilai variabel a : "<<a<<endl;
}
Program 2 :
#include <iostream>
using namespace std;
void Proses1(float *a, float *b){
*a*=100.f;
*b/=100.f;
}
void Proses2(float &a, float &b){
a*=100.f;
b/=100.f;
}
int main(){
float a, b;
cout<<"Masukkan Nilai : "; cin>>a;
b=a;
cout<<" "<<endl;
cout<<"Nilai variabel a dan b Sebelum Fungsi Proses Dipanggil : "<<endl;
cout<<"Variabel a : "<<a<<endl;
cout<<"Variabel b : "<<b<<endl;
cout<<" "<<endl;
Proses1(&a, &b);
cout<<"Nilai variabel a dan b Setelah Fungsi Proses1 Dipanggil :
"<<endl;
cout<<"Variabel a : "<<a<<endl;
cout<<"Variabel b : "<<b<<endl;
cout<<" "<<endl;
Proses2(a, b);
cout<<"Nilai variabel a dan b Setelah Fungsi Proses2 Dipanggil :
"<<endl;
cout<<"Variabel a : "<<a<<endl;
cout<<"Variabel b : "<<b<<endl;
}
4) Setelah percobaan selesai, tutup semua perangkat lunak yang telah digunakan.
5) Matikan PC dan Rapihkan meja praktikum.
EVALUASI PRAKTIKUM
1. Jelaskan Perbedaan Program1 dan Program2 Pada Kegiatan Praktikum.
2. Buatlah sebuah program konversi satuan panjang dari meter ke satuan panjang lainnya dengan
memanfaatkan procedure dan function yang berparameter pass by value.
3. Lengkapi program manajemen poin berdasarkan source code dibawah ini. Tidak ada penambahan
variabel ataupun procedure dan function.
#include <iostream>
using namespace std;
void TambahPoin (&poinsaya, poin){poinsaya = poinsaya + poin}
void KurangPoin (int &poinsaya, int poin, int *penggunaanpoin){
poinsaya = poinsaya – poin.
Penggunaanpoin = penggunaanpoin+poin
}
void lihatPoin(. . .){ perintah untuk lihat total poin }
void lihatPenggunaanPoin(. . . ){ perintah untuk penggunaan poin }
void menu (){
cout<<"Menu Poin"<<endl;
cout<<"(1) Tambah Poin "<<endl;
cout<<"(2) Kurang Poin "<<endl;
cout<<"(3) Cek Poin "<<endl;
cout<<"(4) Penggunaan Poin"<<endl;
cout<<"Masukkan Pilihan (1, 2, 3 ) : ";
}
int main(){
int pilih, poinsaya, poin, penggunaanpoin=0;
poinsaya = 40;
panggil procedure untuk melihat total poin.
while (. . .){
menu();
cin>>pilih;
if (pilih==1){
cout<<"Masukkan Jumlah Poin Yang Ditambahkan : "; cin>>poin;
TambahPoin(poinsaya, poin); }
else if (pilih==2){
cout<<"Masukkan Jumlah Poin Yang DiGunakan : "; cin>>poin;
KurangPoin(poinsaya, poin, penggunaanpoin); }
else if (pilih==3){ lihatPoin(poinsaya);}
else if (pilih==4){lihatPenggunaanPoin(penggunaanpoin);}
else {cout<<"PILIHAN SALAH "<<endl;}
cout<<" "<<endl;
}
4. Buatlah contoh program aritmatika dengan menggunakan procedure dan function dengan parameter
passing by reference.
5. Buatlah program perpangkatan dengan menggunakan konsep recursive.
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 3, praktikan diharapkan mampu memahami konsep dan
algoritma beberapa metode sorting/pengurutan serta mampu mengimplementasikannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui konsep sorting data.
2. Mengetahui algoritma sorting/pengurutan dan pengimplementasiannya kedalam program.
TUGAS PENDAHULUAN
1. Jelaskan pengertian dan fungsi dari pointer.
2. Jelaskan operator deference dan reference dari pointer.
3. Buatlah contoh program dari pointer yang menggunakan operator deference dan reference.
TEORI DASAR:
1. Sorting
Sorting/Pengurutan adalah sebuah proses untuk mengatur beberapa data/objek sesuai aturan tertentu.
Pengurutan terdiri dari 2 jenis yaitu ascending (urutan yang menaik) dan descending (urutan yang
menurun). Ada beberapa metode dalam pengurutan antara lain bubble sort, selection sort dan merge sort,
dll.
1) Bubble Sort
Bubble Sort atau pengurutan gelembung adalah metode pengurutan dengan mengangkat nilai
terkecil keatas dan dibawa ke posisi sebelah kiri melalui proses pertukaran.
Program Bubble Sort :
#include <iostream>
using namespace std;
int main(){
int nilai[6]={6, 1, 2, 3, 4, 5};
int temp;
cout<<endl<<"Data Sebelum
diurutkan"<<endl;
for(int a=0; a<=5; a++){
cout<<nilai[a]<<" ";
}
cout<<endl;
for(int a=5; a>=0; a--){
for(int b=0; b<=a-1; b++){
if(nilai[b]>nilai[b+1]){
temp=nilai[b+1];
nilai[b+1]=nilai[b];
nilai[b]=temp;
}
}
}
cout<<endl<<endl<<"Data Setelah Diurutkan (Ascending)"<<endl;
for (int a=0; a<=5; a++){
cout<<nilai[a]<<" ";}
cout<<endl<<"Data Setelah Diurutkan (Descending)"<<endl;
for (int a=5; a>=0; a--){
cout<<nilai[a]<<" ";}
return 0;
}
2) Selection Sort
Selection Sort adalah metode sorting / pengurutan dengan menemukan data terkecil dengan
cara membandingkan elemen sekarang dengan elemen yang berikutnya sampai dengan elemen
terakhir kemudian menukar posisi elemen terkecil tersebut.
}
int main(){
int arr[]={12, 11, 13, 5, 6, 7};
int arr_size = sizeof(arr)/sizeof(arr[0]);
cout<<"Data Sebelum Pengurutan : "<<endl;
printArray(arr, arr_size);
mergeSort(arr, 0, arr_size-1);
cout<<endl;
cout<<"Data Setelah Pengurutan : "<<endl;
printArray(arr, arr_size);
return 0;
}
PRAKTIKUM MANDIRI
1. Peralatan
a) Perangkat komputer / PC / Laptop / Notebook .
b) Sistem operasi Windows / Linux (optional Mac OS)
c) Aplikasi Code Block
2. Prosedur
a) Baca dan pahami semua tahapan praktikum dengan cermat.
b) Gunakan fasilitas yang disediakan dengan penuh rasa tanggung jawab.
c) Rapihkan kembali setelah menggunakan komputer (mouse, keyboard, kursi, dll)
d) Perhatikan sikap anda untuk tidak mengganggu rekan praktikan lain
e) Pastikan diri anda tidak menyentuh sumber listrik.
3. Kegiatan Praktikum
1) Buka texteditor yang akan digunakan.
2) Kerjakan contoh program bubble sort, selection sort, dan merge sort yang ada pada teori dasar.
3) Setelah percobaan selesai, tutup semua perangkat lunak yang telah digunakan.
4) Matikan PC dan Rapihkan meja praktikum.
EVALUASI PRAKTIKUM
1. Buatlah program sorting huruf yang berfungsi untuk mengurutkan huruf dari nama yang diinputkan pada
saat program dijalankan. Gunakan metode sorting yang telah dibahas.
Modul 4 : Pointer
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 4, praktikan diharapkan mampu memahami pointer serta
mampu mengimplementasikannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui tools yang dapat digunakan dalam bahasa C++
2. Mengetahui pengertian pointer dan operator pada pointer
3. Mampu mengimplementasikan pointer dalam program
TUGAS PENDAHULUAN
1. Tuliskan pengertian dan konsep dari linked list.
2. Tuliskan fungsi dari lingked list.
3. Tuliskan contoh program penerapan Iinked list.
TEORI DASAR:
1. Pointer
Pointer adalah variabel yang berisi alamat memori. Dengan kata lain, pointer berisi alamat dari
variabel yang mempunyai nilai tertentu.
Deklarasi Pointer
Tipedata * nama_variabel
Contoh :
int * a;
2. Operator Pointer
1) Operator Reference (&)
Operator reference digunakan untuk menghasilkan alamat memori lokasi memori dari sebuah
svariabel. Operator ini biasa disebut dengan address of atau operator alamat.
2) Operator Deference (*)
Operator deference digunakan untuk mengakses langsung nilai yang terdapat didalam variabel
berpointer. Operator ini biasa disebut dengan value pointed by.
Contoh :
#include <iostream>
using namespace std;
int main(){
int *nil1;
int nil2 = 9;
nil1 = &nil2;
cout<<"Nilai dari nil1 : "<<nil1<<endl;
cout<<"Nilai dari *nil1 : "<<*nil1<<endl;
cout<<"Nilai dari &nil1 : "<<&nil1<<endl;
cout<<"Nilai dari &nil2 : "<<&nil2<<endl;
return 0; }
PRAKTIKUM MANDIRI
1. Peralatan
a) Perangkat komputer / PC / Laptop / Notebook .
b) Sistem operasi Windows / Linux (optional Mac OS)
c) Aplikasi Code Block
2. Prosedur
a) Baca dan pahami semua tahapan praktikum dengan cermat.
b) Gunakan fasilitas yang disediakan dengan penuh rasa tanggung jawab.
c) Rapihkan kembali setelah menggunakan komputer (mouse, keyboard, kursi, dll)
EVALUASI PRAKTIKUM
1. Jelaskan Source Code pada kegiatan praktikum.
2. Kerjakan Source Code dibawah ini.
#include <iostream>
using namespace std;
int main()
{
Buatlah variabel pointer (*) nil1 bertipe int.
Buatlah variabel pointer berpointer (**) nil3 bertipe int.
Buatlah variabel nil2 bertipe int dengan nilai samadengan 15.
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 5, praktikan diharapkan mampu memahami konsep Linked
List serta mampu mengimplementasikannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui tools yang dapat digunakan dalam bahasa C++
2. Mengetahui konsep linked list.
3. Mampu mengimplementasikan linked list dalam program
TUGAS PENDAHULUAN
1. Jelaskan pengertian dan konsep stack atau tumpukan.
2. Gambarkan ilustrasi dari konsep stack atau tumpukan
3. Tuliskan dan jelaskan operasi-operasi yang terdapat pada program stack atau tumpukan.
4. Tuliskan contoh program dari stack atau tumpukan beserta outputnya.
TEORI DASAR:
1. Linked List
Linked List adalah struktur data yang tersusun atas node-node yang minimal memiliki 2 field pada
tiap node, yaitu data yang akan disimpan dan sebuah pointer. Tiap node tersebut terhubung dengan node
lain melalui field pointer-nya. Linked List juga membutuhkan suatu pointer yang biasa disebut
sebagai head untuk menandakan node pertama dari list tersebut.
head = baru;
}
cout<<"data masuk";
}
void insertBelakang (int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1){
head=baru;
head->next = NULL;
} else {
bantu=head;
while(bantu->next!=NULL){ bantu=bantu->next;}
bantu->next = baru;
}
cout<<"Data masuk";
}
void tampil(){
TNode *bantu;
bantu = head;
if(isEmpty()==0){
while(bantu!=NULL){
cout<<bantu->data<<" ";
bantu=bantu->next;
}
cout<<"";
} else cout<<"Masih kosong\n";
}
void hapusDepan (){
TNode *hapus;
int d;
if (isEmpty()==0){
if(head->next != NULL){
hapus = head;
d = hapus->data;
head = head->next;
delete hapus;
} else {
d = head->data;
head = NULL;
}
cout<<d<<"terhapus";
}else cout<<"Masih kosong\n";
}
void hapusBelakang(){
TNode *hapus,*bantu;
int d;
if (isEmpty()==0){
if(head->next != NULL){
bantu = head;
while(bantu->next->next!=NULL){
bantu = bantu->next;
}
hapus = bantu->next;
d = hapus->data;
bantu->next = NULL;
delete hapus;
} else {
d = head->data;
head = NULL;
}
cout<<d<<"terhapus";
} else cout<<"Masih kosong\n";
}
int main(){
int pil,databaru;
cout<<"* ------------------------------- *"<<endl;
cout<<"* Single Linked List Non Circular"<<endl;
cout<<"* ------------------------------- *"<<endl;
do
{
cout<<"\n";
cout<<"\n1. Insert Depan";
cout<<"\n2. Insert Belakang";
cout<<"\n3. Delete Depan";
cout<<"\n4. Delete Belakang";
cout<<"\n5. Tampil Data";
cout<<"\n\nSilahkan Masukan Pilihan Anda :";cin>>pil;
switch (pil)
{
case 1: {
cout<<"Masukkan Data = ";
cin>>databaru;
insertDepan(databaru);
break;
}
case 2:{
cout<<"Masukkan Data = ";
cin>>databaru;
insertBelakang(databaru);
break;
}
case 3:{
hapusDepan();
break;
}
case 4:{
hapusBelakang();
break;
}
case 5:{
tampil();
break;
}
default :{
cout<<"\n Maaf, Tidak ada dalam pilihan";
}
}
} while(pil>=1 && pil<= 5);
}
PRAKTIKUM MANDIRI
1. Peralatan
a) Perangkat komputer / PC / Laptop / Notebook .
b) Sistem operasi Windows / Linux (optional Mac OS)
c) Aplikasi Code Block
2. Prosedur
a) Baca dan pahami semua tahapan praktikum dengan cermat.
b) Gunakan fasilitas yang disediakan dengan penuh rasa tanggung jawab.
c) Rapihkan kembali setelah menggunakan komputer (mouse, keyboard, kursi, dll)
d) Perhatikan sikap anda untuk tidak mengganggu rekan praktikan lain
e) Pastikan diri anda tidak menyentuh sumber listrik.
3. Kegiatan Praktikum
1) Buka texteditor yang akan digunakan.
2) Kerjakan contoh program linked list pada teori dasar.
3) Setelah percobaan selesai, tutup semua perangkat lunak yang telah digunakan.
4) Matikan PC dan Rapihkan meja praktikum.
EVALUASI PRAKTIKUM
1. Buatlah sebuah program sorting dengan menggunakan metode insertion sort dengan
mengimplementasikan linked list.
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 6, praktikan diharapkan mampu memahami stack dan
konsepnya serta mampu mengimplementasikannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui konsep yang digunakan dalam stack.
2. Mengetahui algoritma stack dan pengimplementasiannya kedalam program.
TUGAS PENDAHULUAN
1. Jelaskan pengertian dan konsep queue atau antrian
2. Gambarkan ilustrasi dari konsep queue atau antrian.
3. Tuliskan dan jelaskan operasi-operasi yang terdapat pada program queue atau antrian
4. Tuliskan contoh program dari queue atau antrian beserta outputnya.
TEORI DASAR:
1. Stack
Stack berarti tumpukan yang menerapkan konsep LIFO (Last In First Out) yang artinya data yang
terakhir masuk akan menjadi data yang pertama keluar. Ada beberapa operas-operasi pada stack yaitu :
a. Push Untuk menambahkan item pada tumpukan paling atas
b. Pop Untuk mengambil item teratas
c. Clear Untuk mengosongkan stack
d. IsEmpty Untuk memeriksa apakah stack kosong
e. IsFull Untuk memeriksa apakah stack sudah penuh
PRAKTIKUM MANDIRI
1. Peralatan
a) Perangkat komputer / PC / Laptop / Notebook .
b) Sistem operasi Windows / Linux (optional Mac OS)
c) Aplikasi Code Block
2. Prosedur
a) Baca dan pahami semua tahapan praktikum dengan cermat.
b) Gunakan fasilitas yang disediakan dengan penuh rasa tanggung jawab.
c) Rapihkan kembali setelah menggunakan komputer (mouse, keyboard, kursi, dll)
d) Perhatikan sikap anda untuk tidak mengganggu rekan praktikan lain
e) Pastikan diri anda tidak menyentuh sumber listrik.
3. Kegiatan Praktikum
1) Buka texteditor yang akan digunakan.
2) Buat file baru kemudian simpan file tersebut dengan nama “ContohTumpukan.cpp”
3) Kerjakan program berikut.
#include <iostream>
using namespace std;
int top=-1;
int data[5];
void Push (int input){
top=top+1;
data[top]=input;
}
void Pop (){
top=top-1;
}
void isiStack(){
for (int i=top; i>=0; i--) {
cout<<"| "<<data[i]<<" |"<<endl;
}
}
int main () {
int pilih, input;
while (true){
cout<< "Menu" << endl;
cout<< "1. Push Stack" << endl;
cout<< "2. Pop Stack" << endl;
cout<< "3. Isi Stack" << endl;
cout<< "Masukkan Pilihan : " ; cin>>pilih;
if (pilih == 1){
cout<< "Masukkan Data : "; cin>>input;
Push(input);
cout<< "Push Berhasil !" << endl;
} else if (pilih == 2){
Pop();
cout<< "Pop Berhasil" << endl;
} else if (pilih == 3) {
isiStack();
} else { cout<< "Tidak Ada Pilihan !" << endl;
}
}
}
4) Setelah percobaan selesai, tutup semua perangkat lunak yang telah digunakan.
5) Matikan PC dan Rapihkan meja praktikum.
EVALUASI PRAKTIKUM
1. Lengkapilah program pada kegiatan praktikum dengan operasi :
a. Clear untuk mengosongkan stack.
b. IsEmpty untuk memeriksa stack dalam kondisi kosong
c. IsFull untuk memeriksa stack dalam kondisi full
d. Tambahkan validasi untuk tidak dapat menambahkan data jika stack penuh dan validasi untuk
tidak dapat menghapus data jika stack kosong.
2. Buatlah program seperti ilustrasi berikut.
5 5 25 56
3 3 9 36
6 6 36 25
8 7 56 14
7 2 14 9
Tumpukan Tumpukan Tumpukan Tumpukan
1 2 3 4
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 7, praktikan diharapkan mampu memahami queue dan
konsepnya serta mampu mengimplementasikannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui konsep yang digunakan dalam queue.
2. Mengetahui algoritma queue dan pengimplementasiannya kedalam program.
TUGAS PENDAHULUAN
1. Tuliskan dan jelaskan pengertian tree dalam struktur data.
2. Tuliskan dan jelaskan jenis-jenis tree dalam struktur data.
3. Tuliskan dan jelaskan pengertian binary tree.
4. Tuliskan dan jelaskan maksud dari preorder, inorder dan postorder.
5. Tuliskan contoh program tree sederhana.
TEORI DASAR:
1. Queue
Queue berarti antrian yang menerapkan konsep FIFO (First In First Out) yang artinya data yang
pertama masuk akan menjadi data yang pertama keluar. Ada beberapa operasi-operasi pada antrian yaitu:
a. Enqueue Untuk menambahkan item pada antrian
b. Dequeue Untuk mengambil item dari antrian
c. Clear Untuk mengosongkan antrian
d. IsEmpty Untuk memeriksa apakah antrian kosong
e. IsFull Untuk memeriksa apakah antrian sudah penuh
PRAKTIKUM MANDIRI
1. Peralatan
a) Perangkat komputer / PC / Laptop / Notebook .
b) Sistem operasi Windows / Linux (optional Mac OS)
c) Aplikasi Code Block
2. Prosedur
a) Baca dan pahami semua tahapan praktikum dengan cermat.
b) Gunakan fasilitas yang disediakan dengan penuh rasa tanggung jawab.
c) Rapihkan kembali setelah menggunakan komputer (mouse, keyboard, kursi, dll)
d) Perhatikan sikap anda untuk tidak mengganggu rekan praktikan lain
e) Pastikan diri anda tidak menyentuh sumber listrik.
3. Kegiatan Praktikum
1) Buka texteditor yang akan digunakan.
2) Buat file baru kemudian simpan file tersebut dengan nama “ContohAntrian.cpp”
3) Kerjakan program berikut.
#include <iostream>
using namespace std;
int main(){
int queue[5];
int depan=-1;
int belakang =-1;
int pilihan, data, i;
do {
cout<<"MENU \n";
cout<<"1. ENQUEUE \n2. DEQUEUE \n3. VIEW \n4. EXIT\n";
cout<<"Masukkan Pilihan : ";
cin>>pilihan;
cout<<endl;
switch (pilihan) {
case 1:
if (belakang<4)
{ cout<<"Data Masuk : ";
cin>>data;
queue[belakang+1]=data;
belakang++;
if(belakang==0)
depan=0;
}else
cout<<"Queue Penuh"<<endl;
break;
case 2 :
if (depan<=belakang)
{cout<<"Data Keluar ="<<queue[depan];
depan++;
}else{cout<<"QUEUE KOSONG"<<endl;}
break;
case 3 :
for(i=depan;i<=belakang;i++)
cout<<"===== "<< queue[i]<<" ====="<<endl;
break;
}
}while(pilihan !=4);
return 0;
}
4) Setelah percobaan selesai, tutup semua perangkat lunak yang telah digunakan.
5) Matikan PC dan Rapihkan meja praktikum.
EVALUASI PRAKTIKUM
1. Buatlah program antrian sesuai ilustrasi berikut ini.
Pengguna melakukan Enqueue sebanyak 10 kali. Kemudian data tersimpan pada Antrian1.
Ketika pengguna melakukan Dequeue, data yang dikeluarkan akan masuk ke antrian selanjutnya. Data
dengan angka yang lebih dari 20 akan masuk ke Antrian2 sedangkan dtaa dengan angka yang kurang dari
20 akan masuk ke Antrian3. Pengguna akan dapat melihat isi dari ketiga Antrian tersebut.
Modul 8 : Tree
KOMPETENSI :
Setelah menyelesaikan praktikum pada modul 8, praktikan diharapkan mampu memahami konsep Tree serta
mampu mengimplementasikannya.
TUJUAN INTRUKSIONAL KHUSUS :
1. Mengetahui konsep Tree.
2. Mengetahui konsep Binary Tree
3. Mengetahui konsep Preorder, Inorder, dan Postorder.
4. Mampu mengimplementasikan Tree dalam program
TEORI DASAR:
1. Tree
Merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat
hirarkis (hubungan one to many) antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan
simpul/node dengan satu elemen khusus yang disebut Root dan node lainnya terbagi menjadi himpunan-
himpunan yang saling tak berhubungan satu sama lainnya (disebut subtree). Untuk jelasnya, di bawah
akan diuraikan istilah-istilah umum dalam tree :
Prodecessor : node yang berada diatas node tertentu.
Successor : node yang berada di bawah node tertentu.
Parent : predecssor satu level di atas suatu node.
Child : successor satu level di bawah suatu node.
Sibling : node-node yang memiliki parent yang sama dengan suatu node.
Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua
karakteristik dari tree tersebut.
Size : banyaknya node dalam suatu tree.
Height : banyaknya tingkatan/level dalam suatu tree.
Root : satu-satunya node khusus dalam tree yang tak punya predecssor.
Leaf : node-node dalam tree yang tak memiliki successor.
Degree : banyaknya child yang dimiliki suatu node
2. Binary Tree
Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree
dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut, maka tiap node dalam binary
tree hanya boleh memiliki paling banyak dua child.
do{
int data;
cout<<"MENU"<<endl;
cout<<"(1) TAMBAH"<<endl;
cout<<"(2) LIHAT PRE-ORDER"<<endl;
cout<<"(3) LIHAT IN-ORDER"<<endl;
cout<<"(4) LIHAT POST-ORDER"<<endl;
cout<<"(5) KELUAR"<<endl;
cout<<"Pilihan : "; cin>>pil;
switch(pil){
case 1 :cout<<"Data Baru : ";
cin>>data;
tambah(&pohon, data);break;
case 2 :if (pohon!=NULL) preOrder(pohon);
else cout<<"MASIH KOSONG ! ";break;
case 3 :if (pohon!=NULL) inOrder(pohon);
else cout<<"MASIH KOSONG ! ";break;
case 4 :if (pohon!=NULL) postOrder(pohon);
else cout<<"MASIH KOSONG ! ";break;
}
cout<<endl;
}while(pil !=5);
return 0;
}
PRAKTIKUM MANDIRI
1. Peralatan
a) Perangkat komputer / PC / Laptop / Notebook .
b) Sistem operasi Windows / Linux (optional Mac OS)
c) Aplikasi Code Block
2. Prosedur
a) Baca dan pahami semua tahapan praktikum dengan cermat.
b) Gunakan fasilitas yang disediakan dengan penuh rasa tanggung jawab.
c) Rapihkan kembali setelah menggunakan komputer (mouse, keyboard, kursi, dll)
d) Perhatikan sikap anda untuk tidak mengganggu rekan praktikan lain
e) Pastikan diri anda tidak menyentuh sumber listrik.
3. Kegiatan Praktikum
1) Buka texteditor yang akan digunakan.
2) Kerjakan contoh program linked list pada teori dasar.
3) Setelah percobaan selesai, tutup semua perangkat lunak yang telah digunakan.
4) Matikan PC dan Rapihkan meja praktikum.
EVALUASI PRAKTIKUM
1. Buatlah sebuah program searching dengan menggunakan konsep binary tree (Binary Tree Searching)!
EVALUASI PRAKTIKUM 1
Stamp/Date Result/Point Signature/Name
EVALUASI PRAKTIKUM 2
Stamp/Date Result/Point Signature/Name
EVALUASI PRAKTIKUM 3
Stamp/Date Result/Point Signature/Name
EVALUASI PRAKTIKUM 4
Stamp/Date Result/Point Signature/Name