KEMBAR78
Algorithm & Data Structure - Pengantar | PPTX
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Struktur Data dan Algoritma
Q4M1
2015
CEP - CCIT
Fakultas 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
dequeue
getFront
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 algoritma
o 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!
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Terima Kasih
Dudy Fathan Ali S.Kom
dudy.fathan@eng.ui.ac.id

Algorithm & Data Structure - Pengantar

  • 1.
    Algorithm and DataStructure (C#) Dudy Fathan Ali S.Kom Struktur Data dan Algoritma Q4M1 2015 CEP - CCIT Fakultas Teknik Universitas Indonesia
  • 2.
    Arti Kata Algorithm andData 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.
  • 3.
    Struktur Data Algorithm andData 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
  • 4.
    Mengapa Materi IniPenting? 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.
  • 5.
    Mengapa Belajar ImplementasiStuktur 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.
  • 6.
    Peranan Algoritma Algorithm andData 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.
  • 7.
    Peranan Algoritma Algorithm andData 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.
  • 8.
    Peranan Algoritma Algorithm andData 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
  • 9.
    Peranan Struktur Data Algorithmand 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
  • 10.
    Peranan Struktur Data Algorithmand 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.
  • 11.
    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
  • 12.
    ADT : List Algorithmand 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
  • 13.
    ADT : Stack Algorithmand 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
  • 14.
    ADT : Queue Algorithmand 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 dequeue getFront
  • 15.
    Efisiensi Suatu Algoritma Algorithmand 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.
  • 16.
    Efisiensi Suatu Algoritma Algorithmand 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 algoritma o Space : Jumlah memory yang digunakan oleh algoritma untuk memprosesnya. o Semakin sedikit resources yang digunakan, semakin efisien algoritma tersebut untuk diterapkan.
  • 17.
    Efisiensi Suatu Algoritma Algorithmand 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.
  • 18.
    Efisiensi Suatu Algoritma Algorithmand 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)
  • 19.
    Efisiensi Suatu Algoritma Algorithmand 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)
  • 20.
    Panduan Project Algorithm andData 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).
  • 21.
    Latihan Algorithm and DataStructure (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! 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1
  • 22.
    Algorithm and DataStructure (C#) Dudy Fathan Ali S.Kom Terima Kasih Dudy Fathan Ali S.Kom dudy.fathan@eng.ui.ac.id

Editor's Notes