Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Struktur Data dan AlgoritmaQ4M1
2015
CEP - CCITFakultas Teknik Universitas Indonesia
Arti Kata
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Data :• keterangan yg benar dan nyata• keterangan atau bahan nyata yg dapat dijadikan dasar kajian
(analisis atau kesimpulan)o Struktur :• sesuatu yang disusun atau dibangun• disusun dengan pola tertentu• pengaturan unsur atau bagian suatu benda
o Algoritma :• Instruksi yang telah ditentukan untuk menyelesaikan suatu
permasalahan yang spesifik di sejumlah langkah.
Struktur Data
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Semua program berurusan dengan data• Sistem informasi: informasi, laporan, user, …
• Game: posisi & status pemain, musuh, skor, …
• Search engine: URL, isi, hyperlink, bobot, …
• Mengapa data itu disimpan?• Supaya bisa diakses/diproses di kemudian waktu
• Mengapa dalam penyimpanan data diperlukan sebuah struktur?• Supaya lebih mudah/efisien dalam pengaksesan/pemrosesan
data tersebut
Mengapa Materi Ini Penting?
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Perhatikan Kode Program Untuk Menampilkan Angka 1 – 500 :
Console.WriteLine(“1”);Console.WriteLine(“2”);Console.WriteLine(“3”);... Console.WriteLine(“500”);
Kode Disamping 500 Baris.Apakah Kode Disamping Benar?
Bandingkanlah Dengan Kode Berikut :
for(int i = 0; i < 500; i++) { Console.WriteLine(i); }
Kode Disamping Hanya 4 Baris.Apakah Kode Disamping Benar?
Kode disamping Benar, akan tetapi tidak efisien dan sulit untuk dipelihara.
Kode disamping Benar, sederhana dan mudah untuk dipelihara.
Mengapa Belajar Implementasi Stuktur Data?
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Cara yang terbaik untuk benar-benar dapat memahami masing-masing struktur data adalah membuatnya.
o Mengetahui kelebihan dan kekurangan dari masing-masing struktur data.
o Dalam industri, bahasa yang digunakan tidaklah selalu C#.o Melatih berpikir tentang efisiensi.
Peranan Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Kata “Algorithm” berasal dari nama seorang ahli matematika bernama Al Khwarizmi.
o Sebuah algoritma bisa diartikan sebagai langkah-langkah prosedural untuk menyelesaikan suatu permasalahan.
o Sebuah algoritma membantu kita untuk mendapatkan hasil yang tepat dari beberapa langkah yang sudah ditentukan.
Peranan Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Contoh sederhana algoritma dikehidupan sehari-hari (memasak mie instant) :1. Siapkan peralatan masak seperti panci/wajan.2. Isi panci/wajan dengan air.3. Masak air hingga mendidih.4. Masukkan mie instant kedalam panci/wajan.5. Tunggu hingga 3 menit.6. Tiriskan mie instant yang sudah matang.7. Sajikan mie instant yang sudah ditaburi bumbu penyedap.
Peranan Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Suatu masalah bisa dipecahkan dengan Komputer hanya jika suatu algoritma bisa dituliskan untuk menyelesaikannya.
o Dengan tambahan, algoritma memiliki kelebihan sebagai berikut :• Membantu dalam membuat program yang sesuai• Membagi permasalahan kedalam beberapa bagian kecil yang
bisa diselesaikan.• Membantu dalam mengambil keputusan secara rasional• Membantu membuat proses pengerjaan menjadi konsisten
dan handal
Peranan Struktur Data
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Data bisa diorganisir dengan berbagai cara yang memungkinkan anda bisa membuat struktur data sebanyak yang diperlukan.
o Beberapa struktur data yang dibuktikan sudah membantu dalam penyelesaian masalah :• Arrays• Linked List• Stacks• Queues• Trees• Graphs
Peranan Struktur Data
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Penggunaan struktur data yang tepat dapat meningkatkan nilai efisiensi dari program.
o Penggunaan struktur data yang tepat juga dapat membantu mengatasi beberapa tantangan programming seperti :• Menyederhanakan permasalahan yang rumit• Membuat standarisasi komponen kode yang bisa digunakan
kembali.• Membuat program yang mudah untuk dimengerti dan
dipelihara.
Struktur Data = Container
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Sebuah struktur data dapat dipandang sebagai tempat penyimpanan benda (container).
• Beberapa hal yang dapat dilakukan:– Menaruh benda– Mengambil benda– Mencari benda tertentu– Mengosongkannya (atau periksa
apakah kosong)
Container
Data
ADT : List
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Sebuah List adalah kumpulan benda di mana setiap benda memiliki posisi.
• Setiap benda dalam List dapat diakses melalui indeks-nya.• Contoh paling gampang : Array!
1 2 3 4Indeks
ADT : Stack
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Sebuah Stack adalah kumpulan benda di mana hanya benda yang most recently inserted dapat diakses.
• Bayangkan setumpuk koran.• Benda yang paling terakhir
ditambahkan ditaruh di atas tumpukan (top).
• Ingat FILO (First In, Last Out)
Least recent
Most recent
push
pop,top
ADT : Queue
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Sebuah Queue adalah kumpulan benda di mana hanya benda yang least recently inserted dapat diakses.• Bayangkan antrian printer job pada jaringan.• Benda yang paling awal ditambahkan berada di depan antrian
(front).• Ingat FIFO (First In, First Out)
enqueue
Most recent
Least recent
dequeuegetFront
Efisiensi Suatu Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Faktor yang mempengaruhi efisiensi dari program antara lain :• Speed of the machine• Compiler• Operating System• Programming Language• Size of the input
o Faktor tambahannya antara lain cara mengorganisir data dan algoritma yang digunakan juga mempengaruhi efisiensi dari program.
Efisiensi Suatu Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Efisiensi dari algoritma bisa dihitung dengan cara mendefinisikan jumlah resources yang digunakan.
o Sumber primer yang digunakan algoritma adalah :o Time : Waktu dari CPU memproses sebuah algoritmao Space : Jumlah memory yang digunakan oleh algoritma untuk
memprosesnya.o Semakin sedikit resources yang digunakan, semakin efisien
algoritma tersebut untuk diterapkan.
Efisiensi Suatu Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Untuk mengukur efisiensi algoritma, anda bisa menuliskan suatu kode program berdasarkan algoritma tersebut, eksekusi, dan ukur berapa waktu yang dibutuhkan.
o Waktu eksekusi dari suatu algoritma bergantung terhadap jumlah komparasi (comparisons) yang ada pada suatu algoritma dan fungsi dari n, dimana n adalah jumlah data yang diinputkan.
o The Order of Growth didefinisikan dengan notasi huruf O besar.o The Big O sudah menjadi teknik fundamental dalam
mendeskripsikan efisiensi algoritma.
Efisiensi Suatu Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Perbedaan dari Order of Growth dan Big O Notation yang sesuai :• Constant – O(1)• Logarithmic – O(log n)• Linear – O(n)• Loglinear – O(n log n)• Quadratic – O(n2)• Cubic – O(n3)• Exponential – O(2n), O(10n)
Efisiensi Suatu Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Berdasarkan Order of Growth, Big O bisa disusun sebagai berikut :
O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(2n) < O(10n)
Panduan Project
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Setiap kelompok akan membuat program dengan menggunakan bahasa C#.
o Program yang dibuat wajib mengimplementasikan beberapa metode algoritma dan struktur data.
o Setiap anggota kelompok mengerti tentang algoritma dan struktur data yang digunakan pada program yang dibuatnya.
o Tema yang digunakan bebas (diperbolehkan membuat sistem informasi ataupun game).
Latihan
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
1. Buatlah program untuk mencetak pola seperti disamping, apabila nilai inputan yang dimasukkan adalah 5.
2. Berapakah kemungkinan langkah terkecil yang bisa dilakukan untuk menyelesaikan Tower of Hanoi (Lucas, 1883)? Buktikan!
12 13 2 14 3 2 15 4 3 2 1
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Terima KasihDudy Fathan Ali S.Kom