• Tidak ada hasil yang ditemukan

Struktur Data & Algoritme (Data Structures & Algorithms)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Struktur Data & Algoritme (Data Structures & Algorithms)"

Copied!
11
0
0

Teks penuh

(1)

Struktur Data & Algoritme

(

Data Structures & Algorithms

)

Fakultas Ilmu Komputer Universitas Indonesia Semester Genap - 2000/2001

Version 1.0 - Internal Use Only

Denny

[email protected]

Pengantar

Tujuan Mata Kuliah

n Dalam kuliah ini anda akan mempelajari dasar-dasar ilmu komputer agar dapat

n melakukan perancangan dan pemilihan struktur data yang sesuai,

n implementasi, dan

n melakukan analisis secara umum pada algoritma yang dibuat.

n Tentunya juga anda akan melatih diri dalam ‘programming’

(2)

SDA/INTRO/DN/V1.0/3

Arti kata (Webster)

n da•ta n n.pl.

[now usually with sing. v.] facts or figures to be processed; evidence, records, statistics, etc. from which conclusions can be inferred; information

n struc•ture n 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

Struktur Data

n Mengapa data itu disimpan?

n Supaya bisa diakses/diproses di kemudian waktu

n Mengapa dalam penyimpanan data diperlukan sebuah struktur?

n Supaya lebih mudah/efisien dalam pengaksesan/pemrosesan

(3)

SDA/INTRO/DN/V1.0/5

Mengapa kuliah ini penting?

n Apakah KP1 saja tidak cukup? n Perhatikan program berikut ini:

if (k == 1) c001++; if (k == 2) c002++; ...

if (k == 500) c500++;

n Program di atas (+- 500 baris) digunakan untuk menghitung jumlah kemunculan angka 1 sampai 500 dalam sebuah file.

n Progam di atas benar, tetapi sangat besar (butuh waktu pengembangan yang lebih lama) dan sulit dipelihara.

n Solusi: gunakanlah array dari integer yang terdiri dari 500 elemen

Mengapa kuliah ini penting? (2)

n Moral story:

n Pemilihan struktur data yang tepat, membuat program lebih terstruktur dan efesien

n Aplikasi:

n Sistem basis data (Oracle, SQL Server, dll)

n Menghitung ekspresi: (5 + 2) * 7

(4)

SDA/INTRO/DN/V1.0/7

Mengapa perlu belajar membuatnya,

khan sudah ada di Java API

n Supaya kita dapat mengetahui struktur data yang tepat, tentunya kita harus mengetahui kelebihan dan kekurangan dari masing-masing struktur data.

n Cara yang terbaik untuk benar-benar dapat memahami masing-masing struktur data adalah membuatnya.

n Dalam real world, bahasa yang digunakan tidaklah selalu Java. Mungkin saja di bahasa tersebut tidak terdapat library untuk struktur data.

Topik-Topik yang Dibahas

n Pengantar analisa algoritme

n Tipe Data Abstrak (Abstract Data Type - ADT)

n Model data linear: Array, Linked List

n Stack, Queue

n Model data hirarkis: Tree

n Graph

n Hashing

n Pelacakan (searching)

(5)

SDA/INTRO/DN/V1.0/9

Jadual Perkuliahan

n Masa perkuliahan: 29 Jan – 25 Mei 2001

n Mid Test:

n 27 Maret 2001 (pada jam kuliah)

n Batas akhir pembatalan MK (drop): 16 Apr 2001

n Minggu Tenang: 28 Mei – 01 Jun 2001

n Final Test:

n 5 - 15 Juni 2001 (sesuai dengan jadual sekretariat)

n Total kuliah: 32 x

Administrasi Kelas B

n Dosen: Denny - [email protected]

n Asisten Dosen: akan diumumkan kemudian

n Newsgroup: news.cs.ui.ac.id - forum.iki.struktur

n Homepage & resources:

http://pala.acad.cs.ui.ac.id/academic/sda/

n Buku Acuan:

n Mark Allen Weiss. Data Structures & Problem Solving Using Java. Addison Wesley, 1998.

(6)

SDA/INTRO/DN/V1.0/11

Penilaian

n Komponen penilaian: n Tugas Pemrograman 30% n Quiz/Tugas Mandiri 5% n Mid Test 25% n Final Test 40% n Presensi bonus

n Grading (subject to change) n A: 85 ke atas n B: 70 sampai dengan 84.9 n C: 55 sampai dengan 69.9 n D: 35 sampai dengan 54.9 n E: di bawah 35

Peraturan Kuliah

n Presensi

n minimum 70% kehadiran dari kehadiran dosen supaya dapat mengikuti ujian akhir.

n bonus 5 point, proporsi dari presensi diatas 90%

•contoh:

•presensi 92% mendapat bonus 1 point •presensi 100% mendapat bonus 5 point

•berguna bagi anda yang berada di perbatasan nilai untuk naik ke grade yang lebih tinggi.

(7)

SDA/INTRO/DN/V1.0/13

Kejujuran Akademis

n Kecurangan

