• Tidak ada hasil yang ditemukan

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

N/A
N/A
Protected

Academic year: 2022

Membagikan "STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat"

Copied!
28
0
0

Teks penuh

(1)

STRUKTUR DATA

Pengajar

Jaidan Jauhari, M.T

.

Alamat Email

jaidan_j@ilkom.unsri.ac.id jaidan_j@yahoo.com

Disarikan Dari Berbagai Sumber, Terutama Dari Diktat Struktur Data Informatika ITB Karangan Dr. Inggriani Liem

(2)

SILABUS MATERI KULIAH

Pengantar Struktur Data

Review Record dan Array

Linked List dan Variasi List

Stack (Tumpukan)

Queue (Antrian)

Pohon Biner

MultiList

Graph

(3)

BUKU SUMBER

1. Inggriani Liem. 1997. Diktat Kuliah Algoritma dan Pemrograman Prosedural. Bandung : ITB

2. Inggriani Liem. 2003. Diktat Kuliah Struktur Data.

Bandung : ITB

3. Rinaldi Munir. 2003. Algoritma dan Pemrograman II.

Bandung : Penerbit Informatika

4. Bambang Wahyudi. 2004. Struktur Data dan Algoritma.

Yogyakarta : Andi Offset

5. Dwi Sanjaya. 2001. Bertualang dengan Struktur Data di Planet Pascal. Yogyakarta : JJ Learning

6. P. Insap Santoso.1997. Struktur Data dengan Turbo Pascal. Yogyakarta : Andi Offset

(4)

Komponen Penilaian

Tugas 20%

Ujian 1 20 % (Pertemuan ke-3)

Ujian 2 20% (Pertemuan ke-7)

Ujian 3 20% (Pertemuan ke-11)

Ujian Akhir Semester 20%

(5)

Aturan dan Sanksi-sanksi

Harus punya buku tulis tebal untuk catatan dan Hardcopy bahan kuliah struktutr data (akan diberikan dalam bentuk file)

Kehadiran minimal 80%, kurang dari 80%

tidak lulus (mendapat nilai E)

Keterlambatan maksimal 10 menit (Lebih dari 10 menit tidak diijinkan memasuki ruangan)

Pengumpulan Tugas yang melebihi waktu yang telah ditentukan akan diberikan nilai nol

Kecurangan dalam bentuk apapun akan mendapatkan nilai E

Mahasiswa berpakaian rapi dan sopan, yang ditunjukkan antara lain 1. Memakai sepatu tertutup

2. Memakai baju berkerah

3. Tidak memakai aksesoris yang tidak diijinkan

4. Tidak memakai pakaian yang kurang dasar atau lebih dasar 5. dan lain-lain

Selama perkuliahan berlangsung mahasiswa tidak diijinkan meninggalkan ruang kuliah kecuali sangat terpaksa dan itupun harus membuat surat ijin dan hanya boleh satu kali

(6)

PENGERTIAN STRUKTUR DATA

Struktur data adalah cara menyimpan atau

merepresentasikan data di dalam komputer agar bisa dipakai secara efisien

Sedangkan data adalah representasi dari fakta dunia nyata.

Fakta atau keterangan tentang kenyataan yang

disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau

(7)

Secara garis besar type data dapat dikategorikan menjadi :

1. Type data sederhana

a. Type data sederhana tunggal, misalnya Integer, real, boolean dan karakter

b. Type data sederhana majemuk, misalnya String

2. Struktur Data, meliputi

a. Struktur data sederhana, misalnya array dan record

(8)

b. Struktur data majemuk, yang terdiri dari

Linier : Stack, Queue, serta List dan Multilist

Non Linier : Pohon Biner dan Graph

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.

(9)

Struktur data yang ″standar″ yang biasanya digunakan dibidang informatika adalah :

List linier (Linked List) dan variasinya

Multilist

Stack (Tumpukan)

Queue (Antrian)

Tree ( Pohon )

Graph ( Graf )

Struktur data yang sudah dipelajari sebelumnya adalah struktur data statis, yaitu array. Dalam kuliah ini akan dipelajari struktur data dinamis.

(10)

REVIEW RECORD (REKAMAN)

Disusun oleh satu atau lebih field. Tiap field menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama rekaman ditentukan oleh pemrogram.

Rekaman disebut juga tipe terstruktur. Contoh :

