tugas project management - repository.bsi.ac.id · kasus dengan bahasa pemrograman borland c++,...
TRANSCRIPT
-
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
2
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
-
Modul Struktur Data
3
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
-
Modul Struktur Data
4
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
#include
#include
void main()
{
int a, b;
int c, d;
clrscr;
couta;
coutb;
c=++a;
d=--b;
cout
-
Modul Struktur Data
5
3. Running program
Langkah 2:
4. Lakukan tahapan seperti diatas terhadap program dibawah ini, simpan dengan
nama latih1b
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
// Program latih 1b //
#include
#include
#include
void main()
{
a=1; int b=0; int c=1;
int x, y;
clrscr;
x=a||b;
y=b&&c;
cout
-
Modul Struktur Data
6
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 :
// Program array dim 1 // #include #include #include main() { int i,j,x; int data[100]; cout
-
Modul Struktur Data
7
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
// Program array dim 2 //
#include
#include
#include
main()
{
int i,j,brs,kol;
int matriks[10][10] ;
cout
-
Modul Struktur Data
8
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
-
Modul Struktur Data
9
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 :
2. Running program latih3a 3. Ketik contoh program berikut ini, simpan dengan nama latih3b :
// Program pemetaan Array Dimensi 1 // #include #include void main() { int a[10]; printf(" Hasil pemetaan array dimensi 1 ke storage = \n"); printf("\n"); for (int i=0; i
-
Modul Struktur Data
10
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
-
Modul Struktur Data
11
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 :
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 :
// Program penggunaan pointer //
#include
#include
#include
void main()
{
int x,y,*z;
x=15;
cout
-
Modul Struktur Data
12
//Program senarai// #include #include #include #include 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;
}
-
Modul Struktur Data
13
5. Running Program
Latihan :
Buatkan program untuk menambah data pada linked list
Hasil Praktek :
3. Running program single linked list
Senarai::~Senarai() Simpul *simpul_dihapus; { while(pertama != NULL) { simpul_dihapus = pertama; pertama = pertama -> lanjutan; delete simpul_dihapus; } }
-
Modul Struktur Data
14
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 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;
-
Modul Struktur Data
15
2. Running program latih5a
3. Buatlah kesimpulan tentang program tersebut
Hasil Praktek :
4. Running program Stack
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); }
-
Modul Struktur Data
16
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 #include main() { int cek=0, data[20], x, hapus; char pil; do { clrscr(); cout
-
Modul Struktur Data
17
2. Running Program latih6a
3. Buatlah kesimpulan dari program tersebut
Hasil Praktek :
5. Running program Queue
{ hapus=data[0]; for(int v=0;v
-
Modul Struktur Data
18
PERTEMUAN 7
REVIEW / QUIS
-
Modul Struktur Data
19
PERTEMUAN 8
UJIAN TENGAH SEMESTER
-
Modul Struktur Data
20
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 :
8. Banyaknya Simpul untuk setiap Level I adalah :
Hutan (Forest) adalah kumpulan Pohon yang tidak saling berhubungan
2 (N) - 1
N
2 ( I – 1)
I = 1
-
Modul Struktur Data
21
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)
-
Modul Struktur Data
22
PERTEMUAN 10
KUNJUNGAN POHON BINER
Tujuan Praktek :
Memahami dan mampu membedakan bentuk kunjungan preorder, inorder dan
postorder. Serta pembentukan prefix,infix dan postfix
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
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)
-
Modul Struktur Data
23
2. Lakukanlah penghapusan secara terpisah untuk node-node 8, 6, 15, 28, 20
Hasil Praktek :
7. Gambaran Pohon Biner (Binary Tree)
-
Modul Struktur Data
24
PERTEMUAN 11
GRAPH DAN MATRIKS PENYAJIAN GRAPH
Tujuan Praktek :
Memahami dan mengetahui graph dan penggunaannya tentang penelusuran graph
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
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
-
Modul Struktur Data
25
-
Modul Struktur Data
26
PERTEMUAN 12-14
PRESENTASI PROJECT
-
Modul Struktur Data
27
PERTEMUAN 15
REVIEW MATERI/QUIS
-
Modul Struktur Data
28
PERTEMUAN 16
UJIAN AKHIR SEMESTER (UAS)
-
Modul Struktur Data
29
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