n Setiap bentuk kecurangan akan mendapatkan sanksi dengan tegas sesuai dengan peraturan universitas

•Kecurangan saat ujian (menyontek jawaban teman atau bekerjasama)

•Kecurangan dalam tugas (menyalin & memodifikasi hasil pekerjaan yang lain)

•Kecurangan dalam pencatatan kehadiran (titip tanda tangan)

n Sanksi akan dikenakan baik pada si pelaku maupun yang memberi kesempatan.

Asistensi/Responsi

n Peserta akan dibagi ke dalam 3 kelompok asistensi yang masing-masing akan di asuh oleh seorang asisten (asisten akan diumumkan kemudian).

n Pembagian kelompok akan diumumkan pada forum.iki.struktur

n Anggota kelompok beserta asistennya

masing-masing dapat menentukan jadwal asistensi / responsi / pemeriksaan tugas.

(8)

SDA/INTRO/DN/V1.0/15

Problem Solving

n Apa itu problem/masalah?

n Apakah mencari pasangan hidup adalah problem?

n Apakah semua problem bisa diselesaikan dengan menggunakan komputer?

n Secara umum, ada 2 jenis problem: n problem to find

n problem to prove

Problem Solving (2)

n Termasuk problem yang manakah?

n Apakah ‘stop’ dan ‘pots’ adalah palindrome?

n Cetak semua kelompok kata palindrom dari sebuah file.

Prinsip terpenting dalam memecahkan masalah: Input

Output

Input

True False

Condition Condition

(9)

SDA/INTRO/DN/V1.0/17

Polya’s Principle

What are the inputs?

What is the desired output? Draw a figure!Introduce suitable notation Find connection

between input & output Can you derive anything of use from the inputs? Perhaps introduce an auxilary problem. Can you see an analogy? Make a good guess.

Have you seen it before? Do you know related problem? Look at the unknown

(the output) Restate the problem Perhaps first consider a related but simpler problem

Can you check the results? Test your implementation!

Could you derive a better plan?

Outline your plan Check each step Is each step correct?

Understand the problem Devise a plan Is this a computer problem? Implement the plan

Carry out the plan

Look back

yes no

Algorithms

n A clearly specified set of instructions the computer will follow to solve a problem

n Contoh:

n Problem: mencari sebuah integer dalam sebuah array terurut

(10)

SDA/INTRO/DN/V1.0/19

Tugas Mandiri & Latihan

n Cari dan pelajari struktur data yang telah tersedia di Java API

n Kerjakan latihan: 1.20 dalam buku acuan.

n Buat sebuah method yang menerima sebuah integer dan mencetak angka romawi. Jika parameter adalah

1998, outputnya MCMLXLVIII.

Summary

n struktur data + algoritme = program

n Langkah-langkah dalam memecahkan masalah: pahami masalah, buat sebuah rencana/solusi, implementasi/jalankan solusi, kemudian dikaji kembali solusi tersebut.

(11)

SDA/INTRO/DN/V1.0/21

Further Reading

n http://pala.acad.cs.ui.ac.id/academic/sda/ 1998/handout/handout07.html n http://pala.acad.cs.ui.ac.id/javaresources /jdk1.2.2/docs/api/java/util/package-summary.html

What’s Next

n Review konsep-konsep penting dalam Java (Chapter 1 - 4)

Referensi

Dokumen terkait

44 Tahun 2002 tentang Tatanan Kebandarudaraan Nasional, pengklasifikasian Bandar udara dibagi dalam 3 (tiga) kelompok yaitu kelompok A, B dan C, pembagian klasifikasi menjadi

- Peserta dibagi menjadi 3 kelompok (pembagian kelompok dapat dilihat dalam Lampiran II) - Setiap kelompok akan melaksanakan wawancara pada waktu yang bersamaan. - Setiap

Kemudian, guru membagi peserta didik menjadi delapan kelompok dengan masing-masing kelompok ada empat sampai lima orang. Dalam pembagian kelompok guru mengunakan

„ REVIEW: Suatu kelas yang meng-implements sebuah interface, berarti kelas tersebut mewarisi interface (definisi method-method) = interface inheritance, bukan

„ Cairan: dalam suatu jaringan pipa yang mengalirkan minyak, berapa kapasitas debit (volume yang mengalir per satuan waktu) minyak melalui jaringan tersebut. „ Lalu lintas: dalam

Ideally, we would like data structure operations to run in times proportional to the constant or logarithm function, and we would like our algorithms to run in linear or n-log-n time..

SDA/Max Flow/Sur/V1.0/25 v1 v2 v1 v2 v1 v2 Bipartite Graph, verteks terpartisi atas v1 dan v2 Bipartite Mathing, tidak maksimal cardinality 2 Maximal Bipartite Graph cardinality 3

SDA/TOPIC/V2.0/17 Sample Insert: 70 10 20 70 80 40 SDA/TOPIC/V2.0/18 Penyisipan Suatu Key K 2 „ Jika P sebelumnya node-3, sekarang P kelebihan muatan dengan tiga key: K1, K2, dan