1. type Titik : record <x : real, y : real>

jika P dideklarasikan sebagai Titik maka mengacu field pada P adalah P.x dan P.y.

(11)

2. Didefinisikan tipe terstruktur yang mewakili Jam yang dinyatakan sebagai jam (hh), menit (mm) dan detik (ss), maka cara menulis type Jam adalah :

type JAM : record

<hh : integer, {0…23}

mm : integer, {0…59}

ss : integer {0…59}

>

Jika J adalah peubah (variabel) bertipe Jam

maka cara mengacu tiap field adalah J.hh, J.mm dan J.ss

(12)

Terjemahan dalam bahasa C :

1. type Titik : record <x : real, y : real>

diterjemahkan menjadi : typedef struct { float x;

float y;

} Titik;

2. type JAM : record

<hh : integer, {0…23}

mm : integer, {0…59}

ss : integer {0…59}

>

Diterjemahkan menjadi : typedef struct

{ int hh; /*0…23*/

int mm; /*0…59*/

int ss; /*0…59*/

(13)

REVIEW ARRAY (LARIK)

1. Pendahuluan

Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama.

Setiap elemen diakses langsung melalui indeksnya.

Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter.

(14)

Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi.

Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur atau tipe larik lain.

Nama lain array adalah Larik, tabel atau vektor

(15)

Cara Pendefinisian Array 1. Sebagai Peubah

Contoh :

L : array[1..50] of integer

NamaMhs : array[‘a’..’j’] of string

2. Sebagai tipe baru

Contoh :

type LarikInt : array[1..100] of integer P : LarikInt

(16)

3. Mendefinisikan ukuran maksimum elemen larik sebagai konstanta

Contoh :

Const Nmaks = 100

type Larikint : array[1..Nmaks] of integer P : LarikInt

Cara menterjemahkan ke bahasa C :

#define Nmaks 100

typedef int Larikint[Nmaks+1];

Larikint P;

(17)

Cara Mengacu Elemen Larik

Elemen larik diacu melalui indeksnya.

Nilai indek harus terdefinisi.

Contoh cara mengacu elemen larik adalah : L[4] {mengacu elemen keempat dari larik L }

NamaMhs[‘b’] {mengacu elemen kedua dari larik NamaMhs}

P[k] {mengacu elemen ke-k dari larik P, asalkan nilai k sudah terdefinisi }

(18)

Menginisialisasi Larik

menginisialisasi elemen larik adalah memberikan harga awal untuk seluruh elemen larik, misalnya menginisialisasi dengan nilai 0 seperti di bawah ini :

Procedure InisDgn0(output A:larik, input N:integer)

{menginisialisasi setiap elemen larik A[1..N] dengan nol}

{K. Awal : N adalah banyak elemen efektif larik, nilainya terdefinisi}

{K. Akhir : seluruh elemen larik A bernilai nol}

Deklarasi : K : integer Deskripsi :

for k  1 to N do A[k]  0 endfor

(19)

Mengisi elemen larik dari piranti masukan

Elemen larik dapat diisi dengan nilai yang dibaca dari piranti masukan seperti contoh di bawah ini :

Procedure BacaLarik(output A:larik, input N:integer)

{mengisi elemen larik A[1..N] dengan nilai yang dibaca dari piranti masukan}

{K. Awal : N adalah jumlah elemen efektif larik, nilainya terdefinisi}

{K. Akhir : seluruh elemen larik A berisi nilai-nilai yang dibaca dari piranti masukan}

Deklarasi : K : integer Deskripsi :

for k  1 to N do read (A[k]) endfor

(20)

Larik Bertype Terstruktur

Larik tidak hanya dapat berisi data bertype tunggal, tapi dapat juga berisi data yang bertipe

terstruktur Contoh :

const Nmaks = 100

type Mahasiswa : record

<nim : integer,

nama_mhs : string, KodeMK : string, Nilai : char >

TabMhs : array[1..Nmaks] of Mahasiswa

(21)

Contoh Cara mengacu elemen TabMhs : 1. TabMhs[2].Nim

mengacu field Nim dari elemen kedua larik

2. Write(TabMhs[k].KodeMK)

menuliskan field KodeMK dari elemen

ke k dari larik

(22)

Tugas 1

Buatlah dalam notasi algoritma atau bahasa C :

1.Definisikan sebuah type terstruktur untuk menyatakan data nasabah disebuah bank. Data nasabah terdiri atas field Nomor Account, Nama Nasabah, Alamat Nasabah, Kota Nasabah, dan Nomor Telpon Nasabah.

Untuk setiap field definisikan type data yang cocok

(23)

2.Dari soal nomor 1 buatlah program dalam bahasa pemrograman berbasis bahasa C, untuk memasukkan data nasabah sebanyak N, dengan N diinputkan dari papan ketik, kemudian menuliskan kembali semua data nasabah dalam bentuk matrik/tabel.

Petunjuk :

Gunakan notasi pengulangan untuk menyelesaikan permasalahan tersebut Tugas dikumpulkan pada pertemuan berikutnya disertai listing program dan contoh keluarannya

(24)

ADT (Abstract Data Type)

ADT adalah definisi type dan sekumpulan primitif (operasi dasar) terhadap type

tersebut.

Type diterjemahkan menjadi type terdefinisi dalam bahasa pemrograman yang

bersangkutan, misalnya menjadi record dalam

Pascal/Ada dan Struct dalam bahasa C

(25)

Primitif dalam konteks pemrograman

prosedural, diterjemahkan menjadi fungsi dan prosedur.

Primitif dikelompokkan menjadi :

1. Konstruktor/Kreator , pembentuk nilai type. Biasanya namanya diawali dengan Make.

2. Selektor, untuk mengakses komponen type.

Biasanya namanya diawali dengan

Get.

(26)

3. Prosedur Pengubah nilai komponen 4. Validator komponen type, yang

dipakai untuk mengetes apakah dapat membentuk type sesuai batasan.

5. Destruktor/Dealokator , yaitu untuk

menghancurkan nilai objek, sekaligus memori penyimpannya

6. Baca/tulis, untuk interface dengan

input/output device

(27)

7. Operator Relasional terhadap type tersebut untuk mendefinisikan lebih besar, lebih kecil, sama dengan dan sebagainya.

8. Aritmatika terhadap type tersebut,

dalam pemrograman biasanya hanya terdefinisi untuk bilangan numerik.

9. Konversi dari type tersebut ke type

dasar dan sebaliknya

(28)

ADT biasanya diimplementasi menjadi dua buah modul, yaitu :

1. Definisi/spesifikasi type dan primitif - Spesifikasi type sesuai dengan

bahasa yang dipakai

- Spesifikasi dari primitif sesuai dengan kaidah dalam konteks prosedural, yaitu :

a. Fungsi : nama, domain, range, dan pre kondisi jika ada

b. Prosedur : Keadaan Awal, Keadaan Akhir dan proses yang dilakukan

2. Body/realisasi dari primitif, berupa kode program dalam bahasa yang bersangkutan. Realisasi fungsi dan prosedur harus sedapat mungkin memanfaatkan Selektor dan

Konstruktor

Referensi

Dokumen terkait

Komponen utama pada bagian ini adalah aksial flow compressor  , berfungsi untuk mengkompresikan udara yang berasal dari inlet air section  hingga  bertekanan tinggi sehingga

Pada bab III diuraikan penurunan dinamika model dari sensor pressurizer sebagai bagian komponen pada reaktor air tekan_ Perancangan Simulasi Monte Carlo untuk deteksi kegagalan

Surat Pemberitahuan Retribusi Daerah yang selanjutnya dapat disingkat SPTRD adalah surat yang digunakan oleh Wajib Retribusi untuk melaporkan objek retribusi dan wajib

Mengawali karir dengan bergabung di Bank Ekspor Impor Indonesia / Bank Exim pada tahun 1969 sebagai pegawai pimpinan dan menjabat kepala cabang di beberapa daerah di

Evaluasi adalah proses untuk melihat apakah sistem pembelajaran yang sedang dibangun berhasil, sesuai dengan harapan awal atau tidak. Sebenarnya tahap evaluasi

In modern engineering practice it is usually possible to develop mathematical models that will allow engineers to understand the operational charac- teristics of a design

Tantangan penyelenggaraan pendidikan Islam ini dihadapkan dengan realitas perkembangan masyarakat dan bangsa yang sedang diuji pandemi Covid-19, sementara itu tuntutan tetap

Berdasarkan pengujian hipotesis pertama menunjukkan bahwa, Ada perbedaan pengaruh yang signifikan pendekatan bermain dan drill terhadap kemampuan dribbling bola dalam