Struktur Data & Algoritma Pengantar Suryana Setiawan, Ruli Manurung & Ade Azurat

Download Report

Transcript Struktur Data & Algoritma Pengantar Suryana Setiawan, Ruli Manurung & Ade Azurat

Struktur Data & Algoritma
Pengantar
Suryana Setiawan, Ruli Manurung & Ade Azurat
(acknowledgments: Denny)
Fasilkom UI
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
1
Tujuan Mata Kuliah

Mempelajari dasar-dasar ilmu komputer agar dapat
melakukan




perancangan dan pemilihan struktur data yang sesuai,
implementasi, dan
melakukan analisis secara umum pada algoritma yang dibuat.
Melatih pemrograman



Skala lebih besar
“Programming to an interface”
Prinsip-prinsip dasar RPL: abstraksi, modularitas, dst.
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
2
Arti kata (Webster)

da•ta

n.pl.
• facts or figures to be processed; evidence, records, statistics, etc.
from which conclusions can be inferred; information

struc•ture

n.
1 manner of building, constructing, or organizing
2 something built or constructed, as a building or dam
3 the arrangement or interrelation of all the parts of a whole; manner
of organization or construction [the structure of the atom, the
structure of society]
4 something composed of interrelated parts forming an organism or
an organization
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
3
Arti kata (Webster)

al•go•rithm

n.
1 Math. a) any systematic method of solving a certain kind
of problem b) the repetitive calculations used in finding
the greatest common divisor of two numbers (called in
full Euclidean algorithm)
2 Comput. a predetermined set of instructions for solving a
specific problem in a limited number of steps

Contoh:


Problem: mencari sebuah integer dalam sebuah array
terurut
Algoritma: binary search
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
4
Struktur Data

Semua program berurusan dengan data




Mengapa data itu disimpan?


Sistem informasi: informasi, laporan, user, …
Game: posisi & status pemain, musuh, skor, …
Search engine: URL, isi, hyperlink, bobot, …
Supaya bisa diakses/diproses di kemudian waktu
Mengapa dalam penyimpanan data diperlukan sebuah
struktur?

Supaya lebih mudah/efisien dalam pengaksesan/pemrosesan
data tersebut
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
5
Mengapa kuliah ini penting?

Apakah kuliah DDP saja tidak cukup?




Perhatikan program untuk menghitung jumlah kemunculan
angka 1 sampai 500 dalam sebuah file:
if (k ==
1) c001++;
if (k ==
2) c002++;
...
if (k == 500) c500++;
Program di atas >500 baris.
Progam di atas benar walaupun tidak efisien, sangat besar
(500 lines of code), dan sulit dipelihara.
Solusi sederhana: gunakanlah array integer yang terdiri dari
500 elemen
int c[500];
c[k]++;
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
6
Mengapa kuliah ini penting? (2)

Moral of the story:


Pemilihan struktur data maupun algoritma yang tepat
dapat membuat program lebih: efisien, mudah, elegan
Contoh Aplikasi:

Mencari jarak terpendek antara dua kota

• menggunakan struktur data Graph
Sistem basis data (Oracle, SQL Server, dll)

• menggunakan struktur data BTree, Hashtable
Menghitung ekspresi: (5 + 2) * 7
• menggunakan struktur data Stack/Tree
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
7
Mengapa Belajar Implementasi Struktur Data?




Mengetahui kelebihan dan kekurangan dari
masing-masing struktur data.
Cara yang terbaik untuk benar-benar dapat
memahami masing-masing struktur data
adalah membuatnya.
Dalam industri, bahasa yang digunakan
tidaklah selalu Java. Mungkin saja di bahasa
tersebut tidak terdapat library untuk struktur
data.
Melatih berpikir tentang efisiensi
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
8
Topik-Topik yang Dibahas









Analisis algoritma
Abstract Data Type + Java Collections API
Pemrograman secara rekursif
Pengurutan (sorting)
Implementasi struktur data linear: List, Stack, Queue
Struktur data hirarkis: Tree
Binary Search Tree, AVL Tree, BTree
Hashtable
Graph
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
9
Jadwal Perkuliahan

Masa perkuliahan: 01 September – 12 Desember 2008

Jadwal Kuliah

Program Studi Ilmu Komputer

• Senin, 8:00-10:40
• Rabu, 8:00-10:40
Program Studi S1 - Sistem Informasi & S2 Ilmu Komputer
• Senin, 10:00-11:40
• Rabu, 10:00-11:40

Tutorial Lab (Worksheet, Quiz, atau Persiapan Ujian) WAJIB !




Rabu, 15:30 - 17:00 (S1 IK Kelas A)
Kamis, 15:30 - 17:00 (S1 IK Kelas B)
Kamis, 13:30 – 15:00 (S1 SI & S2 IK)
Ujian:


