Modul Struktur Data

29
Struktur Data (2) Oleh Rini Tisnawati

description

Pengenalan dasar struktur data

Transcript of Modul Struktur Data

Page 1: Modul Struktur Data

Struktur Data (2)

Oleh Rini Tisnawati

Page 2: Modul Struktur Data

Objektif•Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman•Mengetahui operasi yang terkait dengan struktur data dan metode pemrograman paling umum yang terkait dengan struktur tersebut.•Mengetahui metode dan notasi yang digunakan untuk menspesifikasi apa-apa yang perlu dikerjakan oleh program dan bagaimana program ini melakukan pekerjaan tersebut.

Page 3: Modul Struktur Data

Jenis/Tipe Data (Data Type)Terdiri dari1. Set nilai data2. Set operasi yang bisa diterapkan pada nilai

tersebut

Klasifikasi Jenis Dataa) Simple Data Type (Jenis Data Sederhana)

a) Item data individual

b) Data Structures / data aggregates (struktur data)a) Kombinasi dari item data individualb) Membentuk item data lain

Page 4: Modul Struktur Data

Jenis Data Sederhana• Numerik, terdiri dari :– Numerik integer (bilangan bulat)– Numerik real (bilangan riil)

• Karakter, terdiri dari :– Alfabet : a .. z, A .. Z– Angka : 0 .. 9– Simbol khusus : + ? ‘ ! [ ] { } … dll

• Boolean (logika), terdiri dari :– True– False

Page 5: Modul Struktur Data

Identifier• Dalam bahasa pemrograman, item data

diidentifikasi menurut namanya, bukan menurut alamat lokasinya dalam memori

• Identifier akan merupakan konstanta jika ia selalu dikaitkan dengan nilai data yang sama

• Identifier akan merupakan variabel jika nilai datanya yang terkait bisa berubah

• Literal, nilai data yang tertera dalam program namun bukan sebagai identifier

Page 6: Modul Struktur Data

Deklarasi Data• Jenis data konstanta dan variabel harus

didefinisikan dalam program sehingga :– operasi yang tepat dapat dijalankan pada nilai data

dan– Jumlah ruang penyimpanan yang tepat bisa ditentukan

• Statement untuk mendefinisikan jenis data disebut declarative statement

• Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda

• Beberapa contoh program (pendeklarasian data) yang akan diberikan ditulis dalam pseudo-code

Page 7: Modul Struktur Data

Contoh:Constants

pi = 3.141592654Variables

i, qty : integerharga_satuan, harga_beli : realstatus : booleannama :

character(25)

Page 8: Modul Struktur Data

Struktur Data

• Kelompok item data yang terorganisasi yang dianggap sebagai suatu unit

• Disebut juga sebagai jenis data kompleks (complex data type) atau data aggregates

• Beberapa struktur data :– Array (larik)– String– Record– List (daftar)– Tree

Page 9: Modul Struktur Data

Array (Larik)• Set item data yang disusun secara baik menjadi

rangkaian dan diacu atau ditunjuk oleh satu identifierContoh : Nilai = (56 42 89 65 48)

• Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu– Nilai(1) menunjuk 56– Nilai(2) menunjuk 42

• Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)

Page 10: Modul Struktur Data

Array (Larik) lanjut• Variabel bisa digunakan sebagai subscript, misalnya

Nilai(i).– Jika i = 2 maka menunjuk ke Nilai(2) yaitu 42– Jika i = 4 maka menunjuk ke Nilai(4) yaitu 65

• Item data individual dalam suatu array sering disebut elemen

• Matriks– Array yang hanya berisi bilangan dan tidak ada data

alfabetisnya• Klasifikasi Array– Array 1 dimensi– Array multi dimensi

Page 11: Modul Struktur Data

Array Multi Dimensi• Mempunyai elemen-elemen yang disusun ke dalam

baris dan kolom dan digunakan sebagai tabel data• Contoh : Nilai ujian dari mahasiswa satu kelas untuk

beberapa mata kuliah bisa ditempatkan dalam array 2 dimensi

Siswa ke(no. baris)

B. Inggris(kolom 1)

Matematika(kolom 2)

12345

A(1,1) = 56A(2,1) = 42A(3,1) = 89A(4,1) = 65A(5,1) = 48

A(1,2) = 44A(2,2) = 36A(3,2) = 73A(4,2) = 86A(5,2) = 51

Page 12: Modul Struktur Data

Deklarasi Array• Array 1 dimensi– Variables

Nilai : array [1..5] of integerA : array [1..4] of real

• Array 2 dimensi– Variables

A : array [1..5, 1..2] of integer

Page 13: Modul Struktur Data

Penanganan Array

