Top Banner
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom Struktur Data dan Algoritma Q4M1 2015 CEP - CCIT Fakultas Teknik Universitas Indonesia
22

Algorithm & Data Structure - Pengantar

Apr 16, 2017

Download

Technology

Dudy Ali
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algorithm & Data Structure - Pengantar

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Struktur Data dan AlgoritmaQ4M1

2015

CEP - CCITFakultas Teknik Universitas Indonesia

Page 2: Algorithm & Data Structure - Pengantar

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.

Page 3: Algorithm & Data Structure - Pengantar

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

Page 4: Algorithm & Data Structure - Pengantar

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.

Page 5: Algorithm & Data Structure - Pengantar

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.

Page 6: Algorithm & Data Structure - Pengantar

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.

Page 7: Algorithm & Data Structure - Pengantar

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.

Page 8: Algorithm & Data Structure - Pengantar

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

Page 9: Algorithm & Data Structure - Pengantar

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

Page 10: Algorithm & Data Structure - Pengantar

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.

Page 11: Algorithm & Data Structure - Pengantar

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

Page 12: Algorithm & Data Structure - Pengantar

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

Page 13: Algorithm & Data Structure - Pengantar

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

Page 14: Algorithm & Data Structure - Pengantar

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

Page 15: Algorithm & Data Structure - Pengantar

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.

Page 16: Algorithm & Data Structure - Pengantar

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.

Page 17: Algorithm & Data Structure - Pengantar

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.

Page 18: Algorithm & Data Structure - Pengantar

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)

Page 19: Algorithm & Data Structure - Pengantar

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)

Page 20: Algorithm & Data Structure - Pengantar

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

Page 21: Algorithm & Data Structure - Pengantar

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

Page 22: Algorithm & Data Structure - Pengantar

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Terima KasihDudy Fathan Ali S.Kom

[email protected]