0% menganggap dokumen ini bermanfaat (0 suara)
186 tayangan29 halaman

Modul Struktur Data

Modul ini membahas struktur data, dimulai dari pengenalan dasar tipe data dan struktur data. Modul ini juga membahas array satu dimensi, dua dimensi, dan banyak dimensi beserta contoh kode programnya dalam bahasa C++.

Diunggah oleh

Daniel Martinus
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
186 tayangan29 halaman

Modul Struktur Data

Modul ini membahas struktur data, dimulai dari pengenalan dasar tipe data dan struktur data. Modul ini juga membahas array satu dimensi, dua dimensi, dan banyak dimensi beserta contoh kode programnya dalam bahasa C++.

Diunggah oleh

Daniel Martinus
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 29

STRUKTUR DATA

Disusun sebagai modul mata kuliah Struktur Data


pada Semester Genap 2018/2019

PROGRAM STUDI SISTEM INFORMASI AKUNTANSI


FAKULTAS TEKNIK DAN INFORMATIKA
UNIVERSITAS BINA SARANA INFORMATIKA
2018
Modul Struktur Data

KATA PENGANTAR

Puji syukur penulis panjatkan kehadirat Allah SWT, yang telah


memberikan rahmat dan hidayahnya sehingga modul Struktur Data ini dapat
terselesaikan dengan baik. Selanjutnya modul ini disusun untuk memberikan
gambaran bagi mahasiswa mengenai Struktur Data disertai dengan contoh
kasus dengan bahasa pemrograman Borland C++, sehingga lebih memudahkan
mahasiswa dalam memahami Struktur Data

Tak lupa penulis mengucapkan banyak terima kasih kepada semua


pihak yang telah membantu dengan tenaga dan pikirannya, terima kasih juga
kepada rekan–rekan instruktur, dosen dan semuanya yang tidak bisa
disebutkan satu persatu, yang selalu mendukung penulis sehingga modul ini
sehingga dapat selesai sesuai yang kita inginkan semua.

Penulis menyadari masih banyak kekurangan dalam penyusunan


modul ini. Untuk itu saran dan kritik yang membangun sangat penulis
harapkan guna perbaikan dan pengembangan modul ini ke depan.

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

Pontianak, September 2018

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

DAFTAR PUSTAKA ................................................................................................24

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. Buat kesimpulan dari program diatas dengan cara :


a. Menjelaskan perbedaan penggunaan operator pada program latih1a dan
latih1b
b. Menjelaskan perbedaan input dari kedua program tersebut

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 :

// Program array dim 1 //


#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
main()
{
int i,j,x;
int data[100];
cout<<endl;
cout<<" Masukkan jumlah data = ";cin>>x;
cout<<endl;
for (i=1;i<=x;i++)
{
cout<<" Data ke - "<<i<<" = ";
cin>>data[i];
}
cout<<endl;
cout<<" Array Dimensi 1 yang terbentuk adalah :"<<endl;
cout<<endl;
for (i=1;i<=x; i++)
{
cout<<" "<<data[i];
}
getch();
}

2. Running program

3. Ketik contoh program array dimensi 2 berikut ini, simpan dengan nama
latih2b :

6
Modul Struktur Data

// Program array dim 2 //


#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
main()
{
int i,j,brs,kol;
int matriks[10][10] ;
cout<<endl;
cout<<" Masukkan jumlah baris = ";cin>>brs;
cout<<" Masukkan jumlah kolom = ";cin>>kol;
cout<<endl;
for (i=1;i<=brs;i++) {
for (j=1;j<=kol;j++) {
cout<<" Data ke - "<<i<<j<<" = ";
cin>>matriks[i][j];
}
}
cout<<endl;
cout<<" Bentuk matriksnya adalah "<<endl;
cout<<endl;
for (i=1;i<=brs;i++) {
for (j=1;j<=kol;j++) {
cout<<" "<<matriks[i][j];
cout<<" " ;
}
cout<<endl;
}
getch();
}

4. Running program

Latihan :

1. Buatkan program array dimensi 1 yang menghasilkan tampilan nama-


