Struktur Data


TI1103 – Struktur Data
Antonius Rachmat C, S.Kom
Widi Hapsari, MT
Kontrak Perkuliahan
Bobot: 3 SKS
Email: anton@ukdw.ac.id & widi@ukdw.ac.id
Website : http://lecturer.ukdw.ac.id/anton
Jadwal Kuliah Kelas:
Kamis 07.30 – 10.00 A
Kamis 10.30 – 13.00 B
Jumat 07.30 – 10.00 C
Jumat 10.30 – 13.00 D
Ruang B.3.3
Jadwal Praktikum
Senin 07.30 – 10.20 Prak A
Selasa 10.30 – 13.20 Prak B
Rabu 07.30 – 10.20 Prakt C
Kamis 07.30 – 10.20 Prak D
Jumat 10.30 – 13.20 Prakt E

Lab : A
Koordinator: Yuan Lukito, S.Kom
Deskripsi Matakuliah
Matakuliah ini mengajarkan sistem pengorganisasian data pada memori komputer maupun file (berkas) pada suatu media penyimpanan dengan menggunakan struktur data array, struct, tree, dan file menggunakan teknik-teknik seperti stack, queue, dan linked list serta hashing.
Matakuliah ini juga mengajarkan teknik-teknik manipulasi data seperti tambah, hapus, edit, pencarian dan pengurutan, yang dilakukan dengan menggunakan bahasa pemrograman generasi ketiga (Bahasa C).
Tujuan Matakuliah
Mahasiswa diharapkan mampu:
Memahami sistem pengorganisasian data pada memori komputer dan file (berkas) pada media penyimpanan.
Mengimplementasikannya dalam program dengan menggunakan salah satu bahasa pemrograman generasi ke-3 (Bahasa C) untuk membuat berbagai macam struktur data (array, tree, struct) dengan teknik-teknik tertentu (linked list, stack, dan queue) serta manipulasinya (sorting dan searching) secara baik, efisien, dan cepat.
Silabus
Perkenalan
Perkenalan dan silabus
Aturan praktikum
Refresh Bahasa C
Pengantar Struktur Data, Abstract Data Type (ADT) dan Struct
Pengantar Struktur Data
Pengertian dan cara pembuatan ADT
Pengertian dan pendeklarasian Struct
Struct: add,del,edit & array of struct
Contoh-contoh program
Searching Array
Refresh array
Pengertian searching
Algoritma-algoritma searching : sequential search, binary search
Array slice / explode
Silabus
Sorting Array
Algoritma-algoritma sorting : bubble sort, selection sort, insertion sort, dan quick sort
Stack dan Queue dengan Array
Pengertian stack, cara pembuatan stack, dan operasi-operasinya pada array
Pengertian queue, cara pembuatan queue, dan operasi-operasinya pada array
Silabus
Pointer dan Function
Konsep, operator, dan deklarasi
Pointer pada array
Function by value & reference
Single Linked List Non Circular
Single Linked List Non Circular
Insert, update, dan delete
Single Linked List Circular
Insert, update, dan delete
Double Linked List Non Circular
Insert, update, dan delete
Double Linked List Circular
Insert, update, dan delete
Silabus
Function Recursif dan Graf
Konsep rekursif implementasi Graf serta contoh
Tree
Konsep dan pembuatan
Kunjungan Tree: pre-order, in-order, dan post-order, level-order
Berbagai macam operasi tree
Daftar Pustaka
Moh. Sjukani, Algoritma dan Struktur Data dengan C, C++, dan Java, Mitra Wacana Media, 2005
Dwi Sanjaya, Asyiknya Belajar Struktur Data di Planet C++, PT. Elex Media Komputindo, Jakarta, 2005
Jogianto H.M, Konsep Dasar Pemrograman Bahasa C, Penerbit Andi, 2000
Antonie Pranata, Algoritma dan Pemrograman, J&J Learning Yogyakarta, 2000
Simon Harris and James Ross, Beginning Algorithms, Wiley Publishing Inc., 2006
Dwi Sanjaya, Bertualang dengan Struktur Data di Planet Pascal, J&J Learning Yogyakarta, 2001
Peter Drake, Data Structures and Algorithms in Java, Prentice Hall, 2005
Bambang Hariyanto, Ir, M.T, Struktur Data Memuat Dasar Pengembangan Berorientasi Obyek, Penerbit Informatika Bandung, 2003
Teddy Marcus Zakaria dan Agus Prijono, Konsep dan Implementasi Struktur Data, Penerbit Informatika, Bandung, 2006
Penilaian
85.0 – 100 A 4.0
80.0 – 84.9 A- 3.7
75.0 – 79.9 B+ 3.3
70.0 – 74.9 B 3.0
65.0 – 69.9 B- 2.7
60.0 – 64.9 C+ 2.3
55.0 – 59.9 C 2.0
40.0 – 54.9 D 1.0
0 – 39.9 E 0.0
— F 0.0
Distribusi Nilai
TTS : 25
TAS : 25
Tes Kecil : 10
Praktikum : 40
Jumlah : 100
Aturan Praktikum
Datang dan mengilkuti praktikum dengan tertib dan teratur
Bila ada halangan hubungi asisten yang bersangkutan
Penilaian dari praktikum adalah 30%, yang akan dibagi dalam tes-tes kecil / tugas selama praktikum.
Aturan Lain
Tidak ada ujian susulan
Presensi minimal 75%
Menggunakan pakaian yang sopan dan rapi.
Refresh C++
Bahasa C dibuat pada tahun 1978 untuk Sistem Operasi Unix oleh Bell Labs (Ken Thompson dan Dennis M. Ritchie).
Buku The C Programming Language
Bahasa C merupakan salah satu bahasa pemrograman yang paling sering dipakai oleh pemrogram di seluruh dunia, terutama karena bahasa C memperbolehkan pengakses memori secara manual. (dengan POINTER)
Bahasa C menjadi dasar bahasa C++.
Bahasa C seringkali dipakai untuk membuat bahasa-bahasa pemrograman yang lain.
Distandarisasi ANSI tahun 1989
Identifier & Tipe Data C
Identifier adalah pengingat tempat penyimpanan data di dalam memori komputer.
Variabel : bisa diubah
Konstanta : bersifat tetap
Some programmer jargon
Beberapa istilah:
Source code: kode program yang ditulis programmer.
Compile (build): pengubahan source code ke dalam object code (bisa bahasa mesin / assembly)
Executable: program dalam bahasa mesin yang siap dieksekusi.
Language: bahasa pemrograman.
Library: fungsi-fungsi yang digunakan pada pembuatan program.
Preprocessor Directive
Dimulai dengan tanda #
Header file: file yang berekstensi .h yang disertakan pada pembuatan program.

