PENGANTAR STRUKTUR DATA Ika Menarianti M Kom Tujuan

  • Slides: 26
Download presentation
PENGANTAR STRUKTUR DATA Ika Menarianti, M. Kom

PENGANTAR STRUKTUR DATA Ika Menarianti, M. Kom

Tujuan: � Mahasiswa dapat menjabarkan dan menjelaskan kembali pengertian struktur data � Mahasiswa dapat

Tujuan: � Mahasiswa dapat menjabarkan dan menjelaskan kembali pengertian struktur data � Mahasiswa dapat menjabarkan dan menjelaskan kembali Gambaran penggunaan struktur data � Mahasiswa dapat menjabarkan dan menjelaskan kembali efisiensi serta mengukur kompleksitas waktu

Konsep Struktur Data (1) Wadah data Struktur Data Algoritma Pemanipulasi Data

Konsep Struktur Data (1) Wadah data Struktur Data Algoritma Pemanipulasi Data

Konsep Struktur Data (2) Pengertian Struktur data adalah: ü Sebuah bagian dari ilmu pemrograman

Konsep Struktur Data (2) Pengertian Struktur data adalah: ü Sebuah bagian dari ilmu pemrograman dasar yang mempunyai karakteristik yang terkait dengan sifat dan cara penyimpanan sekaligus penggunaan atau pengaksesan data. ü Pengaturan data di dalam memori komputer atau terkadang di dalam disk dengan tujuan agar data dapat diakses secara efisien

Konsep Struktur Data (3) Tujuan Struktur data: agar cara merepresentasikan data dalam membuat program

Konsep Struktur Data (3) Tujuan Struktur data: agar cara merepresentasikan data dalam membuat program dapat dilakukan secara efisien dalam pengolahan di memori dan pengolahan penyimpanan dari program ke storage juga lebih mudah dilakukan.

Gambaran Penggunaan Struktur Data (1) Ahmad Penanganan manual kartu pasien Agung Azam A B

Gambaran Penggunaan Struktur Data (1) Ahmad Penanganan manual kartu pasien Agung Azam A B . . Z

Gambaran Penggunaan Struktur Data Keterangan: � Penanganan manual kartu pasien, semua data disimpan terurut

Gambaran Penggunaan Struktur Data Keterangan: � Penanganan manual kartu pasien, semua data disimpan terurut dan dikelompokkan berdasarkan huruf pertama dari nama pasien. � Ini dimaksudkan untuk memudahkan pada saat pencarian data.

Persoalannya? q Bagaimana jika data seperti itu diproses dalam komputer? q Struktur data apa

Persoalannya? q Bagaimana jika data seperti itu diproses dalam komputer? q Struktur data apa yang paling tepat untuk digunakan?

Kelebihan dan Kekurangan Struktur Data Kelebihan Kekurangan Array Penambahan data dibelakang mudah dilakukan Ukuran

Kelebihan dan Kekurangan Struktur Data Kelebihan Kekurangan Array Penambahan data dibelakang mudah dilakukan Ukuran tetap, penghapusan lambat, pencarian lama Array terstruktur Pencarian jauh lebih cepat dibandingkan array Ukuran yang tidak urut Tumpukan tetap, penghapusan lambat, penyisipan lama Penambahan dilaksanakan dengan cepat, akses Pencarian dan penghapusan terhadap data yang terakhir kali dimasukkan bisa lambat dilakukan dengan cepat Antrian Data yang pertama kali masuk mudah untuk Akses data yang lain lambat diakses Senarai berantai Penyisipan dan penghapusan data mudah Pencarian lama Pohin biner Penyisipan dan penghapusan data mudah Penghapusan kompleks Tabel hash Akses cepat bila kunci diketahui. Penyisipan cepat Algoritma penghapusan ada yang sederhana dan ada pula yang kompleks. Akses pelan jika kunci tidak diketahui.

