Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

PENGANTAR STRUKTUR DATA

Presentasi serupa


Presentasi berjudul: "PENGANTAR STRUKTUR DATA"— Transcript presentasi:

1 PENGANTAR STRUKTUR DATA
Ika Menarianti, M.Kom

2 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

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

4 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

5 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.

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

7 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.

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

9 Kelebihan dan Kekurangan Struktur Data
Array Penambahan data dibelakang mudah dilakukan Ukuran tetap, penghapusan lambat, pencarian lama Array terstruktur Pencarian jauh lebih cepat dibandingkan array yang tidak urut Ukuran tetap, penghapusan lambat, penyisipan lama Tumpukan Penambahan dilaksanakan dengan cepat, akses terhadap data yang terakhir kali dimasukkan bisa dilakukan dengan cepat Pencarian dan penghapusan lambat Antrian Data yang pertama kali masuk mudah untuk diakses Akses data yang lain lambat Senarai berantai Penyisipan dan penghapusan data mudah Pencarian lama Pohin biner 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.

10 Efisien? Bagaimana mengukurnya? (1)
Pengaturan Data Efisien Struktur Data Bagaimana cara mengukurnya? Efisien dalam hal apa?

11 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.

12 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.

13 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.

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

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

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

17 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)

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

19 Daftar Orde Kompleksitas
Notasi Keterangan Contoh O(1) atau kadang dituilis O(c) Konstan. Operasi dengan jumlah yang tetap Operasi untuk menyisipkan atau 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(N2) Kuadratik. Jumlah operasi sebanding dengan kuadrat jumlah data yang ditangani Membandingkan 2 buah nilai dalam array berukuran N x N O(N3) Kubik - O(cN) dengan c > 1 Eksponensial Menara Hanoi O(N!) Faktorial Penyelesaian masalah perjalanan menggunakan brute-force search

20 Hubungan antara berbagai kompleksitas pada tabel ditunjukkan:
O(1) < O(log(N)) < O(N) < O(N log(N)) < O(N2) < O(N3) < O(CN)

21 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.

22 Evaluasi

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

24 2. Kelompokkan fungsi berikut yang memiliki Big O yang sama:
f(N) = N f(N) = N2 f(N) = N3 f(N) = N3 + N2 + N f(N) = N N2 f(N) = 3N3 + N

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

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


Download ppt "PENGANTAR STRUKTUR DATA"

Presentasi serupa


Iklan oleh Google