• Tidak ada hasil yang ditemukan

Struktur Data dan Algoritma

N/A
N/A
Protected

Academic year: 2023

Membagikan "Struktur Data dan Algoritma"

Copied!
13
0
0

Teks penuh

(1)

Struktur Data dan Algoritma

Suryana Setiawan, Ruli Manurung & Ade Azurat

(acknowledgments: Denny)‏

Fasilkom UI

Pengantar

(2)

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.

Meningkatkan ketrampilan pemrograman

Skala lebih besar, lebih efisien dan elegan.

“Programming to an interface”

Prinsip-prinsip dasar RPL: abstraksi, modularitas, dst.

(3)

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

(4)

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

(5)

Struktur Data

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

(6)

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]++;

Mengapa kuliah ini penting?

Apakah program kedua benar?

(7)

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

(8)

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

Mengapa Belajar Implementasi Struktur Data?

(9)

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

(10)

Materi Ajar

Homepage & resources:

https://scele.cs.ui.ac.id/s1

http://aren.cs.ui.ac.id/sda

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

(11)

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.

(12)

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.

(13)

Summary

Struktur data + Algoritma = Program

Pemilihan struktur data dan algoritma yang tepat dapat

membuat program lebih efisien,

mudah, dan elegan

Referensi

Dokumen terkait

[r]

Hasil : Hasil penelitian menunjukan semua responden mengetahui tentang RUU PKS yaitu 45 100% mahasiswa/i sedangkan tingkat pengetahuan Baik, dimana pada kategori tersebut terdapat