BAB I
PENDAHULUAN
A. Pembukaan
Berbicara tentang struktur data, maka kita tidak bias terlepas dari yang namanya bahasa pemrograman. Bahasa pemrograman yang banyak dipelajari untuk pemrograman dasar adalah bahasa Pascal. Dalam tulisan saya ini saya akan membahas tentang konstanta, variable, dan tipe data yang biasa digunakan pada bahasa Pascal.
Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record).
B. Latar Belakang Masalah
Berdasarkan latar belakang makalah ini dapat di simpulkan mengenai pengertian data, katagori data, kategori struktur data, tipe data tunggal, serta reklarasi data, dan contoh masing-masingnya.
BAB II
TIPE DATA DAN
DEFINISI DATA
A. Pengertian Data
Definisi data adalah fakta atau kenyataan yang tercatat mengenai suatu obyek. Pengertian data ini menyiratkan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel.
- Konstanta menyatakan nilai yang tetap.
- Variabel digunakan dalam program untuk menyatakan nilai yang dapat di ubah-ubah selama eksekusi berlangsung.
Ada 4 istilah tentang data, yaitu :
1. Tipe data adalah macam/isi data di dalam suatu variabel dalam bahasa program
2. Obyek data adalah set dari elemen, misal X set bilangan integer.
3. Representasi data adalah suatu mapping dari struktur data d kesuatu set dari struktur data e, misal boolean direpresentasikan dalam 0 dan 1.
4. Struktur data adalah koleksi dari variabel yang dinyatakan dengan sebuah nama, dengan sifat setiap variabel dapat memiliki tipe yang berlainan struktur data biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan.
Suatu koleksi / kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Data di kategorikan menjadi :
- Tipe data tunggal : Integer, Boolean dan Karakter
- Tipe data majemuk : String ( Untai )
Struktur data di kategorikan menjadi :
1. Struktur Data sederhana : Array dan Record
2. Struktur Data majemuk : Linier dan Non Linier
Tipe Data Tunggal
1. INTEGER :
- Himpunan {…,-{-(n+1),-n,…,-1,0,1,2,…,n+1,…}
- Operasi aritmatika yang dapat dilakukan : Penjumlahan, pengurangan, perpangkatan,perkalian dan pembagian.
2. BOOLEAN :
- Tipe data logika
- Elemen tipe data : True dan False
- Operator logika : OR, NOT, AND
3. KARAKTER :
- Merupakan suatu kumpulan dari symbol aksara yang meliput digit angka, alfabet dan spesial karakter lainnya
4. STRING
adalah barisan hingga symbol yang diambil dari himpunan karakter. Himpunan karakter yang digunakan untuk membentuk string dinamakan Alfabet.
C/: CD1, C1D,DDC,111D1, … dst, termasuk null (empty)
Secara umum dapat kita nyatakan String S sebagai :
S : a1,a2,…, an ® setiap a anggota alfabet A
Panjang dari string didefinisikan sebagai banyaknya karakter, atau dapat ditulis : S := N atau Length (S) := N
Operasi yang dapat dilakukan :
- Length (Panjang)
- Concatenation (Produk / Penyambungan)
- SubString
- Insert (menyisipkan)
- Delete (menghilangkan)
Contoh : S1 = Universitas
S2 = Gunadarma
1. Length (Sn); Length (S2) = 9 karakter
2. Substr (Sn, I,J); Substr (S1,3,5) = nadar
3. Concat (Sn,Sm); Concat (S1,S2)= ’Universitas Gunadarma’
4. Insert (Sn,I,J); Insert (S1,S2,6)= ’UniveGunadarmarsitas’
5. Delete (Sn,I,J); Delete (S2,3,4)= ’Gurma’
B. Deklarasi Data
v 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
v Statement untuk mendefinisikan jenis data disebut declarative statement
v Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda
v Beberapa contoh program (pendeklarasian data) yang akan diberikan ditulis dalam pseudo-code
Contoh
Constants
pi = 3.141592654
Variables
i, qty : integer
harga_satuan, harga_beli : real
status : boolean
nama : character(25)
v Beberapa struktur data :
– Array (larik) - String
– Record - List (daftar)
– Tree - Linked list
1. Array (Larik)
v Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier
v Contoh : Nilai = (56 42 89 65 48)
v Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu
– Nilai(1) menunjuk 56
– Nilai(2) menunjuk 42
v Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)
v 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
v Item data individual dalam suatu array sering disebut elemen
v Matriks
– Array yang hanya berisi bilangan dan tidak ada data alfabetisnya
v Klasifikasi Array
– Array 1 dimensi
– Array multi dimensi
Array Multi Dimensi
v Mempunyai elemen-elemen yang disusun ke dalam baris dan kolom dan digunakan sebagai tabel data
v 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) | 56 44 42 36 89 73 65 86 48 51 | ||
1 2 3 4 5 | A(1,1) = 56 A(2,1) = 42 A(3,1) = 89 A(4,1) = 65 A(5,1) = 48 | A = A(2,2) = 36 A(3,2) = 73 A(4,2) = 86 A(5,2) = 51 |
Deklarasi Array
v Array 1 dimensi
Variables
Nilai : array [1..5] of integer
A : array [1..4] of real
v Array 2 dimensi
Variables
A : array [1..5, 1..2] of integer
Penanganan Array
v Metode dasar penanganan array :
– Mencari nilai terbesar
– Mencari nilai terkecil
– Menghitung nilai rata-rata
– Menghitung nilai total
– Menghitung jumlah nilai di bawah rata-rata
v Menyortir Array (Sort)
– Buble sort
– Straight selection sort
v Mencari/Meneliti Array (Search)
– Linear search
2. String
v Rangkaian karakter yang ditangani sebagai unit data tunggal
v Contoh (string literal) :
– “ABC, 32fl2. 3h”
– “Kucing dalam karung”
v Contoh (variabel string) :
– A = “Universitas”
– B = “Gunadarma”
v Berada dalam bentuk array karakter 1 dimensi
v Fixed-length string (String yang panjangnya tetap)
– Mempunyai jumlah tempat karakter yang tetap yang tersedia (bisa digunakan) untuk penyimpanan data
v Variable-length string (String yang panjangnya berubah-ubah)
– Memberi data sejumlah spasi (ruang) sesuai yang ia perlukan
Deklarasi String
v Fixed-length string
Variables
nama : string
v Variable-length string
Variables
nama : string
Operasi pada String
v Concatenation
– Penggabungan dua atau lebih string
– Contoh :
A = “Universitas”
B = “Jabalghafur”
C = A + B
maka
C = “UniversitasJabalghafur”
v 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”
3. Record
v Seperti array 1 dimensi
v Terdiri dari serangkaian item data yang terkait
v Item data berurutan yang ada dalam record bisa mempunyai jenis yang berbeda
v Contoh : Mengorganisasikan 3 item data yang berbeda ke dalam struktur data tunggal
– NIP : string(8)
– Nilai : real
– Lulus : boolean
Deklarasi Record
mahasiswa : record
NIP : string(8)
Nilai : real
Lulus : boolean
end record
v Setiap elemen memiliki identifier sendiri
v Elemen dari suatu record disebut field
v Penunjukan ke setiap field dari suatu record bisa dilakukan dengan :
– Notasi “dot” (titik)
Begin
mahasiswa.NPM := ‘51292215’
mahasiswa.Nilai := 90.5
mahasiswa.Lulus := True
End
– Notasi “with”
Begin
with mahasiswa
do
NPM := ‘51292215’
Nilai := 90.5
Lulus := True
end with
End
Array Record (Tabel)
v Kumpulan dua atau lebih record
v Deklarasi Array Record
Variable
Mahasiswa : Array [1..5] of record
NIP : string(8)
Nilai : real
Lulus : boolean
End record
4. List (daftar )
v Memberikan cara yang fleksibel untuk penanganan item data secara urut
v Perubahan terhadap urutan tersebut dapat dicapai (dilakukan) dengan perpindahan data yang minimal dan kehilangan ruang penyimpanan yang sedikit
v Contoh : Kalimat "Ahmad does not like cake" dituliskan sebagai suatu list, seperti berikut :
v Beberapa istilah
Ø Datum : item data dalam list
Ø Pointer : penunjuk yang menyambungkan item data satu dengan yang lain
Ø Node / elemen : elemen dari suatu list yang terbentuk dari datum dan pointer
Ø Terminator : pointer terakhir dari list
Ø Start pointer : menyatakan tempat datum pertama
Ø Free storage pointer : menyatakan di mana datum berikutnya bisa mengarah atau menuju
Deklarasi List
v List dapat dideklarasikan sebagai sebuah array record
Variable
Kalimat : Array [1..7] of record
Datum : string
Next : integer
End record
Operasi pada List
v Deletion : penghapusan elemen suatu list
– Ketika elemen suatu list dihapus, tempat penyimpanan yang telah dikosongkan dapat digunakan lagi
v Insertion : penyisipan elemen ke dalam suatu list
v Search : pencarian elemen dalam suatu list
5. Tree
v Struktur data hirarki
v Dikonstruksi menggunakan aturan preseden untuk item data, misal : menggunakan rangkaian alfabet atau numerik
v Beberapa Istilah :
– Node : elemen dari suatu tree
Setiap node memiliki (sedikitnya) dua pointer yaitu left pointer dan right pointer
– Root node : datum pertama yang ditempatkan dalam tree
– Parent node : node yang memiliki node di bawahnya (sub-node)
– Child node : node yang berada di bawah parent
– Leaf node : node yang tidak mempunyai child
6. Linked list
v Single linked list
2 metode penggunaan single linked list :
1. Lifo (last in first out) aplikasi à stack (tumpukan)
Lifo adalah suatu metode pembuatan linkled list dimana data yang masuk paling akhir adalah data yang keluar paling awal.
Prosedure insert pada lifo
Type
Point = rec point
Rec point = record
Isi : type data;
Next : point;
End,
Var
Head, toal, now : point;
2. Fifo (first in first out) aplikasi à Queuen (antrian)
Fifo adalah metode pembuatan linked list dimana data yang masuk paling awal adalah yang keluar paling awal.
Prosedur insert pada fifo
Prosedure insert (elemen:type data);
Var now : point;
Begin
Now (now)
If head = nil then
Head = now
Else
Tail^next: =now;
Tail: =now;
Tail^next: =nil;
Now^isi: =elemen;
End.
v Prosedur-prosedur atau aplikasi umum dalam linked list
Ø Create adalah untuk membuat linked list baru atau masih kosong
Prosedure Create;
Begin
Head : =nil
Tail : =nil;
End.
Ø Empty adalah fungsi untuk menentukan apakah linked list penuh atau kosong
Fuhction empty : boolean ;
Begin
If head = nil then
Empty: =true;
Else
Empty: =false;
End.
Ø Find first adalah untuk menentukan prosedur element pertama. prosedure find first
Begin
Now : =head;
End;
Ø Find next adalah mencari elemen sesudah d yang di tunjuk now.
Prosedure find Next :
Begin
If now^.head < > nil then;
Now: =now^.next.
End;
Ø Retriese adalah mengambil elemen yang ditunjuk oleh now, elemen tersebut di tampung oleh suatu variabel r.
Prosedure retriese (var r : tipe data) :
begin
r: =now^ isi;
end.
Ø Update adalah mengubah elemen yang di tunjukkan oleh now dengan isi oleh suatu variabel U
Ø Delete now adalah menghapus elemen yang ditunjukkan oleh now
Ø Delete head adalah menghapus elemen yang ditunjuk oleh head
Ø Clear adalah untuk menghapus linked list yang sudah ada
BAB III
PENUTUP
A. Kesimpulan
Definisi data adalah fakta atau kenyataan yang tercatat mengenai suatu obyek. Pengertian data ini menyiratkan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel.
Ada 4 istilah tentang data, yaitu Tipe data, Obyek data, Representasi data, Struktur data.
Beberapa struktur data yang tersebut di atas antara lain : Array (larik), String, Record, List (daftar), Tree, Linked list.
B. Saran
Dengan diberikannya tugas ini diharapkan untuk mahasiswa agar lebih memahami tentang pembelajaran Struktur Data, karena di kehidupan yang serba canggih ini sangat dibutuhkannya keterampilan atau pengetahuan dibidang Teknologi Informasi. Karena dalam dalam mempelajari Teknologi dan Informasi, pembelajaran struktur data sangat dibutuhkan.
DAFTAR PUSTAKA
Ø Buku catatan pembelajaran struktur data semester II, Tahun 2009/2010
Ø Horowithz, Ellis and Sartaj Sahni, Fundamental of Computer Algorithms, Computer Science, 1988
Ø Robert Sedgewick, Algorithms in C++, Addison-Wesley Publising Company, 1992
Ø William Ford and William Topp, Data Dtructures with C++, Prentice Hall, 1997
KATA PENGANTAR
Segala puji bagi Allah SWT, Tuhan seru sekalian alam yang setia membimbing hamba-hamba-Nya. Atas bantuan dan tuntunan-Nya penyusunan makalah dengan judul “ STRUKTUR DATA “ dapat diselesaikan.
Penyusun telah berusaha menampilkan makalah ini dalam kondisi yang terbaik dan setepat mungkin, namun karena keterbatasan dan kelemahan yang ada, pasti terbuka kemungkinan kesalahan. Untuk itu penyusun mengharap masukan positif dari pembimbing untuk perbaikan makalah ini.
Terima kasih disampaikan kepada Bapak “Dedi Iskandar, ST” selaku dosen mata kuliah Struktur Data yang telah membimbing dan memberikan kuliah demi lancarnya tugas ini.
Demikianlah makalah ini disusun semoga bermanfaat, agar dapat memenuhi tugas mata kuliah ( Struktur Data ).
Sigli, 10 July 2010
i
DAFTAR ISI
KATA PENGANTAR ................................................................................. i
DAFTAR ISI ................................................................................................. ii
BAB I Pendahuluan ................................................................................... 1
A. Pembukaan ................................................................................... 1
B. Latar Belakang Masalah ................................................................ 1
BAB II Tipe Data Dan Definisi Data ........................................................ 2
A. Pengertian Data ............................................................................ 2
B. Deklarasi Data .............................................................................. 5
BAB III Penutup ......................................................................................... 17
A. Kesimpulan ................................................................................... 17
B. Saran ............................................................................................. 17
DAFTAR PUSTAKA
ii