Rabu, 13 Mei 2015

BAB 1 PENDAHULUAN STRUKTUR DATA

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: