Anda di halaman 1dari 27

PENGENALAN STRUKTUR DATA

Teori dan praktikum Minggu ke-1


PENGENALAN STRUKTUR DATA

 Data adalah kumpulan angka, simbol, dan abjad yang berbeda untuk
menggambarkan informasi.
 Struktur Data adalah kumpulan dari elemen-elemen data yang menyediakan cara
termudah untuk menyimpan dan melakukan tindakan yang berbeda dari data pada
komputer.
 Struktur data adalah cara tertentu untuk mengelola data pada komputer sehingga
dapat digunakan secara efektif.
 Struktur data dapat dikatakan sebagai bagian dari ilmu pemrograman dasar di
mana bertujuan untuk membuat sebuah struktur penyimpanan data yang
digunakan saat program dijalankan.
 Struktur Data bersama-sama dengan Algoritma akan membentuk sebuah Program
HUBUNGAN STRUKTUR DATA DAN
ALGORITMA
 Dengan pemilihan struktur data yang baik, maka problem yang kompleks dapat
diselesaikan sehingga algoritma dapat digunakan secara efisien, operasi -operasi
penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih
kecil, dan waktu eksekusi yang lebih cepat .
 Pemakaian struktur data yang tepat di dalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan
program secara keseluruhan lebih efisien dan sederhana
PROGRAM =
ALGORITMA + STRUKTUR
DATA
KATEGORI DATA

Data dapat dikategorikan menjadi :


A. Data Sederhana :
1. Data sederhana tunggal : integer, real/float,Boolean dan character
2. Data sederhana majemuk : string
B. Struktur Data :
1. Struktur Data Sederhana : Array dan Record
2. Struktur Data Majemuk :
a. Linier : Stack, Queue, List
b. Non Linier : Binary Tree, Graph
KONSEP DASAR STRUKTUR DATA

 Definisi data mendefinisikan suatu data tertentu dengan ciri-ciri :


 Atomic : Definisi harus mendefinisikan konsep tunggal
 Traceable : Definisi harus dapat dipetakan ke beberapa elemen data
 Akurat : Definisi harus jelas
 Jelas dan ringkas : Definisi harus dapat dimengerti
 Objek data merupakan kumpulan elemen untuk suatu tipe data
 Tipe data adalah cara untuk mengklasifikasikan berbagai jenis data seperti
integer, real, string yang menentukan nilai yang dapat digunakan dengan jenis
data yang sesuai, jenis operasi yang dapat dilakukan pada jenis data yang sesuai
TIPE DATA

 Built-In Data Type (Tipe Data Bawaan) : Tipe Data yang sudah ditentukan/dibawa
