PENGANTAR STRUKTUR DATA

Slides:



Advertisements
Presentasi serupa
Kompleksitas Algoritma
Advertisements

Algoritma dan Struktur Data
STRUKTUR DATA JAIDUP BANJARNAHOR.
Desain Dan Analisis Algoritma
Struktur Data Bambang Irawan.
sebuah fungsi yang memanggil dirinya sendiri
Algoritma Pemrograman
Tim Matematika Diskrit
Kompleksitas Algoritma
Kompleksitas Algoritma
MATEMATIKA DISKRIT Kompleksitas Algoritma Kelompok 9
Algoritma dan Struktur Data
Kompleksitas Algoritma
Membuat Form ACCESS Form Access berfungsi sebagaimana kertas formulir: Kita dapat menambahkan, mengedit, dan menjadikan sebagai sumber informasi. Form.
Pengantar Struktur Data
Design and Analysis Algorithm
Abstract Data Type.
ALGORITMA DAN BILANGAN BULAT
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
PERTEMUAN 4 TAHAP PEMROGRAMAN.
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Struktur Data dan Penyajian Data
PERTEMUAN 1.
Kompleksitas Algoritma
Pengantar Struktur Data Pertemuan 1 Season 1
Sapta Candra Miarsa,S.T.,M.T.
Pengenalan Struktur Data Universitas Muhammadiyah Jakarta
Pengantar Struktur Data Sri Nurhayati, MT
MATERI PERKULIAHAN ANALISIS ALGORITMA
STRUKTUR DATA Materi : Bagian I Pendahuluan Bagian II Larik
KONSEP INTERFACE
Pertemuan III Betha Nurina Sari, M.Kom
ALGORITHMA DAN ATURAN PENULISANYA
Analisa Algoritma (IF1282)
Pengantar struktur data
Struktur Data Tipe data & Struktur Data
Pendekatan Inferensi dalam Sistem Pakar
STRUKTUR DATA (1) Sri Nurhayati, MT.
MATERI PERKULIAHAN ANALISIS ALGORITMA
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Struktur Data Yuniansyah.
Pertemuan 4 ALGORITMA lanjutan….
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Faktor analisa algoritma
Pengenalan Analisis Algoritma
STRUKTUR DATA Introduction KHOIRIYA LATIFA, M.Kom.
Struktur Data Sri Nurhayati, MT
STRUKTUR DATA ( Menjelaskan Mengenai Data & Struktur Data )
Pengantar Struktur Data
Analisa Algoritma : Pendahuluan
Larik.
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Notasi Asymtotik Pertemuan 2.
STRUKTUR DATA Konsep Dan Arsitektur.
Kompleksitas Algoritma
Berbagai Utilitas Pertemuan 9.
PEMROGRAMAN I Semester I 2017/2018
Struktur Data.
Dasar Pemrograman Dan Bahasa Pemrograman
PERTEMUAN II PENGANTAR
Pencarian (searching)
STRUKTUR DATA NAMA : ALDI NUGROHO SETYO PAMBUDI NIM :
Sistem Berkas 2. ORGANISASI FILE.
Algoritma Brute Force.
Struktur Data.
STRUKTUR DATA Introduction KHOIRIYA LATIFA, M.Kom.
Dr. Mufid Nilmada, SSi., MMSI
Desain dan Analisis Algoritma
Matakuliah : Algoritma & Struktur Data Versi Materi Larik
Transcript presentasi:

PENGANTAR STRUKTUR DATA Ika Menarianti, M.Kom

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 (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 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 Agung Penanganan manual kartu pasien Azam A B .. Z

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? Bagaimana jika data seperti itu diproses dalam komputer? Struktur data apa yang paling tepat untuk digunakan?

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.

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

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

Efisien? Bagaimana mengukurnya? (6) FOR i  1 to N Jum  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 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).

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

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

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

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

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

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) = N2 + 100 N2 f(N) = 3N3 + N

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

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 > 10.000? (b). Manakah yang lebih baik N = 1000? (c). Apakah y lebih cepat daripada x untuk semua kemungkinan nilai N?