tugas project management - repository.bsi.ac.id · kasus dengan bahasa pemrograman borland c++,...

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

Upload: others

Post on 21-Oct-2020

40 views

Category:

Documents


0 download

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