Laporan Akhir Struktur Data [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

BAB I



PENDAHULUAN - I.1 Latar Belakang - I.2 Rumusan Masalah - I.3 Batasan Masalah - I.4 Tujuan



1 | Struktur Data sesi A2-1



I.1 Latar Belakang



Dalam dunia pemrograman, sangat perlu implementasi tentang struktur data dengan media pengolahan data dalam suatu program / aplikasi. Berbagai macam program yang diperlukan saat ini tidak lepas dari pemrograman struktur data yang sesuai dan tepat.



Oleh karena itu, dengan struktur data, kita akan mampu untuk membuat suatu program di mana pengolahan data merupakan metode yang mampu membuat suatu program tersebut lebih canggih & berguna.



2 | Struktur Data sesi A2-1



I.2 Rumusan Masalah



Dari Latar belakang di atas dapat diambil rumusan masalah sebagai berikut : -



Bagaimana mengimplementasikan fungsi rekursif



-



Bagaimana mengimplementasikan fungsi array



-



Bagaimana mengimplementasikan fungsi class



-



Bagaimana mengimplementasikan fungsi fungsi pengurutan



-



Bagaimana mengimplementasikan fungsi fungsi pencarian



-



Bagaimana mengimplementasikan linked list



-



Bagaimana mengimplementasikan metode tumpukkan



-



Bagaimana mengimplementasikan metode antrian



3 | Struktur Data sesi A2-1



I.3 Batasan Masalah



Berikut ini batasan-batasan masalah sesuai dengan rumusan masalah yang dijelaskan di atas : -



Laporan ini membahas praktikum sesuai modul praktikum



-



Laporan ini membahas pemrograman dengan aplikasi NetBeans IDE



4 | Struktur Data sesi A2-1



I.4 Tujuan



Tujuan dari penyusunan laporan ini antara lain : -



Praktikan mampu mengerti dasar-dasar teori pemrograman struktur data



-



Praktikan mampu mengaplikasikan konsep struktur data dalam program



5 | Struktur Data sesi A2-1



BAB II



PEMBAHASAN - II.1 Array - II.2 Class - II.3 Pengurutan - II.4 Pencarian - II.5 Linked List - II.6 Tumpukkan - II.7 Antrian



6 | Struktur Data sesi A2-1



II.1 Array II.1.a Dasar Teori Array / Larik adalah kumpulan data yang memiliki tipe data dan jumlah elemen yang tetap (tidak bisa ditambah/dikurangi). Array pada Java adalah sebuah object, maka harus dideklarasikan menggunakan kata kunci new. Tiap data pada array disebut element, dan masingmasing element dapat diakses menggunakan index yang berupa angka. Indexdimulai dari 0 sampai jumlah element – 1.



Contoh potongan Source Code untuk inisialisasi Array 1 Dimensi : int [ ] angka = new int angka [100]; for(int i=0 ; i= 0) && (num[ i ] < key); i--) { num[ i+1 ] = num[ i ]; } num[ i+1 ] = key; } }



Selection Sort Selection Sort merupakan kombinasi dari searching dan sorting. Sebuah algoritma pengurutan yang secara berulang mencari item yang belum terurut dan mencari paling sedikit satu untuk dimasukkan ke dalam lokasi akhir. Metode ini memiliki konsep memilih data yang maksimum/minimum dari suatu kumpulan data larik L, lalu menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan. Data maksimum/minimum yang diperoleh, diasingkan ke tempat lain, dan tidak diikutsertakan pada proses pencarian data maksimum/minimum berikutnya.



Berikut adalah deklarasi dari Sorting jenis ini : - Kombinasi sorting dan searching. - Untuk setiap proses, akan dilakukan dengan mencari elemen dari posisi yang belum diurutkan dan kemudian memilih elemen yang memiliki nilai terkecil atau terbesar yang akan ditukarkan ke posisi yang tepat di dalam array. - Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan pada indeks terkecil, pada putaran kedua akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua, negitu seterusnya hingga tidak ada data yang dicari lagi.



34 | Struktur Data sesi A2-1



- Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.



#Source Code Selection Sort : public static void SelectionSort ( int [ ] num ) { int i, j, min, index; for(i=num.length-1; i>0; i--){ min=num[0]; index=0; for(j=1; j min ){ min = num[j]; temp = num[j]; index=j; } } num[index] = num[i]; num[i] = min; } Exchange Sort Berikut adalah deklarasi dari Sorting jenis ini : - Mirip dengan bubble sort. - Perbedaannya: dalam exchange sort ada elemen yang berfungsi sebagai pusat (pivot), pertukaran hanya akan dilakukan jika diperlukan saja dari pivot tersebut. - Sedangkan bubble sort akan membandingkan elemen pertama/terakhir dengan elemen sebelumnya/sesudahnya, kemudian elemen sebelum/sesudahnya itu akan menjadi pusat (pivot) untuk dibandingkan dengan elemen sebelumnya/sesudahnya lagi, begitu seterusnya. 35 | Struktur Data sesi A2-1



