MODUL PRAKTIKUM STRUKTUR DATA

dokumen-dokumen yang mirip
2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Tipe data primitif adalah tipe data dasar yang dikenali oleh Java dan bukan merupakan class. Tipe data primitif ini dapat dikenali dengan ciri

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Array Pendeklarasian Array

SATUAN ACARA PENGAJARAN

BAB 7. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk tiap variabel.

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

RENCANA PEMBELAJARAN SEMESTER

Gambar 13.1 Ilustrasi proses algoritma sorting

Struktur Data. PDE - Struktur Data 1

RENCANA PEMBELAJARAN SEMESTER

BAB 3 STACK (TUMPUKAN)

Lab. Teknik Informatika Struktur Data 1

Tree (Struktur Data) Nisa ul Hafidhoh, MT

S T A C K ( T U M P U K A N )

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Mata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI

Bab 1 Pengantar Struktur Data

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

Heap Tree dan Kegunaannya dalam Heap Sort

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

KKKF33110 STRUKTUR DATA

Algoritma dan Struktur Data STACK

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

ALGORITMA PENGURUTAN & PENCARIAN

RENCANA PROGRAM KEGIATAN PEMBELAJARAN SEMESTER (RPKPS) STRUKTUR DATA

ANALISIS ALGORITMA BINARY SEARCH

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Algoritma Dan Struktur Data II

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

ALGORITMA PENCARIAN (1)

Algoritma dan Struktur Data

STRUKTUR DATA Pertemuan 1 s.d 8

Penerapan BFS dan DFS dalam Garbage Collection

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

MODUL PRAKTIKUM STRUKTUR DATA

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

MATERI PRAKTIKUM STRUKTUR DATA

Struktur Data Array. Rijal Fadilah S.Si

RENCANA PEMBELAJARAN

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Pohon dan Pohon Biner

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

MODUL PRAKTIKUM STRUKTUR DATA

Struktur dan Organisasi Data 2 STRUKTUR DATA

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

TUGAS MATA KULIAH TEKNIK KOMPILASI

Modul Praktikum 4 Pemograman Berorientasi Objek

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Implementasi DFS dan BFS Dalam Recognizer Pushdown Automata

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

MODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA

Kode MK/ Pemrograman Terstruktur 2

BAB II STACK Atau TUMPUKAN

PERKENALAN STRUKTUR DATA. Firmansyah, S.Kom

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Pemrograman Algoritma Dan Struktur Data

BAB 2 TINJAUAN PUSTAKA

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

JAVA BASIC PROGRAMMING Joobshet

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

(3) BAHAN KAJIAN (materi ajar)

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

Tipe Data dan Operator

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Modul Praktikum Bahasa Pemrograman 1

BAB IV QUEUE ATAU ANTREAN

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN)

Pertemuan 7. REVIEW dan QUIS

Penerapan Algoritma Backtracking pada Pewarnaan Graf

BAB 1 TIPE DATA. Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3

BAB 1 TIPE DATA. Struktur Data 1. Sederhana : Array dan Record 2. Majemuk terdiri atas Linier Non Linier

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

Silabus Struktur Data. Bandung 2013

SUMBER BELAJAR PENUNJANG PLPG

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti

Transkripsi:

MODUL PRAKTIKUM STRUKTUR DATA BAHASA PEMOGRAMAN : JAVA SOFTWARE : NETBEANS-8.0.2 Di susun oleh DOSEN PENGEMPUH : JUNAIDI NOH,ST.MT ASISTEN DOSEN : CATUR SURANTO,S.T LABORATORIUM UNIVERSITAS MUHAMMADIYAH MALUKU UTARA PROGRAM STUDI TEKNIK INFORMATIKA 2017 1

DAFTAR ISI DAFTAR ISI... i BAB 1. Overview Struktur Data... 1 1.1 Pengenalan Struktur Data... 1 1.2 Revew... 2 1.2.1 Tipe Data... 3 1.2.2 Struktur Kontrol... 4 BAB II. Dasar-dasar Larik dalam Java... 4 2.1 Mendeklarasikan Array... 4 2.2 Array Satu Dimensi... 4 2.3 Array Dua Multidimensi... 5 2.4 Type Data Abstrak... 6 BAB III. Rekursi... 9 3.1 Penegertian Rekursi... 9 3.2 Bilangan Triangular... 9 3.3 Bilangan Faktorial... 10 BAB IV. Algoritma Pengurutan/Sorting... 12 4.1 Sorting... 12 4.2 Bublle Sort... 12 4.3 Quick Sort... 14 BAB V.Stack dan Queue... 16 5.1 Penertian Stack dan Queue... 16 5.2 Stack... 16 5.3 Queue... 18 BAB VI. Senerai/List... 21 6.1 Penertian List... 21 i