UTS : Pekan ke-7 (Rabu, 22 Okt 2008)
UAS : Jadwal UAS Fasilkom (15 – 24 Des 2008)
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
10
Rencana Perkuliahan
(1)
(2)
(3)
(4)
Hari
Materi
Labs + Tutorial
Senin, 01-09
Overview & Intro to SDA,
Rabu, 03-09
Java review (+ generics)
WS 01 - Uji coba automatic
grader
Senin, 08-09
Algorithm Analysis
Rabu, 10-09
Algorithm Analysis
Senin, 15-09
Abstract Data Types
Rabu, 17-09
Java Collections API
Senin, 22-09
Recursion
Rabu, 24-09
Recursion
Senin, 29-09
(6)
(7)
(8)
WS 02
Tugas 01
Libur Hari Raya Iedul Fithri (Lebaran) (29 Sept- 3 Okt 2008)
Rabu, 01-10
(5)
Quiz 01
Senin, 06-10
Sorting
Rabu, 08-10
Sorting
Senin, 13-10
Implementation: List, Stack & Queue
Rabu, 15-10
Implementation: List, Stack & Queue
Senin, 20-10
Trees
Rabu, 22-10
Senin, 27-10
SUR – HMM – AA
WS 03
Ujian Tengah Semester
Trees
Tutorial Persiapan Ujian.
WS 04
Quiz 02
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
11
Rencana Perkuliahan
Senin, 03-11
Binary Search Trees
Rabu, 05-11
AVL Tree
Senin, 10-11
AVL Tree (+ quiz tree)
(9)
WS 05
(10)
Tugas 02
Rabu, 12-11
AVL Tree + B-Tree
Senin, 17-11
B-Tree
(11)
WS 06
Rabu, 19-11
Binary Heap
Senin, 24-11
Huffman Code
(12)
Quiz 03
Rabu, 26-11
Hash table
Senin, 01-12
Hash table
(13)
WS 07
Rabu, 03-11
Senin, 08-12
Representasi Graph
Libur Idul Adha (Hari Raya Kurban)
(14)
Tutorial Persiapan Ujian.
Rabu, 10-12
Senin, 15-12
SUR – HMM – AA
Algoritma Graph
Periode Ujian Akhir Semester
Tentative, Senin 15 Desember 2005
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
12
Tim Pengajar

Dosen:




Suryana Setiawan – [email protected]
Ruli Manurung – [email protected]
Ade Azurat – [email protected]
Asisten Dosen:
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
13
Materi Ajar

Homepage & resources:




https://scele.cs.ui.ac.id/s1
http://telaga.cs.ui.ac.id/WebKuliah/IKI20100
Google, Wikipedia, http://java.sun.com
Buku Acuan:

Mark Allen Weiss
Data Structures & Problem Solving Using Java (3rd Edition)
Addison Wesley, 2006.
Tersedia di Perpustakaan Fasilkom dengan
Call Number: 005.133 Wei d
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
14
Bobot Penilaian
UTS
 UAS
 Tugas Programming (2 tugas)
 Quiz Programming & Tertulis

25%
25%
20%
15%
• 3x Programming (waktu tutorial lab)
• 3x Tertulis (waktu jam kuliah)
 Worksheet (7x)
15%
• Masing-masing worksheet 2%, bonus 1% bagi
yang mengerjakan seluruh worksheet.
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
15
Peraturan

Peserta diwajibkan mengikuti kuliah dan tutorial (worksheet,
quiz, persiapan ujian).

Selama pengerjaan worksheet, peserta masih diperkenankan
untuk bertanya dan berdiskusi dengan asisten atau rekan kuliah.

Quiz, tugas dan ujian, harus dikerjakan sendiri tanpa bantuan
pihak lain sama sekali.

Peserta dengan kehadiran kurang dari 75% tidak diperkenankan
mengikuti ujian.

Peserta telah siap diruang kuliah sebelum kuliah dimulai.

Peserta yang terlambat tidak diperkenankan masuk ruang kuliah
kecuali pada kondisi khusus.
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
16
Kejujuran Akademis

Setiap bentuk kecurangan akan mendapatkan sanksi dengan
tegas sesuai dengan peraturan universitas. Contoh kecurangan:





Kecurangan saat ujian: menyontek jawaban teman, bekerjasama,
menginformasikan soal atau jawaban dengan pihak lain.
Kecurangan dalam makalah: menyalin (quote) dari makalah lain tanpa
menginformasikan sumber-nya
Kecurangan dalam tugas: menyalin & memodifikasi hasil kerja orang lain
tanpa menginformasikan sumber-nya.
Berdiskusi dalam mengerjakan tugas sangat disarankan, namun tugas
yang dikumpulkan haruslah ditulis dengan kalimat sendiri (tidak
menyalin).
Kecurangan dalam pencatatan kehadiran (titip tanda tangan)
Sanksi akan dikenakan baik kepada si pelaku maupun yang
membantu kecurangan tersebut.
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
17
Summary
 Struktur
data + Algoritma =
Program
 Pemilihan struktur data dan
algoritma yang tepat dapat
membuat program lebih efisien,
mudah, dan elegan
SUR – HMM – AA
Fasilkom UI - IKI20100/ IKI80110P
2008/2009 – Ganjil – Minggu 1
18