nama hari : senin sampai minggu

2. Buatkan program array dimensi 2 yang menghasilkan tampilan array


segitiga atas yang hanya terdiri dari nilai 1, 2, 3, dan 4

7
Modul Struktur Data

Hasil Praktek :

1. Running program array dimensi 1 untuk menampilkan hasil :


Nama Hari :
Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Minggu

2. Running program array dimensi 2 untuk menampilkan hasil :


1 2 3 4
0 2 3 4
0 0 3 4
0 0 0 4

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 :

1. Ketik contoh program berikut ini, simpan dengan nama latih3a :


// Program pemetaan Array Dimensi 1 //
#include <conio.h>
#include <stdio.h>

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();
}

2. Running program latih3a


3. Ketik contoh program berikut ini, simpan dengan nama latih3b :
// Program pemetaan Array Dimensi 2 //
#include <conio.h>
#include <stdio.h>

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

4. Running program latih3b

Latihan :

1. Buatkan lagi program pemetaan array dimensi 1 dan dimensi 2 seperti


diatas dengan mengganti type data array dari int menjadi char

2. Simpan dengan nama latih3c dan latih3d

3. Bandingkan hasil running program latih3a dan latih3b dengan program


latihan (latih3c dan latih3d), buatkan kesimpulan

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);
}

2. Running program latih5a


3. Buatlah kesimpulan tentang program tersebut

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');
}

2. Running Program latih6a


3. Buatlah kesimpulan dari program tersebut

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

Sifat Utama Pohon Berakar


1. Jika Pohon mempunyai Simpul sebanyak n, maka banyaknya ruas atau
edge adalah (n-1).
2. Mempunyai Simpul Khusus yang disebut Root, jika Simpul tersebut
memiliki derajat keluar >= 0, dan derajat masuk = 0.
3. Mempunyai Simpul yang disebut sebagai Daun / Leaf, jika Simpul
tersebut berderajat keluar = 0, dan berderajat masuk = 1.
4. Setiap Simpul mempunyai Tingkatan / Level yang dimulai dari Root
yang Levelnya = 1 sampai dengan Level ke - n pada daun paling bawah.
Simpul yang mempunyai Level sama disebut Bersaudara atau Brother
atau Stribling.
5. Pohon mempunyai Ketinggian atau Kedalaman atau Height, yang
merupakan Level tertinggi
6. Pohon mempunyai Weight atau Berat atau Bobot, yang banyaknya daun
(leaf) pada Pohon.
7. Banyaknya Simpul Maksimum sampai Level N adalah :

2 (N) - 1

8. Banyaknya Simpul untuk setiap Level I adalah :

N
 2 ( I – 1)
I=1

Hutan (Forest) adalah kumpulan Pohon yang tidak saling berhubungan

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

2. Lakukanlah penghapusan secara terpisah untuk node-node 8, 6, 15, 28, 20

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

Suatu Graph mengandung 2 himpunan, yaitu :


1. Himpunan V yang elemennya disebut simpul (Vertex atau Point atau Node
atau Titik).
2. Himpunan E yang merupakan pasangan tak urut dari simpul. Anggotanya
disebut Ruas (Edge atau rusuk atau sisi)
Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

Istilah Pada Graph:


1. Walk disebut tertutup, yang menghubungkan V1 dan Vn, yaitu setiap Ruas
menghubungkan simpul awal dan akhir

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

Abdul Kadir. 2003. Pemrograman C++. Penerbit Andi. Yogyakarta.

Andri Kristanto. 2003. Struktur Data Dengan C++. Penerbit Graha Ilmu.
Yogyakarta

Frieyadie. 2006. Panduan Pemrograman C++. Penerbit Andi. Yogyakarta

Sjukani. Moh. 2009. Struktur Data (Algoritma & struktur Data 2) Dengan C, C++.
Edisi 3. Mitra Wacana Media. Jakarta.

Teddy Markus Zakaria. 2006. Konsep dan Implementasi Struktur Data. 5.


Penerbit Informatika. Bandung

29

Anda mungkin juga menyukai