1.1 Tinjauan Pentingnya Struktur Data
Kemajuan teknologi memberikan kontribusi terhadap kompleksnya
permasalahan yang di hadapi setiap badan usaha, lembaga pemerintah dan lainnya.
Penggunaan teknologi informasi komputer sebagai tools dalam menyelesaikan
permasalahan baik individu maupun organisasi berkaitan dengan pengembangan
suatu program/aplikasi atau sistem tidak semua secara serta merta dapat digunakan.
Hal ini terjadi karena tidak semua permasalahan mempunyai jenis permasalahan dan
data yang sama. Oleh karena itu untuk dapat menggunakan komputer sebagai sarana
penunjang penyelesaian masalah diperlukan jembatan penghubung antara perangkat
keras komputer dengan data permasalahan yang ada dalam bentuk deklarasi data
(pemesanan tempat dimemori) agar data dapat dikenali, dibaca dan dieksekusi oleh
komputer.
Pengeksekusian program atau data dalam komputer sebenarnya terjadi karena
adanya informasi yang tersimpan di dalam memori. Karena jika tidak ada data atau
informasi di memori komputer tidak akan pernah melakukan proses apa apa atau
dengan kata lain komputer dalam kondisi standby atau ready.
Pemrosesan data menggunakan kompueter membutuhkan deklarasi data yang
hendak diproses dengan kesesuaian instruksi yang dapat di mengerti oleh komputer.
Oleh karena banyaknya jenis data yang berbeda dan software (applikasi) yang
berbeda, maka mempelajari struktur dan organisasi data menjadi penting agar
pemanfaatan komputer sebagai alat pendukung penyelesaian sebagian dari masalah
dalam kegiatan sehari-hari menjadi lebih tepat.
Penyelesaian permasalahan dengan penggunaan komputer berhadapan dengan
empat hal, yaitu:
1. Pemahaman secara menyeluruh keterhubungan elemen-elemen data yang
relevan terhadap solusi masalah.
2. Pembuatan keputusan operasi-operasi yang dilakukan oleh elemen data.
3. Desain metode representasi elemen-elemen data di dalam memori sehingga
memenuhi kriteria:
(a). Memenuhi Keterkaitan logic antara elemen-elemen
data;
(b) operasi-operasi terhadap elemen data dapat dilakukan secara
mudah dan efisien.
4. Pengambilan keputusan mengenai bahasa pemrograman terbaik untuk
menerjamahkan solusi masalah menjadi program atau sistem.
Keempat hal tersebut di atas sudah semestinya menjadi perhatian setiap analis atau
programmer sebelum membangun sistem demi efisiensi dan efektivitas dalam
pengembangan aplikasi. Hal ini dimaksudkan agar keterkaitan antara elemen-elemen
data yang relevan terhadap solusi dapat di eksplorasikan secara menyeluruh
sehingga dapat ditentukan operasi-operasi elemen tersebut dapat dirumuskan secara
tepat. Selain itu hal yang harus diperhatikan adalah rancangan keterwakilan elemen
data dalam memori agar memenuhi syarat keterkaitan logic dan kemudahan operasi,
termasuk di dalamnya dalam hal penentuan penggunaan bahasa pemrograman yang
sesuai dengan kebutuahan dan maksimum performance-nya suatu program/sistem.
1.2 Struktur Data
Istilah struktur data terdiri dari dua kata, yaitu struktur dan data. Untuk dapat
memahami arti dari struktur data, berikut diberikan definisi masing masing kata
tersebut, yaitu:
a. Definisi Data
Data merupakan fakta (hal penting) yang tercatat mengenai suatu objek
tertentu. Contoh : Data mahasiswa,jenis kelamin, IP, dan Jumlah jam belajar.
b. Definisi Struktur
Struktur dapat diartikan suatu susunan, bentuk pola, atau bangunan
c. Definisi Struktur Data
Struktur data adalah suatu koleksi atau kelompok data yang dapat
dikarakteristikan oleh organisasi serta operasi yang didefinisikan
terhadapnya.
Jenis Struktur dibedakan sebagai berikut:
Data sederhana : array dan record;
Struktur Data Majemuk linier : stack, Queue, linked list, dan
Struktur Data majemuk
Nonlinier : Tree, graf
1.3 Tipe Data
Adalah macam atau isi data dalam suatu variable dalam bahasa program. Atau
jenis data yang ditangani bahasa pemrogramman.Pada bahasa pascal, contohnya
type data terdiri dari: Integer, real, character, Boolean, pointer dan lain lain.
Sementara Java mempunyai 11 macam tipe data yang terdiri atas tipe data
sederhana dan referensi / komposit. Tipe sederhana meliputi byte, short, int, long,
char, float, double dan boolean yang terbagi menjadi 3 tipe. Sedangkan tipe data
referensi meliputi class,array dan interface.
a. Tipe Data Pascal
Integer :
Adalah tipe data yang nilainya merupakan bilangan bulat. Tipe data integer terbagi
atas beberapa macam, yaitu sebagai berikut:
Contoh (1) : untuk menyatakan nilai yang tidak lebih dari 255 dapat dideklarasikan
sebagai berikut :
Var
Nilai : byte;
Begin
Nilai := 255;
----------------End.
Type Ukuran Memori (dalam byte) Range Nilai
Shortin 1 -128 …..127
Integer 2 -32768 ……32767
Longint 4 -2147483648 …..2147483647
Byte 1 0..255
Word 2 0 ….65535
Real :
Tipe data real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe data
ini juga tersedia atas beberapa macam yang berbeda dalam range dan besar
memori yang disediakan. Jenis-jenis tipe real tersebut dirincikan pada table
dibawah ini:
Type Ukuran Memori (dalam byte) Range Nilai
Real 6 ± 2.9 x 10-39…..1.7x10^38
Single 4 ± 1.5 x 10-45…..3.4x10^38
Double 8 ± 5 x 10-324…..1.7x10908
Extended 10 ± 3.4 x 10-4932…..1.1x104932
Comp 8 ± 9.2 x 1018…..9.2x1018
Contoh (2) ; Nilai konstanta numeric real :
Var Nilai1, Nilai2 : real ;
Begin
Nilai1 := 12345678901.2345;
Nilai2 := 12345;
Writeln („nilai1 = „, Nilai1);
Writeln („Nilai2 = „, Nilai2);
End.
Maka akan tercetak : Nilai1 = 1.2345678901 E+10
Nilai2 = 1.2345000000 E+04
Character :
Adalah tipe data yang berupa sebuah karakter yang ditulis diantara tanda petik
tunggal, menempati 1 byte memori. Atau dapat dijelaskan bahwa tipe data
character adalah tipe data karaker yang hanya dapat menampung satu karakker
saja dan mengalokasikan satu byte memori.
Contoh (3) (Pascal).
Var <nama variabell>:char;
Karakter : char;
Begin
Karakter := „ * ‟ ;
-------
-------
End.
Maka variable karakter akan berisi nilai ASCII dari „ * „
Boolean :
Adalah type data yang mempunyai dua nilai, yaitu true dan false. Tipe data
Boolean biasa digunakan untuk merepresentasikan logika tipe data Boolean hanya
dapat bernilai true(1) dan bernilai false(0). Jenis jenis tipe Boolean seperti dibawah
ini:
Type Ukuran Memori (dalam byte) Range Nilai
Boolean 1 (8 bit) Byte-size
ByteBool 1(8 bit) Byte-size
WordBool 2 (16 bit) Word-size
LongBool 4 (32 bit) LongInt-sized
Pada penerapannya tipe data ByteBool, WordBool, dan LongBool biasa dipakai
dalam pembuatan program untuk windows. Sedangkan untuk tipe Boolean
biasanya digunakan untuk pembuatan program DOS pada umumnya.
Dalam suatu ekspresi, operator-operator seperti =, <>, >,<, >=, <= akan banyak
dipakai untuk menentukan hasil dari suatu tipe data Boolean.
Contoh (4) : deklarasi dengan tipe Boolean
Var <nama variabel>:Boolean;
Nilai : boolean;
Begin
Nilai := true ;
--------
--------
End.
Pointer :
Adalah tipe data yang merupakan variable yang berisi alamat (address) di memori
(RAM) dimana suatu data disimpan dan bukan berisi data itu sendiri. Atau dengan
kata lain pointer akan menunjukkan letak dari data di memori. Deklarasi data type
pointer dengan sebuah variable dan diberi tanda coret (^).
Conotoh (5) :
Type
Tipestring = string[40];
Pointerstring = ^tipestring;
var
posisi : pointerstring;
begin
posisi^ := „ STMIK – XYZ „
-----------------End.
Variabel posisi adalah variable pointer yang menunjukkan letak data di memori
sebanyak 40 karakter. Jadi variable posisi tidak berisi STMIK-XYZ, tetapi alamat
data tersebut.
String (Pascal)
Adalah merupakan gabungan (array) dari karakter sebanyak 256(default).
Contoh (6) Var <nama variabel>: string;
Kalimat : string;
Nama : string[25];
Alamat : string[30];
Penerapan jenis data string ini sebaiknya mengalokasikan banyaknya karakter
untuk mencegah pemborosan memori. Seperti contoh diatas penulisan
Nama:string[25], Alamat: string[30], maka penggunaan memori walaupun tersedia
256 karakter akan tetap terpakai sesuai dengan kebutuhan yaitu 25 karakter untuk
nama dan 30 karakter untuk penulisan alamat.
b. Tipe Data Java
1. Tipe Data Sederhana
Integer (Bilangan Bulat)
Tipe data yang masuk menjadi bagian ini adalah byte, short, int dan long.
Semua tipe data ini bersifat Signed, yaitu bisa mempresentasikan nilai positif
dan negatif. Tidak seperti tipe data lainnya, Java tidak mendukung tipe data
Kode Dok. : SOD/Bab I Revisi : 03 2013
unsigned yang hanya bisa mempresentasikan nilai postif. Untuk jelasnya akan
dijelaskan oleh tabel dan penjelasan di bawah ini :
Tipe Data Ukuran (bit) Range
Byte 8 -128 s.d. 127
Short 16 -32768 s.d. 32767
Int 32 -2147483648 s.d. 2147483647
Long 64
-9223372036854775808 s.d.
9223372036854775807
Byte
Type byte umumnya digunakan pada saat kita bekerja dengan sebuah
data stream dari suatu file maupun jaringan, yaitu untuk kepeluan proses
membaca/menulis. Selain itu, tipe ini juga digunakan saat bekerja dengan data
biner yang tidak kompatibel dengan tipe-tipe lain yang didefiniskan di dalam Java.
Contoh :
class ContohByte {public static void main(String [] args){byte
a;a=127;System.out.println(a);}}
Short
Pada umumnya diaplikasikan pada komputer-komputer 16-bit, yang saat ini
semakin jarang keberadaanya.
Contoh :
class ContohShort {public static void main(String[]args){short umurWafiy;short
umurAdit;short selisih;umurWafiy=23;umurAdit=13;selisih=umurWafiyumurAdit;System.out.println(“Selisih umur mereka adalah “ + selisih + ” tahun”);
Int
Tipe ini merupakantipe yang paling banyak dipakai dalam merepresentasikan
angka dalam Java, dikarenakan dianggap paling efisien dibandingkan dengan tipetipe integer lainnya. Tipe Int banyak digunakan untuk indeks dalam struktur
pengulangan maupun dalam konstruksi sebuah array.Selain itu, secara teori setiap
ekspresi yang melibatkan tipe integer byte, short, int, long) semuanya akan
dipromosikan ke int terlebih dahulu sebelum dilakukan proses perhitungan.
Kode Dok. : SOD/Bab I Revisi : 03 2013
Contoh :
class HitungGaji{public static void main(String[]args){int gaji;int lamaKerja;int
besarGajigaji=5000000;lamaKerja=4;besarGaji=gaji*lamaKerja;System.out.println(besarG
aji);}}
Long
Tipe ini digunakan untuk kasus-kasus tertentu yang nilainya berada di luar rentang
tipe int, karna tipe ini punya range paling tinggi dibanding Integer lainnya. Dengan
kata lain, tipe long terpaksa digunakan jika data memiliki range diluar range int.
Contoh:
public class MassaPlanet{public static void main (String[]args){long
volum=1864824217374668;long massaJenis=77886;long
massa=volum*massaJenis;System.out.println(massa);}}
2. Floating-Point (Bilangan Pecahan)
Tipe floating-point digunakan untuk merepresentasikan nilai-nilai yang
mengandung pecahan atau angka decimal di belakang koma, seperti 3.1416,5.25,
dan sebagainya. Bilangan semacam ini disebut sebagai bilangan riil. Dalam Java
tipe ini dibedakan menjadi dua jenis, yaitu float, dan double. Untuk jelasnya akan
dijelaskan oleh tabel dan penjelasan di bawah ini :
Tipe
Ukuran
Range Presisi (jumlah digit)
bytes bit
float 4 32 +/- 3.4 x 1038 6-7
double 8 64 +/- 1.8 x 10308 15
Float
Tipe ini digunakan untuk menandakan nilai–nilai yang mengandung presisi atau
ketelitan tunggal (single-precision) yang menggunakan ruang penyimpanan 32-bit.
Presisi tunggal biasanya lebih cepat untuk processor-processor tertentu dan
memakan ruang penyimpanan setengah kali lebih sedikit dibandingkan presisi
ganda (double precision). Permasalahan yang timbul dari pemakaian
tipe float untuk nilai-nilai yang terlalu kecil atau justru terlalu besar, karena nilai
yang dihasilkan akan menjadi tidak akurat.
Contoh penggunaan variabel :
Kode Dok. : SOD/Bab I Revisi : 03 2013
float suhu;
Double
Tipe ini mengandung tingkat ketelitian ganda atau presisi ganda (double precision)
dan menggunakan ruang penyimpanan 64-bit untuk menyimpan nilai.
Tipe double tentu lebih cepat untuk melakukan perhitungan-perhitungan matematis
daripad tipe float. Untuk perhitungan yang bersifat bilangan riil dan menghasilkan
hasil yang lebih akurat, maka lebih baik menggunakan tipe double.
Contoh :
class KelilingLingkaran {public static void main (String[] args) {double pi = 3.1416;double
r = 2.12;double keliling;keliling = 2*pi*r;System.out.println(“Keliling Lingkaran = ”+
keliling);}}
3. Char
Tipe data char merupakan tipe untuk menyatakan sebuah karakter. Java
menggunakan karakter Unicode untuk merepresentasikan semua karakter yang
ada . Unicode ialah sekumpulan karakter yang terdapat pada semua bahasa,
seperti bahasa Latin, Arab, Yunani dan lain-lainnya. Karena bahasa Java
dirancang untuk dapat diterapkan di berbagai macam platform, maka Java
menggunakan karakter Unicode yang membutuhkan ukuran 16-bit. Untuk karakterkarakter yang tidak dapat diketikkan secara langsung melalui keyboard, java
menyediakan beberapa escape sequence (pasangan karakter yang dianggap
sebagai karakter tunggal). Escape sequence tidak dianggap sebagai String,
melainkan tetap sebagai tipe karakter khusus. Di bawah ini akan dijelaskan
beberapa contoh tentang escape sequence.
Escape Sequence Keterangan
\ddd Karakter octal (ddd)
\uxxxx Karakter Unicode heksadecimal (xxxx)
\’ Petik tunggal
\’’ Petik ganda
\\ Backslash
\r Carriage return
\n Baris baru (line feed)
\f Form feed
\t Tab
\b Backspace
Kode Dok. : SOD/Bab I Revisi : 03 2013
Contoh :
class ContohKarakter {public static void main (String[] args) {char ch = 65;// 65
merupakan kode untuk karakter A;System.out.println(“ch1=”+ch);ch++;
//increment(penaikan nilai sebesar 1)System.out.println(“ch2 = ”+ ch);}}
4. Boolean
Tipe boolean adalah tipe data yang digunakan untuk menampung nilai logika, yaitu
nilai yang hanya memiliki dua buah kemungkinan (benar atau salah). Tipe ini
ditandai dengan kata kunci Boolean. Dalam bahasa Java, nilai benar
dipresentasikan dengan kata kunci true dan nilai salah dengan kata kunci false.
Contoh :
class ContohBolean {public static void main (String[] args) {boolean a = true;if (a)
{System.out.println(“Perintah dilaksanakan ”);}//negasi dari aIf (!a)
{System.out.println(“Perintah tidak dilaksanakan ”);}}}
B. Tipe Data Referensi
1. Class
Kelas dapat didefiniskan sebagai cetak biru (blueprint) atau prototipe/kerangka
yang mendefiniskan variabel-variabel (data) dan method-method (perilaku) umum
dari sebuah objek. Dengan kata lain kelas adalah sebuah kesatuan yang
terintegrasi antara method dan data yang mengacu pada suatu objek.
Dalam dunia permrograman, sebenarnya kelas tidak jauh berbeda dengan tipe
data sederhana. Perbedaannya, tipe data sederhana digunakan untuk
mendeklarasikan variabel „normal‟, sedangkan kelas digunakan untuk
mendeklarasikan sebuah variabel yang berupa objek. Variabel yang berupa objek
ini sering disebut dengan referensi objek (object reference).
Pada saat kita membuat sebuah kelas baru. Sekali didefiniskan, maka tipe data
baru ini dapat digunakan untuk membuat suatu objek dari tipe tersebut. Dengan
kata lain, kelas adalah pola (template) untuk pembuatan objek, dan objek adalah
wujud nyata (instance) dari sebuah kelas.
Kode Dok. : SOD/Bab I Revisi : 03 2013
Contoh :
public Class Mahasiswa{public String nama;public int nrp;Mahasiswa(String a, int
b){nama =a;nrp= b;}public void cetak (){System.out.println(“Nama : “+nama+” nrp :
“+nrp);}}
Setelah kita membuat sebuah kelas, untuk menggunakannya maka kita harus
membuat sebuah instance dari kelas tersebut. Berikut cara membuat objek dari
kelas :
class Demo {public static void main(String[]args){Mahasiswa mhs;mhs = new
Mahasiswa(“ZAINUL”,5311100048)}}
2. Array
Tipe data ini memiliki kemampuan untuk menggunakan satu variabel yang dapat
menyimpan sebuah data list dan kemudian memanipulasinya dengan lebih efektif.
Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama
didalam sebuah blok memori yang berdekatan yang kemudian dibagai menjadi
beberapa slot.
3. Interface
Interface merupakan sekumpulan method yang hanya memuat deklarasi dan
struktur method, tanpa detail implementasinya. Sedangkan detail dari method
tersebut berada pada class yang mengimplementasikan interface tersebut.
Interface digunakan bila Anda ingin mengaplikasikan suatu method yang spesifik,
yang tidak diperoleh dari proses inheritance yang lebih terbatas. Tipe data yang
boleh pada interface hanya tipe data konstan.
1.4 Elemen data :
File : Kumpulan record record sejenis
Record : Kumpulan data untuk suatu objek tertentu.
Field : Medan data bagian dari record yang menyatakan suatu medan data.
Char : Suatu kode yang berisi sekumpulan bit untuk menyatakan huruf, angka
dan tanda tanda yang lain
Contoh :
Kode Dok. : SOD/Bab I Revisi : 03 2013
File mahasiswa :
NIM Name Address Date
10 AA 40 6
File diperlukan untuk support suatu proses.
1.5 Algoritman dan Metode Pemrogramman
Adalah suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang
terstruktur dan dituliskan secara sistematis yang akan dikerjakan untuk
menyelesaiakan suatu masalah dengan bantuan komputer. Atau dapat
didefinisikan himpunan langkah langkah instruksi untuk melaksanakan suatu
pekerjaan tertentu dengan beberapa criteria, seperti : input, output, jelas dan tidak
meragukan, ada effective dan terminate.
Fokusnya adalah bagaimana memecahkan suatu masalah dengan algoritma yang
tepat.
Dasar dasar algoritma terdiri :
a. Statement elementer ( Assignment, comparison, aritmatic statement,
operator Boolean dan instruksi I/O)
b. Statement control ( Alternatife [if then else/Case – of], Pengulangan
[Repeat-until, Do while, For do] dan percabangan [Go to Label)
Algoritma merupakan jantung kehidupan semua program tanpa kecuali meski
untuk aplikasi paling sederhana. Algoritma adalah metode presisi yang dapat
digunakan komputer untuk menyelesaikan masalah. Algoritma disusun dari
sekumpulan langkah berhingga, masing-masing langkah mungkin memerlukan
satu operasi atau lebih. Algoritma umumnya dirancang untuk menyelesaikan suatu
masalah spesifik dan dengan usaha yang paling minimal.
Ciri-ciri algoritma itu terdiri dari : masukan (input), keluaran (output),
jelas(definite), efektif (efective), dan berakhir (terminate).
Kode Dok. : SOD/Bab I Revisi : 03 2013
QUIZ (1) dikumpulkan:
1. Apa pendapat dan pemahaman anda mengenai pengertian Algoritma?
2. Uraikan penjelasan anda berkaitan dengan struktur data menurut pemahaman
anda!
3. Menurut pendapat anda apa kaitannya struktur data dengan penyelesaian
masalah dengan komputer?
4. Apa pandangan anda tentang type data : integer, real, boolean? Jelaskan!
Diketahui data sebagai berikut:
File : Pegawai :
NIP Nama Tanggal Lahir Alamat Pendidikan Status
5. Uraikan elemen data menurut anda
6. Uraikan kesimpulan anda setelah mempelajari Bab I
Tidak ada komentar:
Posting Komentar