Efisien? Bagaimana mengukurnya? (1) Pengatura n Data � Bagaimana � Efisien cara mengukurnya? dalam

Efisien? Bagaimana mengukurnya? (1) Pengatura n Data � Bagaimana � Efisien cara mengukurnya? dalam hal apa? Struktur Data

Efisien? Bagaimana mengukurnya? (2) � Ukuran efisien dalam struktur data didasarkan pada waktu atau

Efisien? Bagaimana mengukurnya? (2) � Ukuran efisien dalam struktur data didasarkan pada waktu atau memori yang dibutuhkan. � Suatu algoritma yang diterapkan pada suatu struktur data sangat efisien dalam hal waktu kalau waktu yang diperlukan untuk melaksanakan suatu proses lebih cepat daripada algoritma yang lain.

Efisien? Bagaimana mengukurnya? (3) � Idealnya suatu algoritma mempunyai tingkat efisiensi baik dalam hal

Efisien? Bagaimana mengukurnya? (3) � Idealnya suatu algoritma mempunyai tingkat efisiensi baik dalam hal waktu maupun memori. � Dalam prakteknya, ada korelasi terbalik antara waktu dan memori (Stephens, 1998). � Istilah kompleksitas ruang waktu dipakai untuk melakukan analisis suatu algoritma baik terhadap memori maupun waktu.

Efisien? Bagaimana mengukurnya? (4) � Untuk kepentingan mengetahui kompleksitas waktu, notasi Big O biasa

Efisien? Bagaimana mengukurnya? (4) � Untuk kepentingan mengetahui kompleksitas waktu, notasi Big O biasa digunakan. � Suatu algoritma memiliki kompleksitas O(f(N)) (baca: orde f terhadap N) jika waktu yang diperlukan oleh algoritma mengikuti laju fungsi f(N) dengan kondisi nilai N yang besar.

Efisien? Bagaimana mengukurnya? (5) � Untuk memahami Big O, lihatlah algoritma berikut yang menyatakan

Efisien? Bagaimana mengukurnya? (5) � Untuk memahami Big O, lihatlah algoritma berikut yang menyatakan pengulangan Jum + 1 sebanyak N kali. FOR i 1 TO N Jum + 1 END – FOR � Untuk menentukan Big O, yang perlu diperhatikan adalah pada bagian pengulangan Jum + 1 sebanyak N kali maka Big O algoritma tersebut adalah O(N).

Efisien? Bagaimana mengukurnya? (6) FOR i 1 to N Jum + 1 END –

Efisien? Bagaimana mengukurnya? (6) FOR i 1 to N Jum + 1 END – FOR Pengulangan N kali maka. . . Kompleksitas algoritma berupa O(N)

Efisien? Bagaimana mengukurnya? (7) � Bagaimana dengan algoritma semacam berikut? FOR i 1 to

Efisien? Bagaimana mengukurnya? (7) � Bagaimana dengan algoritma semacam berikut? FOR i 1 to N FOR j 1 to N Jum + A [ i, j ] END – FOR Jum + A [ i, j ] diproses sebanyak N x N algoritma tersebut mempunyai Big O berupa O(N 2).

Efisien? Bagaimana mengukurnya? (8) � Bagaimana dengan algoritma berikut? FOR i 1 TO M

Efisien? Bagaimana mengukurnya? (8) � Bagaimana dengan algoritma berikut? FOR i 1 TO M FOR j 1 TO N x x+1 END – FOR perulangan dilakukan sebanyak M kali dan sebanyak N kali. Big O berupa O(MN)

Efisien? Bagaimana mengukurnya? (9) � Dalam menentukan Big O, yang perlu diperhatikan adalah bagian

Efisien? Bagaimana mengukurnya? (9) � Dalam menentukan Big O, yang perlu diperhatikan adalah bagian yang berkontribusi menyumbang waktu eksekusi yang paling lama. � Sebagai � Pada contoh algoritma mempunyai waktu N 3 + N. keadaan seperti ini Big O berupa O(N 3). N yang lebih kecil diabaikan.

