• 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

denny@cs.ui.ac.id

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 - denny@cs.ui.ac.id

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

Mata kuliah ini membahas tentang psikologi sebagai ilmu yang meliputi pemahaman perilaku individu (organisme), mekanisme perilaku individu (organisme) menurut teori

Untuk itu, pada tahun 2018 ini Direktorat Jenderal Anak Usia Dini dan Pendidikan Masyarakat melalui Direktorat Pembinaan Kursus dan Pelatihan menyelenggarakan program

Sedangkan hasil pengujian hipotesis ANOVA untuk beban maksimum didapatkan bahwa F 1 = 4.89 > 4.75 maka H o ’ ditolak dan disimpulkan bahwa ada pengaruh yang signifikan

Penelitian ini menggunakan prinsip dasar etik yang menjadi landasan penelitian yaitu, menghormati orang (respect for person) yaitu peneliti tidak memaksa responden

Kode Kegiatan/ Output/ Sub Output/ Paket/ Sub Paket Vol Satuan Pemanfaat Tahun Atribut Kesiapan DED

• Lakukan gerak langkah arah mistar dan lakukan tolakan tegak lurus ke atas dengan posisi badan membelakangi mistar, lalu mendarat pada matras menggunakan punggung

Berdasarkan dari hasil penelitian yang sudah dilakukan oleh Thahjono dan Swastika, yang menyatakan bahwa mengkonsumsi kopi dapat menurunkan kadar glukosa darah

Menurut Manuaba (2008; h.389) disebutkan perdarahan terjadi karena gangguan hormon, gangguan kehamilan, gangguan KB, penyakit kandungan dan keganasan genetalia. 55)