oleh sebuah bahasa pemrograman (integer, Boolean(true/false), float, character
dan string.
 Derived Data Type (Tipe Data Turunan) : Tipe Data yang implementasinya
independen karena dapat diimplementasikan dengan banyak cara. Tipe data ini
terdiri dari tipe data bawaan dan operasi yang terkait tipe data tersebut. Contoh
tipe data ini adalah record, struct dan class.
TIPE DATA DAN OBJEK DATA

 Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa
pemrograman pada komputer.
 Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan:
 Deklarasi terhadap variabel tipe data tersebut
 Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data
tersebut
 Jenis objek data yang mungkin
 Objek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data
tertentu. Contoh: integer mengacu pada objek data -32768 s/d 32767, byte 0 s/d
255, string adalah kumpulan karakter maksimal 255 huruf.
PENGENALAN STRUKTUR DATA

 Algoritma adalah langkah-langkah logis penyelesaian masalah yang disusun


secara sistematis. Algoritma berkaitan dengan langkah-langkah pemecahan
masalah, sedangkan struktur data berkaitan dengan pengorganisasian data yang
akan digunakan dalam pemrosesan.
 Terdapat dua jenis Struktur Data, yaitu
Struktur Data Statis dimana struktur dari data tidak akan berubah selama
proses pada saat program dijalankan. Contohnya Larik (Array), Structure.
Struktur Data Dinamis dimana struktur dari data akan berubah selama proses
pada saat program dijalankan. Contohnya Senarai (List), Antrian (Queue),
Tumpukan (Stack), Pohon (Tree), dan Graf (Graph).
PENGENALAN STRUKTUR DATA

 Struktur Data dapat dibagi menjadi 2 tipe, yaitu


Struktur Data Linear dimana elemen-elemen data disusun dalam satu dimensi,
dikenal juga sebagai dimensi linear. Contohnya adalah Larik (Array), Tumpukan
(Stack), Antrian (Queue), Senarai (List)dan sebagainya.
Struktur Data Non-Linear dimana elemen-elemen data disusun dalam dimensi
satu ke banyak (one to many), banyak ke satu (many to one), dan banyak ke
banyak (many to many). Contohnya adalah Pohon (Tree), Graf (Graph.
SEKILAS TENTANG STRUKTUR DATA

 Struktur data adalah sebuah bagian dari ilmu pemrograman dasar


dimana bertujuan untuk membuat sebuah struktur penyimpanan data
yang digunakan saat program berjalan.
 Struktur data berbeda dengan basis data. Basis data merupakan ilmu
untuk mengakses dan memelihara data yang disimpan di dalam
penyimpanan (storage) seperti harddisk dan diakses dari sebuah
antarmuka aplikasi spt DBMS (Database Management System).
 Struktur data berada pada level pemrograman digunakan untuk
tempat menyimpanan data yang digunakan oleh program terkait
dengan alokasinya untuk menyimpan data yang sedang digunakan
oleh program
SEKILAS TENTANG STRUKTUR DATA

 Struktur data berada pada level pemrograman digunakan untuk


tempat menyimpanan data yang digunakan oleh program terkait
dengan alokasinya untuk menyimpan data yang sedang digunakan
oleh program
 Struktur data bertujuan agar cara merepresentasikan data dalam
membuat program dapat dilakukan secara efisien dalam pengolahan
di memori dan pengolahan penyimpanan dari program ke storage
juga lebih mudah dilakukan.
SEKILAS TENTANG STRUKTUR DATA

 Struktur data sebenarnya juga meliputi larik (array) dan record pada berkas
beruntun (sequential file) yang dipelajari dalam algoritma dan pemrograman
sebenarnya juga merupakan bagian dari struktur data untuk penyimpanan data di
memori sebagai larik atau di dalam file sebagai record.
 Penyimpanan record di dalam file adalah cikal bakal adanya aplikasi basis data,
karena sebenarnya aplikasi basis data berbasis pada konsep penyimpanan record di
dalam file.
 Pembuatan struktur data dimulai dari analisis perancangan data apa yg harus
dimanipulasi di memori agar program yang dibuat lebih efisien. Langkah kedua
adalah mengimplementasikan struktur data dalam bahasa pemrograman, dan
selanjutnya menggunakan struktur data yang sudah dibuat untuk memanipulasi
data di memori dalam sebuah program.
SEKILAS TENTANG STRUKTUR DATA

 Struktur dapat diartikan sebagai suatu susunan, bentuk, pola, atau


bangunan. Data di komputer adalah segala sesuatu yang bisa dikodekan
atau disimbolkan atau dilambangkan dengan kode-kode, simbol-simbol,
atau lambang-lambang yang telah disediakan di setiap komputer.
 Jika kata “struktur” dan “data” disatukan akan bermakna “ suatu susunan
simbol-simbol yang diorganisasikan dan dioperasikan sesuai dengan
definisi yang diberikan terhadapnya di komputer”.
 Mata kuliah struktur data mempelajari bagaimana data disusun dimemori
utama komputer agar penggunaan space di memori dapat dilakukan secara
optimal, cepat dalam pencarian dan pengambilannya kembali (retrieving),
dan dapat diolah sesuai dengan kebutuhan.
ATRIBUT, VARIABEL MEMORI, DAN NILAI DATA

 Setiap data yang dimasukkan ke komputer (nilai data) harus memiliki tempat
penampung secara fisik dan logika.
 Secara fisik cth. Disket, hard disk (memori eksternal) dsb, termasuk memori
utama (memori internal). Sedangkan secara logika adalah variabel memori
(disebut variabel), dan atribut (disebut field).
 Variabel adalah Penampung nilai data yang bersifat sementara yang disimpan
dimemori.
 Cth. Var a : integer;
a = 25
maka a adalah variabel, dan 25 adalah nilai data.
AKTIVITAS STRUKTUR DATA

 Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada.
 Menunjukkan mekanisme kerja operasi-operasinya .
 Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -,
*, /, mod.
 Struktur data = obyek data + operasi manipulasi data
ARRAY/LARIK

 Adalah struktur data yang diproses melalui indeksnya. Ada yang terdiri dari
satu dimensi (array linier), dua dimensi (matriks) dan multidimensi.
Contoh Array A satu dimensi : 8 indeks (1 s/d 8) dan data 1,7,18 dst
A: array[1..8] of integer;
1 7 18 03 69 24 08 70

1 2 3 4 5 6 7 8
 Kelebihan : penambahan data dibelakang mudah dilakukan
 Kekurangan : ukuran tetap, penghapusan lambat, pencarian lama
ARRAY/LARIK

A r ra y B d u a d i m e n s i ( m a tr ik s ) :
- j u m l a h b a ri s 2 , k o l o m 3
- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .

1 2 3

1 18 03 69

2 24 08 70
TUMPUKAN/STACK

• Struktur ini diproses (penambahan dan penghapusan data) hanya


pada satu ujung yaitu pada posisi TOP-nya.
• Struktur data ini menggunakan sistem LIFO (Last In First Out)).

• Kelebihan : penambahan dilaksanakan dengan cepat, akses


69
terhadap data yang terakhir kali dimasukkan dapat dilakukan TOP
dengan cepat 03
• Kekurangan : pencarian dan penghapusan lambat
18
LINKED LIST / LIST BERKAIT/SENARAI

 Adalah struktur data yang diproses melalui alamat kepala (awal). Info adalah tempat
untuk datanya, next untuk menyimpan alamat berikutnya.
 Bersifat dinamis dimana ukurannya boleh berubah (bertambah) pada saat eksekusi
program
 Kelebihan : penyisipan dan penghapusan data mudah
 Kekurangan : pencarian lama

Awal Info Next

s A B C
QUEUES/ANTRIAN/GILIRAN

 Struktur data ini diproses dari dua ujung, penambahan pada posisi belakang
sedangkan penghapusan data pada posisi depan.
 Struktur data ini menggunakan sistem FIFO (First In First Out).
 Contoh : antrian pembeli karcis diloket.
 Kelebihan : data yang pertama kali masuk mudah diakses.
 Kekurangan : akses terhadap data yang lain lambat.
BINARY TREES/POHON BINER

• Pohon adalah struktur data yang diproses


melalui alamat akarnya (root). A

• Struktur ini merupakan struktur dinamis


dimana ukurannya boleh berubah. Datanya
mempunyai hirarki diantara elemennya. B C D

• Kelebihan : pencarian dan penyisipan mudah


• Kekurangan : penghapusan kompleks
E F
MANFAAT STRUKTUR DATA

 Mengenal bentuk konfigurasi penyimpanan data dan


pengoperasiannya.
 Menentukan kualitas informasi : akurat, tepat pada
waktunya dan relevan.
 Mengurangi duplikasi data (data redudancy)
 Hubungan data dapat ditingkatkan (data relatability)
 Mengurangi pemborosan tempat penyimpanan data
REKURSI

 Rekursi :
 Konsep pengulangan diluar pendekatan iteratif.
 Suatu proses yang memanggil dirinya sendiri, proses dapat berupa fungsi atau
prosedur.
 Base Case adalah solusi dimana proses rekursi akan berhenti.
 Recursif Case adalah kasus dimana solusi di hasilkan dengan cara memanggil
“versi kecil” dari dirinya sendiri.
REKURSI

 Contoh: Fungsi matematik faktorial-n,


 n! = n * (n-1) * (n-2)* …* 2 * 1
 n! = n * (n-1)!
 Dimana:
 n>0
 0! = 1
 4! = 4 * 3 * 2 * 1 = 24
 Fungsi tersebut menunjukkan sifat rekursi berupa pemanggilan terhadap fungsi
faktorial-n berulang kali.
REKURSI

 Proses Rekursi setidaknya memiliki parameter yang menentukan proses rekursi


lanjut atau berakhir (parameter sentinel).
 Proses Rekursi mengarahkan parameter sentinel agar melalui parameter tersebut
rekursi dapat berakhir.
int factorial (int n) {
if (n > 0) {
return n * factorial(n - 1); // <-- recursif case
} else {
return 0; // <-- base case
}
TUGAS PRAKTIKUM

 Buatlah program rekursi dengan tampilan berikut.


 Program 101
Program 102

 Program 103 Program 104

Anda mungkin juga menyukai