• Metode dasar penanganan array :– Mencari nilai terbesar– Mencari nilai terkecil– Menghitung nilai rata-rata– Menghitung jumlah nilai di bawah rata-rata

• Menyortir Array (Sort)– Buble sort– Straight selection sort

• Mencari/Meneliti Array (Search)– Linear search

Page 14: Modul Struktur Data

Penanganan Array (Lanjut)

• Contoh : Nilai ujian mahasiswa akan dibaca dalam array. Kemudian akan ditampilkan nilai terbesar, nilai terkecil, nilai rata-rata, nilai total, dan jumlah nilai di bawah rata-rata.

• Tahapan penanganan array– Input nilai data ke dalam array– Mengkalkulasi nilai terbesar, terkecil, total, dan rata-

rata– Mengkalkulasi jumlah nilai di bawah rata-rata– Menampilkan hasilnya (output)

Page 15: Modul Struktur Data

String• Rangkaian karakter yang ditangani sebagai

unit data tunggalContoh (string literal) :

“ABC, 32fl2. 3h”“Kucing dalam karung”

Contoh (variabel string) :A = “Universitas”B = “Gunadarma”

• Berada dalam bentuk array karakter 1 dimensi

Page 16: Modul Struktur Data

String (lanjut)

• Fixed-length string (String yang panjangnya tetap)– Mempunyai jumlah tempat karakter yang tetap

yang tersedia (bisa digunakan) untuk penyimpanan data

• Variable-length string (String yang panjangnya berubah-ubah)– Memberi data sejumlah spasi (ruang) sesuai yang

ia perlukan

Page 17: Modul Struktur Data

Deklarasi String

• Fixed-length stringVariables

nama : string[5]

• Variable-length stringVariables

nama : string

Page 18: Modul Struktur Data

Operasi pada String

• Concatenation– Penggabungan dua atau lebih string– Contoh :

A = “Universitas”B = “Gunadarma”C = A + B

makaC = “UniversitasGunadarma”

Page 19: Modul Struktur Data

Operasi pada String [2]• Substring– Mengambil bagian dari suatu string

Contoh A = “Universitas”B = “Gunadarma”C = Left(A, 3)D = Right(B, 5)E = Substr(A, 4, 5)maka

C = “Uni”D = “darma”E = “versi”

Page 20: Modul Struktur Data

Teknik Pencarian ( Searching)

• Teknik Pencarian ( Searching ) pada array adalah mencari suatu nilai yang diinginkan pada tabel array.

• Pencarian di tabel array diklasifikasikan menjadi :– Pencarian sekuensial ( sequential search ).– Pencarian biner ( binary search).– Pencarian sekuensial tidak mensyaratkan tabel terurut.

• Pencarian biner mensyaratkan tabel terurut. Saat array tidak terurut, satu-satunya pencarian yang mungkin dilakukan adalah secara sekuensial.

Page 21: Modul Struktur Data

Deskripsi : Pencarian sekuensial• Diketahui TI bertipe TabInt, telah diisi. Tulis procedure yang

jika diberikan X bernilai integer akan mencari apakah harga X terdapat di TI. Pencarian dilakukan secara berurutan mulai elemen pertama sampai ketemu atau sampai elemen terakhir. Program menghasilkan indeks IX dimana X diketemukan pertama kali. IX diberi harga 0 jika tidak ketemu. Pencarian segera dihentikan begitu harga pertama diketemukan.

• Pendeklarasian array :Const

Idxawal = 1;Idxakhir = 100;

TypeTypeInfo = integer;TabInt = Array [Idxawal..Idxakhir] of TipeInfo;

Var<identifier_variabel> : TabInfo;

Page 22: Modul Struktur Data

Aturan pembuatan program :Procedure InputTabInt (Var TI : TabInt); Procedure SeqSearch (TI : TabInt; X : Integer; Var IX : Integer); Procedure OutputIX (IX: Integer);

Algoritma Procedure SeqSearch (TI : TabInt; X : Integer; Var IX : Integer);i IdxawalfoundFalseWhile i <= Idxakhir . and . not found do

If TI[i] = X thenFound true

Elsei i + 1

EndifEndWhileIf found then

IX iElse

IX 0Endif

Page 23: Modul Struktur Data

Pencarian Biner• Deskripsi :

Diketahui TI bertipe TabInt, telah diisi dan isinya terurut menaik. Tulis prosedur yang jika diberikan X bernilai integer akan mencari apakah harga X ada di TI. Pemeriksaan dilakukan dengan mereduksi elemen tabel array, menjadi separuh jumlah elemen tabel semula, yaitu :– Bandingkan harga yang dicari dengan harga elemen tengah.– Jika sama, berarti ketemu.– Jika yang dicari lebih kecil, berarti pencarian dengan cara yang sama harus

