SlideShare a Scribd company logo
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

More Related Content

What's hot

Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
Georgius Rinaldo
 
Materi 2-manajemen portofolio ti
Materi 2-manajemen portofolio tiMateri 2-manajemen portofolio ti
Materi 2-manajemen portofolio ti
Fajar Baskoro
 
Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...
Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...
Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...
Wahyu Anggara
 
Pertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataPertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur Data
Endang Retnoningsih
 
Tugas makalah komunikasi data
Tugas makalah komunikasi dataTugas makalah komunikasi data
Tugas makalah komunikasi data
Software Engineering Professionals (SEP)
 
Rangkaian pembanding rangkaian komparator Comparator
Rangkaian pembanding rangkaian komparator ComparatorRangkaian pembanding rangkaian komparator Comparator
Rangkaian pembanding rangkaian komparator Comparator
Ady Purnomo
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasi
ahmad haidaroh
 
Kisi kisi soal uas semester 2
Kisi  kisi soal uas semester 2Kisi  kisi soal uas semester 2
Kisi kisi soal uas semester 2
Bina Sarana Informatika
 
Ppt cara membuat website menggunakan wordpress wdwp team
Ppt cara membuat website menggunakan wordpress wdwp teamPpt cara membuat website menggunakan wordpress wdwp team
Ppt cara membuat website menggunakan wordpress wdwp team
caramembuatweb
 
Pertemuan 4 (pemrosesan instruksi)
Pertemuan 4 (pemrosesan instruksi)Pertemuan 4 (pemrosesan instruksi)
Pertemuan 4 (pemrosesan instruksi)
Tenia Wahyuningrum
 
Modul praktikum dasar dasar pemrograman java
Modul  praktikum dasar dasar pemrograman javaModul  praktikum dasar dasar pemrograman java
Modul praktikum dasar dasar pemrograman java
stephan EL'wiin Shaarawy
 
Bab 3. pengenalan algoritma
Bab 3. pengenalan algoritmaBab 3. pengenalan algoritma
Bab 3. pengenalan algoritmaArif Punk Street
 
Pertemuan 11 input output
Pertemuan 11 input outputPertemuan 11 input output
Pertemuan 11 input output
Buhori Muslim
 
Algoritma dan Pemrograman C++ (Perulangan)
Algoritma dan Pemrograman C++ (Perulangan)Algoritma dan Pemrograman C++ (Perulangan)
Algoritma dan Pemrograman C++ (Perulangan)
Nabil Muhammad Firdaus
 
92342285 contoh-dengan-2-node-teorema-superposisi
92342285 contoh-dengan-2-node-teorema-superposisi92342285 contoh-dengan-2-node-teorema-superposisi
92342285 contoh-dengan-2-node-teorema-superposisi
drui
 
Carilah besar dan arah arus (i1,i2,i3)
Carilah besar dan arah arus (i1,i2,i3)Carilah besar dan arah arus (i1,i2,i3)
Carilah besar dan arah arus (i1,i2,i3)indahfarimaputri
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
casnadi
 

What's hot (20)

Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
 
Materi 2-manajemen portofolio ti
Materi 2-manajemen portofolio tiMateri 2-manajemen portofolio ti
Materi 2-manajemen portofolio ti
 
Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...
Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...
Sistem Informasi Manajemen "Dokumen Usulan Pengembangan Sistem Informasi untu...
 
Pertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataPertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur Data
 
Tugas makalah komunikasi data
Tugas makalah komunikasi dataTugas makalah komunikasi data
Tugas makalah komunikasi data
 
Rangkaian pembanding rangkaian komparator Comparator
Rangkaian pembanding rangkaian komparator ComparatorRangkaian pembanding rangkaian komparator Comparator
Rangkaian pembanding rangkaian komparator Comparator
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasi
 
Kisi kisi soal uas semester 2
Kisi  kisi soal uas semester 2Kisi  kisi soal uas semester 2
Kisi kisi soal uas semester 2
 
Ppt cara membuat website menggunakan wordpress wdwp team
Ppt cara membuat website menggunakan wordpress wdwp teamPpt cara membuat website menggunakan wordpress wdwp team
Ppt cara membuat website menggunakan wordpress wdwp team
 
Tugas 1 etika profesi
Tugas 1 etika profesiTugas 1 etika profesi
Tugas 1 etika profesi
 
Modul kamus data
Modul kamus dataModul kamus data
Modul kamus data
 
Pertemuan 4 (pemrosesan instruksi)
Pertemuan 4 (pemrosesan instruksi)Pertemuan 4 (pemrosesan instruksi)
Pertemuan 4 (pemrosesan instruksi)
 
Modul praktikum dasar dasar pemrograman java
Modul  praktikum dasar dasar pemrograman javaModul  praktikum dasar dasar pemrograman java
Modul praktikum dasar dasar pemrograman java
 
Bab 3. pengenalan algoritma
Bab 3. pengenalan algoritmaBab 3. pengenalan algoritma
Bab 3. pengenalan algoritma
 
Pertemuan 11 input output
Pertemuan 11 input outputPertemuan 11 input output
Pertemuan 11 input output
 
Algoritma dan Pemrograman C++ (Perulangan)
Algoritma dan Pemrograman C++ (Perulangan)Algoritma dan Pemrograman C++ (Perulangan)
Algoritma dan Pemrograman C++ (Perulangan)
 
UAS MPPL
UAS MPPLUAS MPPL
UAS MPPL
 
92342285 contoh-dengan-2-node-teorema-superposisi
92342285 contoh-dengan-2-node-teorema-superposisi92342285 contoh-dengan-2-node-teorema-superposisi
92342285 contoh-dengan-2-node-teorema-superposisi
 
Carilah besar dan arah arus (i1,i2,i3)
Carilah besar dan arah arus (i1,i2,i3)Carilah besar dan arah arus (i1,i2,i3)
Carilah besar dan arah arus (i1,i2,i3)
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
 

Similar to Algorithm & Data Structure - Pengantar

Algoritma Pemrogaman
Algoritma PemrogamanAlgoritma Pemrogaman
Algoritma Pemrogaman
Materi Kuliah Online
 
Berkas
Berkas Berkas
Berkas
Tetsuya4
 
1. Desain dan analisis algoritma__ pengantar algoritma.pdf
1. Desain dan analisis algoritma__ pengantar algoritma.pdf1. Desain dan analisis algoritma__ pengantar algoritma.pdf
1. Desain dan analisis algoritma__ pengantar algoritma.pdf
septiara5
 
pertemuan 1__Desain dan analisis algoritma
pertemuan 1__Desain dan analisis algoritmapertemuan 1__Desain dan analisis algoritma
pertemuan 1__Desain dan analisis algoritma
septiara5
 
Algo dn pemrogaman
Algo dn pemrogamanAlgo dn pemrogaman
Algo dn pemrogaman
Arjun Starlivezz
 
Algoritma dan data struktur pdf
Algoritma dan data struktur pdfAlgoritma dan data struktur pdf
Algoritma dan data struktur pdf
dedisusanto41
 
M03b algoritma lanjutan
M03b algoritma lanjutanM03b algoritma lanjutan
M03b algoritma lanjutanBilly Alhamra
 
BERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptxBERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptx
SMAN8BandaAceh
 
Pertemuan1
Pertemuan1Pertemuan1
Pertemuan1
ferdie84
 
Tahapan analisis dan perancangan sistem informasi
Tahapan analisis dan perancangan sistem informasiTahapan analisis dan perancangan sistem informasi
Tahapan analisis dan perancangan sistem informasi
Stemada Kediri
 
3-1 Algoritma.pptx
3-1 Algoritma.pptx3-1 Algoritma.pptx
3-1 Algoritma.pptx
BKKSMKN2Jombang
 
Dasar Algoritma
Dasar Algoritma Dasar Algoritma
Dasar Algoritma
casnadi
 
soal ppk pranata komputer.pdf
soal ppk pranata komputer.pdfsoal ppk pranata komputer.pdf
soal ppk pranata komputer.pdf
RianRizkiRamadhan
 
Algoritma dan Pemrograman
Algoritma dan Pemrograman Algoritma dan Pemrograman
Algoritma dan Pemrograman
Farah Imaniar Rettyana
 
Materi 1 - Algoritma & Pemrogaman
Materi 1 - Algoritma & PemrogamanMateri 1 - Algoritma & Pemrogaman
Materi 1 - Algoritma & Pemrogaman
Agus Abdurrachman Widodo
 
Algoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.pptAlgoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.ppt
BKKSMKN2Jombang
 
ALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMANALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMAN
Bang Jo
 
Intruksi Fundamental
Intruksi FundamentalIntruksi Fundamental
Intruksi Fundamental
Akmal Fajar
 

Similar to Algorithm & Data Structure - Pengantar (20)

Algoritma Pemrogaman
Algoritma PemrogamanAlgoritma Pemrogaman
Algoritma Pemrogaman
 
Berkas
Berkas Berkas
Berkas
 
1. Desain dan analisis algoritma__ pengantar algoritma.pdf
1. Desain dan analisis algoritma__ pengantar algoritma.pdf1. Desain dan analisis algoritma__ pengantar algoritma.pdf
1. Desain dan analisis algoritma__ pengantar algoritma.pdf
 
Algoritam1
Algoritam1Algoritam1
Algoritam1
 
pertemuan 1__Desain dan analisis algoritma
pertemuan 1__Desain dan analisis algoritmapertemuan 1__Desain dan analisis algoritma
pertemuan 1__Desain dan analisis algoritma
 
Algo dn pemrogaman
Algo dn pemrogamanAlgo dn pemrogaman
Algo dn pemrogaman
 
Algoritma dan data struktur pdf
Algoritma dan data struktur pdfAlgoritma dan data struktur pdf
Algoritma dan data struktur pdf
 
M03b algoritma lanjutan
M03b algoritma lanjutanM03b algoritma lanjutan
M03b algoritma lanjutan
 
BERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptxBERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptx
 
Pertemuan1
Pertemuan1Pertemuan1
Pertemuan1
 
Tahapan analisis dan perancangan sistem informasi
Tahapan analisis dan perancangan sistem informasiTahapan analisis dan perancangan sistem informasi
Tahapan analisis dan perancangan sistem informasi
 
3-1 Algoritma.pptx
3-1 Algoritma.pptx3-1 Algoritma.pptx
3-1 Algoritma.pptx
 
Dasar Algoritma
Dasar Algoritma Dasar Algoritma
Dasar Algoritma
 
soal ppk pranata komputer.pdf
soal ppk pranata komputer.pdfsoal ppk pranata komputer.pdf
soal ppk pranata komputer.pdf
 
Algoritma dan Pemrograman
Algoritma dan Pemrograman Algoritma dan Pemrograman
Algoritma dan Pemrograman
 
Materi 1 - Algoritma & Pemrogaman
Materi 1 - Algoritma & PemrogamanMateri 1 - Algoritma & Pemrogaman
Materi 1 - Algoritma & Pemrogaman
 
Algoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.pptAlgoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.ppt
 
ALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMANALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMAN
 
Intruksi Fundamental
Intruksi FundamentalIntruksi Fundamental
Intruksi Fundamental
 
Sd p1
Sd p1Sd p1
Sd p1
 

More from Dudy Ali

Understanding COM+
Understanding COM+Understanding COM+
Understanding COM+
Dudy Ali
 
Distributed Application Development (Introduction)
Distributed Application Development (Introduction)Distributed Application Development (Introduction)
Distributed Application Development (Introduction)
Dudy Ali
 
Java CRUD Mechanism with SQL Server Database
Java CRUD Mechanism with SQL Server DatabaseJava CRUD Mechanism with SQL Server Database
Java CRUD Mechanism with SQL Server Database
Dudy Ali
 
Network Socket Programming with JAVA
Network Socket Programming with JAVANetwork Socket Programming with JAVA
Network Socket Programming with JAVA
Dudy Ali
 
Review Materi ASP.NET
Review Materi ASP.NETReview Materi ASP.NET
Review Materi ASP.NET
Dudy Ali
 
XML Schema Part 2
XML Schema Part 2XML Schema Part 2
XML Schema Part 2
Dudy Ali
 
XML Schema Part 1
XML Schema Part 1XML Schema Part 1
XML Schema Part 1
Dudy Ali
 
Rendering XML Document
Rendering XML DocumentRendering XML Document
Rendering XML Document
Dudy Ali
 
Pengantar XML
Pengantar XMLPengantar XML
Pengantar XML
Dudy Ali
 
Pengantar XML DOM
Pengantar XML DOMPengantar XML DOM
Pengantar XML DOM
Dudy Ali
 
Pengantar ADO.NET
Pengantar ADO.NETPengantar ADO.NET
Pengantar ADO.NET
Dudy Ali
 
Database Connectivity with JDBC
Database Connectivity with JDBCDatabase Connectivity with JDBC
Database Connectivity with JDBC
Dudy Ali
 
XML - Displaying Data ith XSLT
XML - Displaying Data ith XSLTXML - Displaying Data ith XSLT
XML - Displaying Data ith XSLT
Dudy Ali
 
Algorithm & Data Structure - Algoritma Pengurutan
Algorithm & Data Structure - Algoritma PengurutanAlgorithm & Data Structure - Algoritma Pengurutan
Algorithm & Data Structure - Algoritma Pengurutan
Dudy Ali
 
Object Oriented Programming - Value Types & Reference Types
Object Oriented Programming - Value Types & Reference TypesObject Oriented Programming - Value Types & Reference Types
Object Oriented Programming - Value Types & Reference Types
Dudy Ali
 
Object Oriented Programming - Inheritance
Object Oriented Programming - InheritanceObject Oriented Programming - Inheritance
Object Oriented Programming - Inheritance
Dudy Ali
 
Object Oriented Programming - File Input & Output
Object Oriented Programming - File Input & OutputObject Oriented Programming - File Input & Output
Object Oriented Programming - File Input & Output
Dudy Ali
 
Object Oriented Programming - Constructors & Destructors
Object Oriented Programming - Constructors & DestructorsObject Oriented Programming - Constructors & Destructors
Object Oriented Programming - Constructors & Destructors
Dudy Ali
 
Object Oriented Programming - Abstraction & Encapsulation
Object Oriented Programming - Abstraction & EncapsulationObject Oriented Programming - Abstraction & Encapsulation
Object Oriented Programming - Abstraction & Encapsulation
Dudy Ali
 
Web Programming Syaria - Pengenalan Halaman Web
Web Programming Syaria - Pengenalan Halaman WebWeb Programming Syaria - Pengenalan Halaman Web
Web Programming Syaria - Pengenalan Halaman Web
Dudy Ali
 

More from Dudy Ali (20)

Understanding COM+
Understanding COM+Understanding COM+
Understanding COM+
 
Distributed Application Development (Introduction)
Distributed Application Development (Introduction)Distributed Application Development (Introduction)
Distributed Application Development (Introduction)
 
Java CRUD Mechanism with SQL Server Database
Java CRUD Mechanism with SQL Server DatabaseJava CRUD Mechanism with SQL Server Database
Java CRUD Mechanism with SQL Server Database
 
Network Socket Programming with JAVA
Network Socket Programming with JAVANetwork Socket Programming with JAVA
Network Socket Programming with JAVA
 
Review Materi ASP.NET
Review Materi ASP.NETReview Materi ASP.NET
Review Materi ASP.NET
 
XML Schema Part 2
XML Schema Part 2XML Schema Part 2
XML Schema Part 2
 
XML Schema Part 1
XML Schema Part 1XML Schema Part 1
XML Schema Part 1
 
Rendering XML Document
Rendering XML DocumentRendering XML Document
Rendering XML Document
 
Pengantar XML
Pengantar XMLPengantar XML
Pengantar XML
 
Pengantar XML DOM
Pengantar XML DOMPengantar XML DOM
Pengantar XML DOM
 
Pengantar ADO.NET
Pengantar ADO.NETPengantar ADO.NET
Pengantar ADO.NET
 
Database Connectivity with JDBC
Database Connectivity with JDBCDatabase Connectivity with JDBC
Database Connectivity with JDBC
 
XML - Displaying Data ith XSLT
XML - Displaying Data ith XSLTXML - Displaying Data ith XSLT
XML - Displaying Data ith XSLT
 
Algorithm & Data Structure - Algoritma Pengurutan
Algorithm & Data Structure - Algoritma PengurutanAlgorithm & Data Structure - Algoritma Pengurutan
Algorithm & Data Structure - Algoritma Pengurutan
 
Object Oriented Programming - Value Types & Reference Types
Object Oriented Programming - Value Types & Reference TypesObject Oriented Programming - Value Types & Reference Types
Object Oriented Programming - Value Types & Reference Types
 
Object Oriented Programming - Inheritance
Object Oriented Programming - InheritanceObject Oriented Programming - Inheritance
Object Oriented Programming - Inheritance
 
Object Oriented Programming - File Input & Output
Object Oriented Programming - File Input & OutputObject Oriented Programming - File Input & Output
Object Oriented Programming - File Input & Output
 
Object Oriented Programming - Constructors & Destructors
Object Oriented Programming - Constructors & DestructorsObject Oriented Programming - Constructors & Destructors
Object Oriented Programming - Constructors & Destructors
 
Object Oriented Programming - Abstraction & Encapsulation
Object Oriented Programming - Abstraction & EncapsulationObject Oriented Programming - Abstraction & Encapsulation
Object Oriented Programming - Abstraction & Encapsulation
 
Web Programming Syaria - Pengenalan Halaman Web
Web Programming Syaria - Pengenalan Halaman WebWeb Programming Syaria - Pengenalan Halaman Web
Web Programming Syaria - Pengenalan Halaman Web
 

Algorithm & Data Structure - Pengantar

  • 1. Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom Struktur Data dan Algoritma Q4M1 2015 CEP - CCIT Fakultas Teknik Universitas Indonesia
  • 2. 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.
  • 3. 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
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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
  • 9. 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
  • 10. 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.
  • 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 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
  • 13. 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
  • 14. 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
  • 15. 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.
  • 16. 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.
  • 17. 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.
  • 18. 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)
  • 19. 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)
  • 20. 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).
  • 21. 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
  • 22. Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom Terima Kasih Dudy Fathan Ali S.Kom dudy.fathan@eng.ui.ac.id

Editor's Notes

  1. Abstract Data Type