#Source Code Exchange Sort :



public static void ExchangeSort ( int [ ] num ) { int i, j, temp; for ( i = 0; i < num.length - 1; i ++ ) { for ( j = i + 1; j < num.length; j ++ ) { if( num[ i ] < num[ j ] ) { temp = num[ i ]; num[ i ] = num[ j ]; num[ j ] = temp; } } } }



36 | Struktur Data sesi A2-1



II.3.b Permasalahan Laporan resmi : 1. Mengurutkan angka dengan menggunakan Bubble Sort 2. Mengurutkan Objek Berdasarkan: a. Jumlah b. Nama Barang c. Tampilan / Output



Tugas Pendahuluan : 3. Mengurutkan nilai dengan menggunakan : a.



Memasukkan Nilai



b.



Bubble Sort



c.



Selection Sort



d.



Insertion Sort



e.



Tampilan / Output



37 | Struktur Data sesi A2-1



II.3.c Penyelesaian 1. Mengurutkan angka dengan menggunakan Bubble Sort :



Tampilan / Output



38 | Struktur Data sesi A2-1



2. Mengurutkan Objek Berdasarkan:



a. Jumlah



39 | Struktur Data sesi A2-1



b. Nama Barang



c. Tampilan / Output



3. Mengurutkan nilai dengan menggunakan : 40 | Struktur Data sesi A2-1



a. Memasukkan Nilai



b. Bubble Sort



41 | Struktur Data sesi A2-1



c. Selection Sort



d. Insertion Sort



e. Tampilan / Output



42 | Struktur Data sesi A2-1



II.3.d Kesimpulan Sorting adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu ataupun secara acak, sehingga menjadi tersusun secara teratur menurut aturan tertentu. Pada umumnya ada 2 macam pengurutan, yaitu: - Pengurutan secara ascending (urut naik). - Pengurutan secara descending (urut turun).



Macam – Macam Sorting :



1. Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau Descending). 2. Insertion Sort dimisalkan seperti Analogi pengurutan kartu. 3. Selection Sort merupakan kombinasi dari searching dan sorting. 4. Exchange Sort: Mirip dengan bubble sort, Perbedaannya: dalam exchange sort ada elemen yang berfungsi sebagai pusat (pivot), pertukaran hanya akan dilakukan jika diperlukan saja dari pivot tersebut.



43 | Struktur Data sesi A2-1



II.4 Pencarian



II.4.a Dasar Teori PENGERTIAN SEARCHING Algoritma pencarian adalah algoritma yang menerima argumen / parameter a dan kemudian mencoba untuk menemukan sebuah record yang key-nya adalah a di dalam sebuah / himpunan data. Bentuk algoritma pencarian yang paling sederhana adalah sequential search / pencarian beururtan. Algoritma ini mampu diterapkan pada sebuah tabel data baik yang berupa sebuah aaray ataupun linked list. Misal, k adalah sebuah array dengan n elemen/key, k(0) sampai dengan k(n - 1). Sedangkan key adalah argumen / parameter pencariannya. Maka algoritmanya adalah: for ( i = 0 ; i < n ; i++){ if( key == k ( i ) ) return ( i ); return ( -1 ); } Misal akan dicari data angka



Algoritma tersebut akan melakukan pengecekan untuk setiap key secara bergiliran sampai ditemukannya kecocokan dengan argumen. Indeks key yang cocok akan dikembalikan oleh fungsi. Teteapi jika tidak ditemukan kecocokan maka nilai -1 akan dikembalikan oleh fungsi. Contoh dengan java: public class Searching{ public static void main(String [] args){ int [ ] array = {21, 52, 6, 1, 32, 76, 32}; for(int i=0; i < array.length ; i++) if(array[ i ]==76) System.out.pritnln(“Data Ditemukam”); } }



44 | Struktur Data sesi A2-1



Source Code Sequential Search : public int SeqSearch(int a[], int key) { for (int i = 0; i < a.length - 1; i++) if (a[i] == key) return i; return -1; }



Kelebihan dan Kekurangan dari Sequential Search : 1. Relatif lebih cepat dan efisien, dapat menghemat waktumu karena pencarian datanya cepat. 2. Untuk data yang terbatas tetapi kurang cepat untuk data dalam jumlah besar (pencarian datanya lama banget, apalagi mencari indeks array yang paling akhir) 3. Algoritma-Nya agak sederhana 4. Beban komputasinya cenderung lebih besar



Source Code Binary Search : public int binarySearch(int a[], int key) { int low = 0; int high = a.length - 1; while (low