Modul Struktur Data
Modul Struktur Data
KATA PENGANTAR
Akhir kata penulis berharap semoga modul Struktur Data ini dapat
dipergunakan sebaik-baiknya dan dapat dijadikan referensi untuk mahasiswa
umum yang ingin mempelajari Struktur Data
Penulis
2
Modul Struktur Data
DAFTAR ISI
Cover ..........................................................................................................................1
Kata Pengantar ...........................................................................................................2
Daftar Isi.....................................................................................................................3
Pertemuan 1 Pengenalan Dasar Tipe Data dan Struktur Data....................................4
Pertemuan 2 Array Dimensi 1 dan Dimensi 2 ..........................................................6
Pertemuan 3 Array Dimensi Banyak, Triangular dan Spare Array ..........................8
Pertemuan 4 Single Linked List ..................................................................................10
Pertemuan 5 Tumpukan (Stack) .................................................................................12
Pertemuan 6 Antrian (Queue) ....................................................................................14
Pertemuan 7 Review/Quis..........................................................................................16
Pertemuan 8 Ujian Tengah Semester ........................................................................17
Pertemuan 9 Pohon Biner (Tree)................................................................................18
Pertemuan 10 Kunjungan Pohon Biner .....................................................................19
Pertemuan 11 Graph dan Matriks Penyajian Graph ...................................................20
Pertemuan 12-14 Presentasi Project ...........................................................................21
Pertemuan 15 Review/ Quis.......................................................................................22
Pertemuan 16 Ujian Akhir Semester .........................................................................23
3
Modul Struktur Data
PERTEMUAN 1
PENGENALAN DASAR TIPE DATA DAN STRUKTUR DATA
Tujuan Praktek :
Memahami perbedaan penggunaan operator dan type data dari hasil running
program
Langkah :
1. Membuka program Borland C++ 5.02 dari menu start
2. Ketik contoh program dibawah ini, simpan dengan nama latih1a :
// Program latih 1a //
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void main()
{
int a, b;
int c, d;
clrscr;
cout<<"\n masukkan nilai 1 = "; cin>>a;
cout<<"\n masukkan nilai 2 = "; cin>>b;
c=++a;
d=--b;
cout<<"\n nilai c = "<<c<<endl;
cout<<"\n nilai d = "<<d<<endl;
getche();
}
4
Modul Struktur Data
3. Running program
Langkah 2:
4. Lakukan tahapan seperti diatas terhadap program dibawah ini, simpan dengan
nama latih1b
// Program latih 1b //
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void main()
{
a=1; int b=0; int c=1;
int x, y;
clrscr;
x=a||b;
y=b&&c;
cout<<"\n nilai x = "<<x<<endl;
cout<<"\n nilai y = "<<y<<endl;
getche();
}
5
Modul Struktur Data
PERTEMUAN 2
ARRAY DIMENSI 1 DAN ARRAY DIMENSI 2
Tujuan Praktek :
Memahami dan mampu membuat Program Array dimensi 1 dan array dimensi 2
Langkah :
1. Ketik contoh program array dimensi 1 berikut ini, simpan dengan nama
latih2a :
2. Running program
3. Ketik contoh program array dimensi 2 berikut ini, simpan dengan nama
latih2b :
6
Modul Struktur Data
4. Running program
Latihan :
7
Modul Struktur Data
Hasil Praktek :
8
Modul Struktur Data
PERTEMUAN 3
ARRAY DIMENSI BANYAK, TRIANGULAR DAN SPARSE ARRAY
Tujuan Praktek :
Memahami dan mampu membuat Program Pemetaan Array dimensi 1 dan
dimensi 2
Langkah :
void main()
{
int a[10];
printf(" Hasil pemetaan array dimensi 1 ke storage = \n");
printf("\n");
for (int i=0; i<8; i++)
{
printf(" %x \n",&a[i]);
}
getch();
}
int main()
{
int a[3][5];
printf(" Hasil pemetaan array dimensi 1 ke storage = \n");
printf("\n");
for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
printf(" %x ",&a[i][j]);
}
printf("\n");
}
getch();
return 0;
}
9
Modul Struktur Data
Latihan :
Hasil Praktek :
1. Running program pemetaan array dimensi 1 ke storage
2. Running program pemetaan array dimensi 2 ke storage
10
Modul Struktur Data
PERTEMUAN 4
SINGLE LINKED LIST
Tujuan Praktek :
Memahami dan mampu membuat Program Single Link List
Langkah :
1. Ketik contoh program berikut ini, simpan dengan nama latih4a :
// Program penggunaan pointer //
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void main()
{
int x,y,*z;
x=15;
cout<<"Nilai X = "<<x<<endl;
cout<<endl;
y=++x;
z=&x;
cout<<"Nilai Y = "<<y<<endl;
cout<<endl;
cout<<"Nilai Z = "<<z<<endl;
getch();
}
2. Running Program
3. Bandingkan variable x, y dan z kemudian tentukan variable mana yang
merupakan pointer (penunjuk ke alamat memory)
4. Ketik contoh program berikut ini, simpan dengan nama latih4b :
11
Modul Struktur Data
//Program senarai//
#include <iostream.h>
#include <iomanip.h>
#include <string.h>
#include <conio.h>
struct Simpul
{
char nama[15];
char telp[12];
Simpul *lanjutan;
};
class Senarai
{
private:
Simpul *pertama;
Simpul *pendahulu;
Simpul *cari(char *nama);
public:
Senarai();
~Senarai();
int tambah(char *nama,char *telp);
void tampil();
void tampil(char *nama);
int hapus(char *nama);
};
void main()
{
clrscr;
Senarai daftar;
daftar.tambah("Nitamerlina","91599072");
daftar.tambah("Herlawati","94448758");
daftar.tambah("Kusumahati","96436705");
daftar.tambah("Sumarni","91599072");
daftar.tampil();
daftar.tampil("uma");
daftar.hapus("Sumarni");
daftar.tampil();
}
Senarai::Senarai()
{
pertama = NULL;
}
12
Modul Struktur Data
Senarai::~Senarai()
Simpul *simpul_dihapus;
{
while(pertama != NULL)
{
simpul_dihapus = pertama;
pertama = pertama -> lanjutan;
delete simpul_dihapus;
}
}
5. Running Program
Latihan :
Buatkan program untuk menambah data pada linked list
Hasil Praktek :
3. Running program single linked list
13
Modul Struktur Data
PERTEMUAN 5
TUMPUKAN (STACK)
Tujuan Praktek :
Memahami dan mampu membuat Program Stack (Tumpukan)
Langkah:
1. Ketik contoh program berikut ini, simpan dengan nama latih5a:
#include <stdio.h>
void main()
{
int stack[5];
int top=-1;
int pilih, i;
do
{
printf("\n");
printf("MENU\n");
printf("\n");
printf("1. PUSH\n2. POP\n3. VIEW\n4. EXIT\n");
printf("\n");
printf("Pilih = "); scanf("%d", &pilih);
printf("\n");
switch(pilih)
{
case 1:
if (top > 5)
printf("Stack penuh!\n");
else
{ printf("Data = "); scanf("%d", &stack[top+1]);
top++;
}
break;
case 2:
if (top < 0)
printf("Stack kosong!\n");
else
{
printf("Data keluar = %d\n", stack[top]);
top--;
}
break;
14
Modul Struktur Data
case 3:
for(i=top; i>=0; i--)
printf("\n");
printf("%d ", stack[i]);
printf("\n");
break;
case 4:
printf("Exit…\n");
break;
}
}while (pilih!=4);
}
Hasil Praktek :
4. Running program Stack
15
Modul Struktur Data
PERTEMUAN 6
ANTRIAN (QUEUE)
Tujuan Praktek :
Memahami dan mampu membuat Program Queue (Antrian)
Langkah :
1. Ketik contoh program berikut ini, simpan dengan nama latih6a:
#include <iostream.h>
#include <conio.h>
main()
{
int cek=0, data[20], x, hapus;
char pil;
do {
clrscr();
cout<<"1. Tambah Antrian"<<endl;
cout<<"2. Hapus Antrian"<<endl;
cout<<"3. Lihat Antrian"<<endl;
cout<<"4. Keluar"<<endl;
cout<<endl;
cout<<"Silahkan masukkan pilihan anda = "; pil=getche();
cout<<endl;
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
cout<<"Anda salah mengetikkan inputan";
else
{
if(pil=='1') //PUSH
{
if(cek==20)
cout<<"Antrian Penuh";
else
{
cout<<"Masukkan nilai = "; cin>>x;
data[cek]=x;
cek++;
}
}
else
{
if(pil=='2') //POP
{
if(cek==0)
cout<<"Antrian kosong";
else
16
Modul Struktur Data
{
hapus=data[0];
for(int v=0;v<cek;v++)
data[v]=data[v+1];
data[cek-1]=NULL;
cek--;
cout<<"Data dengan nilai "<<hapus<<" terhapus";
}
getch();
}
else
{
if(pil=='3') //CEK DATA
{
if(cek==0)
cout<<"Antrian Kosong";
else
{
cout<<endl;
for(int z=0;z<cek;z++)
{
cout<<" | ";
cout<<" "<<data[z];
cout<<" | ";
}
}
getch();
}
}
}
}
}while(pil!='4');
}
Hasil Praktek :
5. Running program Queue
17
Modul Struktur Data
PERTEMUAN 7
REVIEW / QUIS
18
Modul Struktur Data
PERTEMUAN 8
UJIAN TENGAH SEMESTER
19
Modul Struktur Data
PERTEMUAN 9
POHON BINER (TREE)
Tujuan Praktek :
Memahami dan mampu membuat konsep Pohon dan Konsep Binary Tree
2 (N) - 1
N
2 ( I – 1)
I=1
20
Modul Struktur Data
LATIHAN:
Buatlah pohon biner dari barisan bilangan berikut:
1. 12, 22, 8, 19, 10, 9, 20, 4, 2, 6
2. 2, 3, 4, 5, 50, 10, 15, 13, 20, 12, 10, 7
3. 7, 13, 4, 6, 5, 9, 15, 20, 60, 14, 40, 70
Hasil Praktek :
6. Gambaran Pohon Biner (Binary Tree)
21
Modul Struktur Data
PERTEMUAN 10
KUNJUNGAN POHON BINER
Tujuan Praktek :
Memahami dan mampu membedakan bentuk kunjungan preorder, inorder dan
postorder. Serta pembentukan prefix,infix dan postfix
Kunjungan Pohon Biner merupakan salah satu operasi yang sering dilakukan
pada suatu pohon Biner tepat satu kali (Binary Tree Traversal). Operasi ini terbagi
menjadi 3 bentuk:
1. Kunjungan secara Preorder (Depth First Order)
Mempunyai urutan:
a. Cetak isi simpul yang dikunjungi (simpul akar)
b. Kunjungi cabang kiri
c. Kunjungi cabang kanan
2. Kunjungan secara Inorder (Symetic Order)
Mempunyai urutan:
a. Kunjungi cabang kiri
b. Cetak isi simpul yang dikunjungi (simpul akar)
c. Kunjungi cabang kanan
3. Kunjungan secara Postorder
Mempunyai urutan:
a. Kunjungi cabang kiri
b. Kunjungi cabang kanan
c. Cetak isi simpul yang dikunjungi (simpul akar)
LATIHAN
Dik : 20, 10, 28, 6, 15, 35, 8, 2, 7, 40, 12, 9, 25. Susunlah menjadi Binary Tree.
Kemudian :
1. Lakukanlah Traversal Preorder, Inorder, Postorder
22
Modul Struktur Data
Hasil Praktek :
7. Gambaran Pohon Biner (Binary Tree)
23
Modul Struktur Data
PERTEMUAN 11
GRAPH DAN MATRIKS PENYAJIAN GRAPH
Tujuan Praktek :
Memahami dan mengetahui graph dan penggunaannya tentang penelusuran graph
2. Trail adalah Walk dengan semua ruas dalam barisan adalah berbeda
3. Path atau jalur adalah Walk yang semua simpul dalam barisan adalah
berbeda. Jadi suatu path pastilah sebuah trail
LATIHAN
1. Gambarlah sebuah graf sederhana yang dapat dibentuk dari 4 titik
{a,b,c,d} dan 2 garis
2. Gambarlah Komplemen graf G yang didefinisakn dalam gambar di bawah
ini
24
Modul Struktur Data
25
Modul Struktur Data
PERTEMUAN 12-14
PRESENTASI PROJECT
26
Modul Struktur Data
PERTEMUAN 15
REVIEW MATERI/QUIS
27
Modul Struktur Data
PERTEMUAN 16
UJIAN AKHIR SEMESTER (UAS)
28
Modul Struktur Data
DAFTAR PUSTAKA
Andri Kristanto. 2003. Struktur Data Dengan C++. Penerbit Graha Ilmu.
Yogyakarta
Sjukani. Moh. 2009. Struktur Data (Algoritma & struktur Data 2) Dengan C, C++.
Edisi 3. Mitra Wacana Media. Jakarta.
29