Structure of C
More about Hello World

Keywords of C
Flow control (6) – if, else, return, switch, case, default
Loops (5) – for, do, while, break, continue
Common types (5) – int, float, double, char, void
Structures (2) – struct, typedef
Sizing things (1) – sizeof
Rare but still useful types (7) – extern, signed, unsigned, long, short, static, const
Evil keywords which we avoid (1) – goto
Variable
Kita harus mendeklarasikan tipe data setiap variabel pada C.
Setiap varibel punya tipe data dan namanya.
Variabel adalah unik, tidak boleh berupa keyword, dimulai dengan huruf atau underline, maks 32 karakter

Pendeklarasian Variabel & Konstanta

Escape Characters
The char type
char disimpan dalam kode ascii (integer)
Print char dengan %c
char menggunakan single quote
A short note about ++
++i means increment i then use it
i++ means use i then increment it
Casting
Memaksa suatu tipe data
Tipe data yang serupa
float -> int
Int -> float
Lihat contoh!
Formatting Command Summary
Control Structure 1
IF / IF … ELSE

if ( true ) {
DoFirstThing();
DoSecondThing();
};

if ( true )
DoSomething();
else
DoSomethingElse();

SWITCH

switch ( key ) {
case ‘a’:
case ‘A’:
DoFirstThing();
DoSecondThing();
break;
case ‘b’:
DoSomething();
break;
default:
break;
};
Control Structure 2
FOR

int i, j;
for (i=0; i0; j–) {
// i counts up
// j counts down
printf(“%i %j\n”, i, j);
};

The “++” / ”–” is shortcut used to increment / decrement value of int variables
WHILE

int i = 0;
int StayInLoop = 1;
while ( StayInLoop ) {
i+=2;
// Make sure you have
// exit condition!
if ( i > 200 )
StayInLoop = 0;
};

“+=“ increments by n

What is a function?
The function is one of the most basic things to understand in C programming.
A function is a sub-unit of a program which performs a specific task.
We have already (without knowing it) seen one function from the C library – printf.
We need to learn to write our own functions.
Functions take arguments (variables) and may return an argument.
Formal parameter
Actual parameter
Type of function
Void : tidak mengembalikan nilai
Non-void : mengembalikan nilai
An example function
The main Function
function main() dibutuhkan agar program C dapat dieksekusi!
Tanpa function main, program C dapat dicompile tapi tidak dapat dieksekusi (harus dengan flag parameter –c, jika di UNIX)
Pada saat program C dijalankan, maka compiler C pertama kali akan mencari function main() dan melaksanakan instruksi-instruksi yang ada di sana.
int main()
Berarti di dalam function main tersebut harus terdapat keyword return di bagian akhir fungsi dan mengembalikan nilai bertipe data int,
Mengapa hasil return harus bertipe int juga? karena tipe data yang mendahului fungsi main() diatas dideklarasikan int
Tujuan nilai kembalian berupa integer adalah untuk mengetahui status eksekusi program.
jika “terminated successfully” (EXIT_SUCCESS) maka, akan dikembalikan status 0,
sedangkan jika “terminated unsuccessfully” (EXIT_FAILURE) akan dikembalikan nilai status tidak 0, biasanya bernilai 1
Biasanya dipakai di lingkungan UNIX
What is scope variable?
The scope of a variable is where it can be used in a program
Normally variables are local in scope – this means they can only be used in the function where they are declared (main is a function)
We can also declare global variables.
If we declare a variable outside a function it can be used in any function beneath where it is declared
Global variables are A BAD THING

Why Global is Bad?
The print stars example
Other techniques for debugging
Check missing brackets and commas.
Check that you have a semicolon at the end of every line which needs one.
Put in some printf
if you know what your program is DOING you will know what it is DOING WRONG.
Try to explain to someone else what the program is meant to do.
Take a break, get a cup of coffee and come back to it fresh.
Debugging is FRUSTRATING
NEXT
Pengantar Struktur Data & Abstract Data Type

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s