6.2 Single Linked List... 21 6.3 Double Linked List... 22 BAB VII. Binary Tree... 28 7.1 Penertian Tree... 28 7.2 Contoh Program... 28 BAB VIII. Pencarian Data dalam Array... 30 8.1 Sekuensial Search... 30 8.2 Pencarian dalam Array Acak... 30 BAB IX. Graph... 33 9.1 Pengertian Graph... 33 9.2 Algoritma DFS... 34 DAFTAR PUSTAKA... 35 ii STRUKTUR DATA-UMMU ii

Tujuan Pembelajaran BAB 1 Overview Struktur Data Mahasiswa memahami representasi data dan dapat mendeklarasikan struktur data secara lengkap 1.1 Pengenalan Struktur Data Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolomkolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata ( word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembarsebar ( spreadsheet), pangkal-data ( database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data. 1.2 Review Sebelum kita melangkah ke bab berikutnya ada baiknya untuk mengingat kembali apa yang kita ketahui tentang bahasa pemrograman java yang telah di tempuh sebelumnya. Maka perlu untuk mereview sekilas tentang beberapa struktur bahasa pemrograman java yang akan sering kita gunakan nanti pada saat kuliah praktikum struktur data. Perhatikan dengan seksama tiap-tiap bagian struktur bahasa pemrograman java berikut ini. 1.2.1 Tipe Data String, yakni suatu variabel yang menampung data kumpulan huruf atau karakter. Cara pendeklarasiannya sebagai berikut. String nama_var]= [value] ; Contoh : String alamat= Jl. Sumatra 45 Integer, suatu variabel yang menangani tipe data bilangan bulat. Cara pendeklarasiannya sebagai berikut. int [nama_var]=[value]; Contoh : int bilangan=300; STRUKTUR DATA-UMMU 1

Boolean, adalah tipe data yag paling sederhana. Tipe data ini hanya berisi dua nilai yakni true atau false. Tipe data ini sering digunakan untuk menyatakan suatu kondisi. Cara pendeklarasiannya sebagai berikut. boolean [nama_var]=[value]; Contoh : boolean lulus=true; Array adalah suatu struktur data dalam bentuk deret data. Jadi array menyimpan suatu himpunan data yang tersusun dalam bentuk deretan data. Dalam java array direpresentasikan dalam suatu varibel yang bernama variabel array. Ada dua cara mendeklarasikan variabel array. Cara pertama adalah dengan memberikan value pada saat kita mendeklarasikan variabel array. Perhatikan struktur pendeklarasiannya sebagai berikut : <tipe_data>[]<nama_var>={<value1>,<value2>}; Contoh : String []data={ Susan, Santi, Santo }; Kode diatas berarti kita membuat suatu variabel array yang bernama data dengan tipe data string yang berisikan tiga buah data yakni Susan, Santi, dan Santo. Cara yang kedua adalah dengan tanpa melakukan inisaialisasi(pemberian value awal) terlebih dahulu tetapi jika kita melakukan cara ini maka kita diharuskan untuk mengisikan panjang array. Perhatikan struktur berikut. <tipe_data>[]<nama_var>=new <tipe_data>[<panjang_array>]; Contoh : int[]bilangan=new int[100]; kode diatas berarti kita membuat suatu variabel array yang bernama bilangan dengan tipe data integer dan dengan panjang data 100. 1.2.2 Struktur Kontrol Struktur percabangan : dalam java salah satunya direpresentasikan dalam suatu struktur IF yang biasanya dikombinasikan dengan ELSE apabila proses memiliki lebih dari satu cabang. Perhatikan struktur if-else berikut. If(<kondisi>){ <statement 1> }else{ <statement 2> } STRUKTUR DATA-UMMU 2

Penjelasan. Kondisi: berisi suatu operasi(biasanya perbandingan) yang memberikan suatu nilai boolean yakni true atau false. Statement 1: adalah suatu statement atau baris program yang akan dieksekusi apabila kondisi memberikan nilai true. Statement 2: satement atau baris program yang akan dieksekusi apabila kondisi memberikan nilai false. Perlu ditekankan disini bahwa apabila suatu kondisi telah memberikan nilai true maka statement 1 akan dieksekusi dan statement 2 akan diabaikan. Begitu pula apabila kondisi memberikan nilai false maka statemen 2 yang akan dieksekusi sedangkan statement 1 akan diabaikan. Perhatikan cantoh penerapannya dalam suatu class java. Struktur Perulangan : Dalam bahasa pemrograman java struktur perulangan biasanya direpresentasikan dengan menggunakan struktur FOR. Blok kode yang berada pada kalang/scope for inilah yang akan dilakukan eksekusi berulang kali sesuai dengan kondisi tertentu. Perhatikan struktur for berikut. for(<inisialisasi>;<kondisi>;<update>){ <statement>; } Penjelasan Inisialisasi : berisi proses pemberian nilai awal pada variabel yang digunakan sebagai kontrol perulangan(biasanya variabel integer) contoh: int i = 0 Kondisi : biasanya berisi proses pembandingan nilai variabel kontrol dengan nilai tertentu. Kondisi ini akan memberikan nilai boolean yakni true atau false. Contoh: i < 100 Update : berisi proses update nilai variabel kontrol. Update variabel kontrol ini digunakan agar suatu perulangan akan berhenti pada suatu kondisi tertentu. Update variabel ini biasanya menggunakan operasi increment dan decrement. Contoh: i++ STRUKTUR DATA-UMMU 3

Tujuan Pembelajaran BAB 2 Dasar dasar Larik dalam Java Menjelaskan fitur-fitur teknologi dari java Menjelaskan perbedaan fase pada pemrograman java 2.1 Mendeklarasikan Aray Array merupakan kemampuan untuk menggunakan satu variabel yang dapat menyimpan beberapa data dan memanipulasinya dengan lebih efektif. Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat mendeklarasikan array, anda harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti oleh nama identifier-nya. Sebagai contoh, int []ages; atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier. Sebagai contoh, int ages[]; 2.2 Aray Satu Dimensi contoh program array satu diimensi: STRUKTUR DATA-UMMU 4

Output : 2.2 Aray Dua Multidimensi Array multidimensi diimplementasikan sebagai array yang terletak di dalam array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai contoh, int[][] twod = new int[512][128]; char[][][] threed = new char[8][16][24]; String[][] dogs = {{ "terry", "brown" }, { "Kristin", "white" }, { "toby", "gray"}, { "fido", "black"} }; STRUKTUR DATA-UMMU 5

Contoh Program : Output : 2.4 Tipe Data Abstrak Tipe data abstrak (TDA) atau lebih dikenal dalam bahasa Inggris sebagai Abstract data type (ADT) merupakan model matematika yang merujuk pada sejumlah bentuk struktur data yang memiliki kegunaan atau perilaku yang serupa; atau suatu tipe data dari suatu bahasa pemrograman yang memiliki sematik yang serupa. Tipe data abstrak umumnya didefinisikan tidak secara langsung, melainkan hanya melalui operasi matematis tertentu sehingga membutuhkan penggunaan tipe data tersebut meski dengan resiko kompleksitas yang lebih tinggi atas operasi tersebut. contoh tipe data abstrak : Tipe jadi (built-in): boolean, integer, real, array, dll Tipe buatan (user-defined): stack, queue, tree, dll STRUKTUR DATA-UMMU 6

I. PELAKSANAAN PRAKTIKUM PERCOBAAN 1. Langkah 1 :buat class 3 baru dan ketikkan potongan source-source berikut: STRUKTUR DATA-UMMU 7

Langkah 2 : run maintestclass dan amati hasilnya Langkah3 :Buatlah kesimpulan dari Class tersebut. STRUKTUR DATA-UMMU 8

BAB 3 Rekursi Tujuan Pembelajaran Memahami konsep dari bilangan triangular dan faktorial Mampu memahami dan mengimplementasikan konsep rekursi ke dalam program Mampu memecahkan masalah sederhana menggunakan rekursi 3.1 Pengertian Rekursi Rekursi adalah fungsi yang melakukan proses perulangan dengan cara memanggil dirinya sendiri. Selain itu Rekursi merupakan konsep pengulangan yang penting dalam ilmu komputer. Konsep ini dapat digunakan untuk merumuskan solusi sederhana dalam sebuah permasalahan yang sulit untuk diselesaikan secara iteratif dengan menggunakan loop for, while do. Pada saat tertentu konsep ini dapat digunakan untuk mendefinisikan permasalahan dengan konsisten dan sederhana. Pada saat yang lain, rekursi dapat membantu untuk mengekspresikan algoritma dalam sebuah rumusan yang menjadikan tampilan algoritma tersebut mudah untuk dianalisa. 3.2 Bilangan Triangular Bilangan triangular adalah bilangan yang didapatkan dari menambahkan n dengan bentuk sebelumnya. Dalam hal ini bilangan triangular ini menerapkan konsep rekursi. Contoh : bilangan triangular dari 5 adalah 15 n=5 n+(n-1) = 5+((5-1)) = 5 +(4+3+2+1)=15 berikut source bilangan triangular : STRUKTUR DATA-UMMU 9

Output : 3.3 Bilangan Faktorial Bilangan factorial sama konsepnya dengan bilangan triangular, kecuali bahwa yang digunakan adalah perkalian dan bukan penjumlahan. Bilangan factorial didapat dari perkalian n dengan bentuk sebelumnya. STRUKTUR DATA-UMMU 10

Contoh : bilangan factorial dari 5 adalah 120 n=5 n*(n-1) = 5*(4!) = 5*(4*3*2*1) = 120 Berikut source dari bilangan Faktorial : Output : STRUKTUR DATA-UMMU 11

BAB 4 Algoritma Pengurutan/Sorting Tujuan Pembelajaran Memahami konsep dari algoritma bubble sort Memahami konsep dari algoritma quicksort Memahami tentang perbandingan kinerja dari masing-masing algoritma sorting 4.1 Sorting Sorting adalah sebuah teknik pemrograman untuk mengurutkan suatu data. Teknik ini bisa menjadi langkah awal untuk melakukan pencarian karena sebuah pencarian dari data yang telah diurutkan sangat lebih cepat dibandingkan dengan pencarian linier. Banyak sekali teknik-teknik dari algoritma pencarian ini,antara lain : Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Shellsort, Quicksort dan lain sebagainya. Namun dalam pertemuan kali ini kita akan membahas Bubble Sort dan Qiucksort saja. 4.2 Bubble Sort Bubble Sort adalah sebuah algoritma pengurutan yang sangat lamban, tapi secara konseptual algoritma ini merupakan yang paling sederhana dan karena itu merupakan awal yang bagus untuk mengeksplorasi kita mengenai teknik pengurutan. Berikut source dari Bubble Sort : //Implementasi dari Class Bubble Sort : STRUKTUR DATA-UMMU 12

Output : STRUKTUR DATA-UMMU 13

4.3 Quicksort Quicksort adalah algoritma yang beroperasi dengan membagi sebuah larik/array ke dalam sub larik dan kemudian memanggil dirinya sendiri secara rekrusif. Kita harus memilih pivot untuk membagi ke dalam sub larik. Berikut source Quicksort : //Implementasi dari class QuickSort STRUKTUR DATA-UMMU 14

Output : STRUKTUR DATA-UMMU 15

Tujuan Pembelajaran BAB 5 Stack dan Queue Mahasiswa memahami tentang stack dan queue Mahasiswa dapat membuat suatu program menggunakan Stack dan Queue Mahasiswa memahami perbedaan Stack dan Queue 5.1 Stack and Queue Struktur kontrol pemilihan adalah pernyataan dari Java yang mengijinkan user untuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan blok kode yang lain. Stack adalah suatu bentuk khusus dari linear list di mana operasi penyisipan dan penghapusan atas elemen-elemennya hanya dapat dilakukan pada satu sisi saja yang disebut sebagai TOP. Cara ini dapat disebut dengan sistem LIFO (Last In First Out) yaitu item yang terakhir masuk merupakan item yang pertama keluar. Queue adalah suatu linear list di mana operasi DELETE terjadi pada sisi depan (FRONT) dan operasi INSERT terjadi pada sisi belakang (REAR). Jika diberikan suatu Queue Q dengan elemen-elemennya yang terdiri atas Q1, Q2,..., QT maka queue Q dituliskan Q = [ Q1, Q2,..., QT ] FRONT(Q) = Q1 REAR(Q) = QT Selanjutnya untuk menyatakan jumlah elemen dalam suatu queue Q digunakan notasi NOEL(Q). 5.2 Stack Misal diberikan Stack S sebagai berikut : S = [ S1, S2,..., ST ] maka TOP(S) = ST Untuk menunjukkan jumlah elemen suatu stack digunakan notasi NOEL. Dari stack di atas, maka NOEL(S) = T. Selanjutnya, jika diberikan sebuah stack S = [A,B,C,D], maka stack S ini dapat digambarkan sebagai berikut : STRUKTUR DATA-UMMU 16

A A B C D D Top B C B C D Top D Top C B A Top Ada empat operasi dasar yang didefinisikan pada stack, yaitu : A o o o o CREATE(stack) ISEMPTY(stack) PUSH(elemen,stack) POP(stack Berikut source Dari Stack: //Implementasi dari class Tumpukan : STRUKTUR DATA-UMMU 17

Output : 5.3 Queue Untuk menggambarkan suatu queue dapat dilakukan beberapa cara, Misal : diberikan Queue Q = [A, B, C, D, E, F], maka Queue Q dapat digambarkan sebagai berikut : STRUKTUR DATA-UMMU 18

A B C D E F F E D C B A atau dapat pula digambarkan dengan posisi tegak. Prinsip kerja Queue adalah FIFO (First In First Out), di mana data yang masuk terlebih dahulu akan keluar pertama. Terdapat empat operasi dasar yang didefinisikan pada queue, yaitu : CREATE ISEMPTY INSERT REMOVE Berikut source dari queue : //Implementasi class Queue : STRUKTUR DATA-UMMU 19

Output : STRUKTUR DATA-UMMU 20

Tujuan Pembelajaran Memahami perbedaan array dan list Memahami konsep dasar list BAB 6 Senarai/List Mampu mengimplementasikan list dalam program 6.1 Pengertian List Senarai(list) adalah struktur data/adt yang mendasar, yang seringkali digunakan untuk menyimpan koleksi dari data-data dan digunakan pada implementasi program computer sehingga masuk akal kalau kita saat ini harus membahas ADT List. ADT List dapat digunakan sebagai basis untuk mengimplementasikan ADT-ADT lainnya. ADT list dapat dianggap bangunan dasar untuk mengembangkan ADT lain yang lebih rumit. 6.2 Single Linked List Dalam contoh program ini kita akan membuat beberapa class untuk pengimplementasian list pada program. Class LinkedList : Class Node : STRUKTUR DATA-UMMU 21

Output : 6.3 Double Linked List Sama seperti Single linked list, disini kita akan membuat beberapa class. Class berikutnya TestDouleLinkedList digunakan untuk mengimplementasikan clas-clas yang akan kita buat : STRUKTUR DATA-UMMU 22

STRUKTUR DATA-UMMU 23

Class DoubleLinkedList : STRUKTUR DATA-UMMU 24

STRUKTUR DATA-UMMU 25

Class TwoChildNode : STRUKTUR DATA-UMMU 26

Output : STRUKTUR DATA-UMMU 27

Tujuan Pembelajaran BAB 7 Binary Tree Mahasiswa memahami tentang binary Tree Mahasiswa memahami konsep tree Mahasiswa mampu mengimplementasikan tree dalam sebuah program 7.1 Apa itu tree? Tree merupakan salah satu bentuk struktur data bukan linier yang menggambarkan bentuk hierarki antara elemen-elemen. Tree biasanya terdiri dari root (akar) dan nodenode (simpul-simpul) yang berada di bawah root. Struktur seperti tree sangat banyak sekali dgunakan dalam dunia nyata, misalnya: struktur organisasi suatu perusahaan, pengaturan filesystem, daftar isi sebuah buku, dan masih banyak lagi. Ilustrasi struktur data tree: Degree (derajat) adalah jumlah edge yang keluar dan masuk dari sebuah node. Contoh : node E memiliki in degree 1 dan out degree 2 Root (akar) adalah node yang memiliki derajat keluar >=0 dan derajat masuk = 0. Contoh : node A adalah root Subtree / child adalah bagian salah satu node dibawah root sampai ke bawah. Contoh : tree C adalah right subtree dari A dan tree B merupakan left subtree dari A node G dan F merupakan child dari node C node F merupakan parent dari node J dan K Ancestor adalah Node yang berada di atas node lain. 7.2 Contoh Program STRUKTUR DATA-UMMU 28

Output : STRUKTUR DATA-UMMU 29

Tujuan Pembelajaran BAB 8 Pencarian Data Dalam Array Mahasiswa memahami tentang konsep searching Mahasiswa memahami algoritma dari searching Mahasiswa mampu mengimplementasikan algoritma searching dalam sebuah program 8.1 Sekuensial Search Sequential search / pencarian beruntun atau banyak pula yang menyebutnya linear search (pencarian lurus), adalah salah satu metode algoritma pencarian yang paling sederhana. Para programmer pemula pasti akan menggunakan algoritma ini saat menghadapi kasus pencarian untuk pertama kali. Konsep dari algoritma ini tak terlalu sulit, yakni seluruh data akan dicek satu persatu sampai data yang dicari ditemukan. Ada 2 macam pencarian beruntun,yaitu pencarian pada array yang sudah terurut, dan pencarian pada array yang belum terurut. 8.2 Pencarian Dalam Array Acak Contoh program : STRUKTUR DATA-UMMU 30

Output : 8.3 Pencarian Dalam Array Acak Contoh program : STRUKTUR DATA-UMMU 31

Output : Perbedaan dari kedua metode diatas adalah ketika kita mencari data pada array yang acak itu memakan waktu yang lebih lama dalam proses pencariannya contohnya pada program diatas kita akan mencari data 2, pada pencarian array yang acak data 2 ditemukan pada indeks ke tiga sedangkan jika kita mengurutkanya dulu yaitu pada metode pencarian terurut maka data 2 ditemukan pada indeks ke dua STRUKTUR DATA-UMMU 32

Tujuan Pembelajaran BAB 9 GRAPH Menangani exeption menggunakan blok tyr-catch-finally Mahasiswa memahami konsep dari graph Mahasiswa memahami konsep dari algoritma DFS (Depth First Search) Mahasiswa memahami konsep dari Algoritma (Breadth-First-serch) 9.1 Graph Algoritma DFS (Depth First Search) merupakan salah satu jenis algoritma greedy yang digunakan untuk men-scan karakter yang ada pada sebuah petak. Penerapan algoritma ini cukup banyak digunakan pada bidang sains dan teknologi, terutama pada piranti cerdas. Penjelasan algoritma DFS bisa dibaca di Wikipedia Depth First Search. Penerapan dalam source code, algoritma DFS bisa menggunakan fungsi rekursi yang memanggil dirinya sendiri ataupun menggunakan stack (tumpukan). Salah satu penggunaan algoritma DFS adalah digunakan untuk permainan tebak jumlah dadu. Algoritma Breadth-first search adalah algoritma yang melakukan pencarian secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan simpul-simpul yang tadi di kunjungi, demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi lebih dahulu sebelum simpulsimpul pada aras d+1. Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang telah dikunjungi. Simpul-simpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul yang bertetanggaan dengannya. Tiap simpul yang telah dikunjungi masuk ke dalam antrian hanya satu kali. Algoritma ini juga membutuhkan table Boolean untuk menyimpan simpul yang telah dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali. STRUKTUR DATA-UMMU 33

9.2 Algoritma DFS (Depth First Search) Berikut source dari Algoritma (Depth-first-search): Implementasi dari class-class yang Akan kita buat : Class DFSGraph : STRUKTUR DATA-UMMU 34

Class DFSStack : Class DFSVertex : STRUKTUR DATA-UMMU 35

Output : 9.3 Algoritma Breadth-first search Berikut source Algoritma (Breadth-First-serch) : STRUKTUR DATA-UMMU 36

Output : STRUKTUR DATA-UMMU 37

DAFTAR PUSTAKA L.N. Harnaningrum. 2010. Struktur Data Menggunakan Java, Yogyakarta: Penerbit Graha Ilmu. Heriyanto, Imam, Budi Raharjo (2003). Pemrograman Borland C++ Builder. Informatika Bandung. STRUKTUR DATA-UMMU 38