Daftar Orde Kompleksitas Notasi Keterangan Contoh O(1) atau kadang Konstan. Operasi dengan Operasi untuk

Daftar Orde Kompleksitas Notasi Keterangan Contoh O(1) atau kadang Konstan. Operasi dengan Operasi untuk menyisipkan atau dituilis O(c) jumlah yang tetap menghapus sebuah data dalam antrian O(log(N)) Logaritmik Pencarian secara biner pada N elemen data yang telah terurutkan O(N) Liner. Jumlah langkah bergantung pada jumlah yang ditangani Mencari nilai terbesar dari sejumlah data yang tidak terurutkan O(N log(N)) Loglinier, Linieritmik, Quasilinier atau Supralinier Pengurutan dengan metode quicksort dan mergesort O(N 2) Kuadratik. Jumlah operasi sebanding dengan kuadrat jumlah data yang ditangani Membandingkan 2 buah nilai dalam array berukuran N x N O(N 3) Kubik -

� Hubungan antara berbagai kompleksitas pada tabel ditunjukkan: O(1) < O(log(N)) < O(N 2)

� Hubungan antara berbagai kompleksitas pada tabel ditunjukkan: O(1) < O(log(N)) < O(N 2) < O(N 3) < O(CN)

Tahapan Pembuatan Struktur Data 1. Tahap Pertama Pendeskripsian struktur data menyatakan apa yang dapat

Tahapan Pembuatan Struktur Data 1. Tahap Pertama Pendeskripsian struktur data menyatakan apa yang dapat dilakukan struktur data, bukan cara penempatannyadan melibatkan level logic sehingga dapat digunakan konvensi matematika untuk menyatakan sifat-sifat struktur data yang dikehendaki. 2. Tahap Kedua Implementasi menyatakan cara penerapan dengan proses pendefinisian tipe data abstrak sehingga semua operasi dapat dieksekusi computer. Implementasi berisi dekklarasi struktur penyimpanan item data serta algoritma. 3. Tahap Ketiga Pemrograman struktur data adalah menerjemahkan menjadi pernyataan dalam bahasa pemrograman dengan menggunakan fasilitas pembentukkan atau pembuatan struktur data yang disediakan bahasa seperti array, record dan lain-lain.

Evaluasi

Evaluasi

1. Jelaskan istilah berikut: q Struktur Data q Algoritma q Big O q Efisien

1. Jelaskan istilah berikut: q Struktur Data q Algoritma q Big O q Efisien q Kompleksitas ruang-waktu Jelaskan sesuai pendapat masing-masing?

2. Kelompokkan fungsi berikut yang memiliki Big O yang sama: a. b. c. d.

2. Kelompokkan fungsi berikut yang memiliki Big O yang sama: a. b. c. d. e. f. f(N) = N 2 f(N) = N 3 + N 2 + N f(N) = N 2 + 100 N 2 f(N) = 3 N 3 + N

3. Analisislah Big O untuk operasi berikut: (a) Hasil 1 for j 1 to

3. Analisislah Big O untuk operasi berikut: (a) Hasil 1 for j 1 to N Hasil * J End – For (b) Hasil 0 For j 1 to N For k 1 to N Hasil + J * K End – For (c) Hasil 0 For j 1 to N-1 For k j + 1 to N Hasil + j * k End – for (d) Hasil 0 For j 1 to N For k 1 to N For l 1 to N/2 End – For End - For

4. Sebuah program X dan y dianalisis dengan waktu eksekusi dalam keadaan terjelek masing

4. Sebuah program X dan y dianalisis dengan waktu eksekusi dalam keadaan terjelek masing tidak lebih dari 150 N log N dan N 2 (a). Manakah yang lebih baik kalau N > 10. 000? (b). Manakah yang lebih baik N = 1000? (c). Apakah y lebih cepat daripada x untuk semua kemungkinan nilai N?