dilakukan terhadap elemen-elemen di belahan atas.– Jika harga yang dicari lebih besar, berarti pencarian dengan cara yang sama

harus dilakukan terhadap elemen-elemen di belahan bawah.

• Prosedur menghasilkan harga indeks IX dimana X diketemukan pertama kali. IX diberi harga 0 jika pencarian tidak ketemu. Pencarian segera dihentikan begitu diketemukan.

Page 24: Modul Struktur Data

Algoritma Procedure BinSearch (TI : TabInt; X : Integer ; Var IX : Integer);

Atas IdxawalBawah IdxakhirTengah ( Atas + Bawah ) div 2While Atas < Bawah . and . TI[Tengah] <> X do

If TI[Tengah] < X thenAtas Tengah + 1

ElseBawah Tengah – 1

EndifTengah ( Atas + Bawah ) div 2;

EndWhileIf TI[Tengah] = X then

IX TengahElse

IX 0Endif

Page 25: Modul Struktur Data

Teknik Pengurutan ( Sorting )• Sorting atau pengurutan data adalah proses yang

sering dilakukan dalam pengolahan data. • Mesin otomatik yang pertama kali lahir adalah

mesin pengurut (masih dipakai sampai saat ini).• Pengurutan dibedakan menjadi dua, yaitu :– Pengurutan internal, yaitu pengurutan terhadap

sekumpulan data yang disimpan dalam media internal komputer, dapat diakses elemennya secara langsung. Pengurutan terhadap array (tabel).

– Pengurutan eksternal, yaitu pengurutan data yang disimpan di memori sekunder, biasanya data bervolume besar sehingga tidak mampu dimuat semuanya di memori primer.

Page 26: Modul Struktur Data

Pengurutan Berdasarkan Seleksi

• Gagasan• Menghasilkan nilai minimum tabel (untuk

efisiensi, hanya indeks dimana harga minimum ditemukan yang dicatat), kemudian menukarnya dengan elemen terujung, “diisolasi” dan tidak diikutsertakan pada proses berikutnya. Proses diulang untuk sisa tabel.

Page 27: Modul Struktur Data

Procedure MaxSort (Var TI : TabInt);Var

I : integer; {indeks untuk traversal array}Pass : integer; {tahapan pengurutan}Temp : integer; {memorisasi harga untuk penukaran}IMin : integer; {indeks, dimana TI[Nmin .. Pass] berharga minimum}

BeginFor Pass = NMin to Nmax – 1 doBegin

{tentukan minimum diantara [Pass .. NMax]}IMax Pass;For I = Pass+1 to Nmax doBegin

If (TI[Max] > TI[I]) thenIMax I;End;{TI[IMax] adalah minimum TI[Pass .. NMax]}{tukar TI[IMax] dengan TI[Pass]}Temp TI[IMax];TI[IMax] TI[Pass];TI[Pass] Temp;{TI[Nmin .. Pass] terurut membesar : TI[NMin] <= TI[NMin+1] <= … <= TI[Pass]}

End;{seluruh tabel TI[Nmin .. NMax] terurut membesar, karena Pass = NMax, maka :} {TI[NMin] <= TI[Nmin+1] <= … <= TI[NMax]} End;

Page 28: Modul Struktur Data

Pengurutan Berdasarkan Penyisipan

• Gagasan• Mencari tempat yang tepat untuk setiap

elemen tabel, dengan secara sequential search, kemudian menyisipkan sebuah elemen tabel yang diproses ke tempat yang seharusnya.

Page 29: Modul Struktur Data

Procedure InsertionSort (Var TI : TabInt);Var

I : integer; {indeks untuk traversal array}Pass : integer; {tahapan pengurutan}Temp : integer; {memorisasi harga untuk penukaran}

Begin{TI[NMin] adalah terurut}For Pass = Nmin+1 to Nmax doBegin

Temp TI[Pass]; {simpan harga TI[Pass] supaya tidak tertimpa pergeseran}{sisipkan elemen ke-Pass dalam TI[NMin .. Pass-1] sambil menggeser}I Pass -1;While ( Temp > TI[I] ) And ( I > NMin) doBegin

TI[I+1] TI[I]; {geser}I I-1; {elemen berikutnya}

End;{(Temp >= TI[I] yaitu tempat yang tepat) atau I=1 harus disisipkan sebagai elemen pertama}If (Temp > TI[I]) then

TI[I+1] Temp; {telah menemukan tempat yang tepat}Else

TI[I+1] TI[I];TI[I] Temp; {sebagai elemen pertama}

End;{Seluruh tabel TI[NMin .. NMax] terurut membesar, karena Pass = NMax, maka :}{TI[NMin] <= TI[Nmin+1] <= … <= TI[Pass]}

End;