SlideShare une entreprise Scribd logo
1  sur  29
Catatan Kuliah Algoritma dan Struktur Data
1
Catatan Kuliah
PAM 282
Algoritma dan Struktur Data
Oleh
Narwen, M.Si
Catatan Kuliah Algoritma dan Struktur Data
2
BAB I PENDAHULUAN
PENGERTIAN STRUKTUR DATA.
Struktur data adalah cara menyimpan atau merepre-
sentasikan data atau informasi secara logik di dalam
komputer agar bisa dipakai secara efisien.
Sedangkan data atau informasi itu sendiri adalah
representasi kenyataan atau fakta dari dunia nyata.
Fakta atau keterangan tentang kenyataan dari dunia
nyata tersebut akan disimpan, direkam ataupun
direpresentasikan dalam bentuk tulisan, suara, gambar,
sinyal atau simbol-simbol.
Catatan Kuliah Algoritma dan Struktur Data
3
Secara garis besar tipe data dapat dikategorikan
menjadi dua kelompok, yaitu tipe data sederhana dan
tipe data terstruktur.
Tipe data sederhana dibedakan lagi atas tipe data
sederhana tunggal dan tipe data sederhana majemuk.
Contoh tipe data sederhana tunggal adalah integer,
real, boolean dan karakter. Sedangan tipe data
sederhana majemuk adalah string.
Tipe data terstruktur dibedakan juga atas struktur data
sederhana dan struktur data majemuk. Contoh struktur
data sederhana adalah array dan record. Sedangkan
struktur data majemuk dibedakan lagi atas struktur
data majemuk Linier dan non linier.
Catatan Kuliah Algoritma dan Struktur Data
4
Contoh dari struktur data majemuk linier adalah
stack (tumpukan), queue (antrian), list dan multi
list. Sedangkan contoh dari struktur data majemuk
non Linier adalah 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.
Struktur data yang ″standar″ yang biasanya
digunakan di bidang informatika adalah list linier
(linked List) dan variasinya, multi list, stack
(tumpukan), queue (antrian), tree (pohon) dan
graph (graf ).
Catatan Kuliah Algoritma dan Struktur Data
5
1. Integer.
Integer adalah bilangan yang tidak mengandung pecah-
an dan disajikan sebagai angka bulat. Integer memiliki
representasi sederhana dalam komputer. Komputer
memandang integer sebagai nilai dari serangkaian
bilangan biner. Namun komputer tidak memproses per
bit, tapi per blok bit yang umumnya terdiri dari 8 bit
(dikenal sebagai 1 byte atau binary eight).
Sebuah integer N disajikan dalam memory dengan ru-
musan N ← 2n-1 – 1, dengan n adalah jumlah bit dalam
memory dan satu bit paling kiri sebagai sign (tanda).
Bila bit tersebut bernilai 0, maka bilangannya adalah
positif. Sebaliknya bila bit tersebut bernilai 1 maka
bilangannya adalah negatif.
Catatan Kuliah Algoritma dan Struktur Data
6
Metode menggambarkan bilangan biner negatif.
1. Ones Complement Notation.
Bilangan negatif diperoleh dengan merubah setiap bit
secara keseluruhan ke dalam kelompok bit lawannya.
Contoh : (38)10 = 00100110. Maka (-38)10 = 11011001.
Masalah dengan metode ini, (0)10 dapat digambarkan
dengan 00000000 atau 1111111, pada hal untuk satu
bilangan bulat dilambangkan oleh satu bilangan biner.
2. Twos Complement Notation.
Bilangan negatif diperoleh dengan menambahkan 1 ke
metode ones complement notation.
Catatan Kuliah Algoritma dan Struktur Data
7
Contoh : (-38)10 = 11011001 (ones complement)
1 +
(-38)10 = 11011010 (twos complement)
Dengan metode ini (0)10 dapat digambarkan dengan
00000000 secara tunggal.
Tipe Integer pada pascal.
Tipe Jangkauan Ukuran
Shortint -128 .. 127 8 bit
Byte 0 .. 255 8 bit
Word 0 .. 65535 16 bit
Integer -32768 .. 32767 16 bit
Longint -2147483648 .. 2147483647 32 bit
Catatan Kuliah Algoritma dan Struktur Data
8
Operasi dalam integer.
1. Operasi uner, yaitu operasi yang hanya mempunyai
satu operand, yaitu - dan +.
2. Operasi biner, yaitu operasi yang mempunyai dua
operand, yaitu penambahan (+), pengurangan (-),
perkalian (*), pembagian bulat (div), dan sisa bagi
bulat (mod).
Bentuk umum dari tipe integer adalah:
Var <nama variabel> : <tipe integer>;
Catatan Kuliah Algoritma dan Struktur Data
9
Real.
Bilangan Real adalah gabungan dari bilangan Rasional
dengan Irrasional. Biasanya ditulis dalam bentuk
bilangan berkoma.
Dalam memori komputer, bilangan real memakai
sistem floating point, merupakan versi dari notasi
ilmiah atau scientific notation. Disini penyajian ter-
diri dari mantissa (pecahan) dan indeks (eksponen)
atau karakter, sehingga untuk bilangan real X dapat
dirumuskan sebagai X = M * RE, dengan M adalah
pecahan, R adalah radix dan E adalah eksponen.
Mantissa adalah bilangan bulat ≠ 0.
Catatan Kuliah Algoritma dan Struktur Data
Narwen, M.Si / Jurusan Matematika FMIPA Unand 10
Penulisan floating point dengan 32 bit biner terdiri
dari 24 bit merupakan mantissa dan 8 bit merupakan
eksponen. Bilangan negatif dari mantissa atau
eksponen menggunakan two complement notation.
Operasi dalam Real.
Semua operasi pada aritmatika dan trigonometri adalah
operasi-operasi yang dapat dilakukan terhadap bilang-
an real.
Bentuk umum dari tipe real adalah:
Var <nama variabel> : <tipe real>;
Catatan Kuliah Algoritma dan Struktur Data
11
Karakter dan String.
Karakter (Character) meliputi digit numerik, karakater
alfabetik dan karakter khusus. Sebuah karakter dalam
memori komputer akan menempati 8 bit biner yang
merepresentasikan bilangan positif. Misalkan ‘A’
dalam memori ditulis 0100 0001 atau (65)10 . Jadi kode
ASCII dari A adalah 65. ASCII = America Standart
Code for Information Interchange. Ada juga
mengembangkan EBCDIC = Extended Binary Coded
Decimal Interchange Code, dengan 8 bit biner.
String adalah barisan hingga simbol yang diambil dari
sejumlah hingga karakter. String S dengan panjang n
ditulis sebagai S ← a1 a2 a3… an.
Catatan Kuliah Algoritma dan Struktur Data
12
Operasi dalam Karakter dan String.
1. Concat [fungsi], digunakan untuk menggabungkan
dua atau lebih variable-variabel string.
2. Copy [fungsi], digunakan untuk mengambil satu atau
beberapa karakter dari sebuah string.
3. Delete [prosedur], digunakan untuk menghapus seba-
gian karakter dari sebuah string.
4. Insert [prosedur], digunakan untuk menyisipkan satu
atau beberapa karakter ke dalam sebuah string.
ConCat ( s1 <,s2,...,sn>: String) : String;
Copy(S:String;Index,Count:integer) : String;
Delete(S:String;Index,Count:integer);
Insert(source,S:string;Index:integer);
Catatan Kuliah Algoritma dan Struktur Data
13
5. Length [fungsi], digunakan untuk menghitung ba-
nyaknya karakter dalam suatu string.
6. Pos [fungsi], digunakan untuk mencari posisi sebuah
bagian string (substring) di dalam sebuah string.
7. Str [prosedur], digunakan untuk merubah nilai
numerik ke dalam nilai string.
8. Val [prosedur], digunakan untuk merubah nilai string
ke dalam nilai numerik.
Length(S:String): integer;
Pos(Substr,S:string): Byte;
Str(N:integer;S:string);
Val(S:String;N:Integer;P:byte);
Catatan Kuliah Algoritma dan Struktur Data
14
9. Upcase [fungsi], digunakan untuk memberikan huruf
kapital dari suatu argumen karakter.
Operasi transfer tipe data.
1. Chr [fungsi], digunakan untuk merubah nilai dari byte
ke bentuk karakter yang sesuai dengan kode ASCII.
2. Ord [fungsi], digunakan untuk merubah nilai suatu
variabel dari bentuk karakter ke bentuk longint.
Upcase(C:char): char;
Chr(x : byte): char;
Ord(C : char): longint;
Catatan Kuliah Algoritma dan Struktur Data
15
3. Round [fungsi], digunakan untuk membulatkan
data tipe real ke data tipe longint.
4. Trunc [fungsi], digunakan untuk membulatkan ke
bawah data tipe real ke data tipe longint.
Round(X:Real): Longint;
Trunc(X : Real): Longint;
Catatan Kuliah Algoritma dan Struktur Data
16
Record
Disusun oleh satu atau lebih field.Tiap field me-
nyimpan data dari tipe dasar tertentu atau dari tipe
bentukan lain yang sudah didefinisikan sebelumnya.
Nama record ditentukan oleh pemrogram. Record
disebut juga tipe terstruktur. Bentuk umum dari
record adalah:
Type <nama record> = record
field1 : type1;
field2 : type2;
...
fieldn : typen;
end;
Catatan Kuliah Algoritma dan Struktur Data
17
Contoh 1.
Jika variabel P dideklarasikan mempunyai tipe Titik
maka field yang mengacu pada P adalah P.x dan P.y.
Contoh 2.
Didefinisikan tipe terstruktur yang mewakili Jam yang
dinyatakan sebagai jam(hh), menit(mm) dan detik(ss),
maka cara menulis type Jam adalah:
Type Titik = record
x : real;
y : real;
end;
Catatan Kuliah Algoritma dan Struktur Data
18
Jika variabel J dideklarasikan mempunyai tipe Jam
maka cara mengacu tiap field adalah J.hh, J.mm dan
J.ss.
Operasi terhadap record adalah operasi per elemen,
yaitu assignment, baca dan tulis.
Akses elemen dari record adalah,
<nama record> . <nama filed>.
Type JAM = record
hh : integer; {0…23}
mm : integer; {0…59}
ss : integer; {0…59}
end;
Catatan Kuliah Algoritma dan Struktur Data
19
Array (Larik)
Array adalah struktur data statik yang menyimpan
sekumpulan elemen yang bertipe sama. Setiap
elemen diakses langsung melalui indeksnya. Indeks
dari array harus tipe data yang menyatakan keter-
urutan misalnya integer atau karakter. Banyaknya
elemen array harus sudah diketahui sebelum program
dieksekusi. Tipe elemen array dapat berupa tipe
sederhana, tipe terstruktur atau tipe array lainnya.
Nama lain array adalah Larik. Array satu dimensi
disebut dengan vektor dan array dua dimensi disebut
tabel.
Catatan Kuliah Algoritma dan Struktur Data
20
Bentuk umum dari array satu dimensi adalah:
Bentuk umum dari array dua dimensi adalah:
Tiga hal yang harus diperhatikan dalam mendeklara-
sikan suatu array yaitu,
1. Nama array,
2. Range dari Indeks,
3. Tipe data dari elemen array.
Elemen terkecil dari indeks array disebut batas bawah (l)
dan elemen terbesar disebut batas atas (u). Jumlah ele-
men dalam array disebut range, diberikan oleh
ord(u) - ord(l) + 1.
Type <nama array> = array[<indeks>] of <tipe>;
Type <nama array> = array[<indeks1>,<indeks2>] of <tipe>;
Catatan Kuliah Algoritma dan Struktur Data
21
Contoh 3.
Definisikan suatu array dengan nama LarikA yang
masing-masing elemennya adalah integer dan indeks-
nya dari -5 sampai dengan 200.
Jika variabel A dideklarasikan sebagai LarikA, maka
cara mengacu tiap elemennya adalah A[-5], A[-4], …,
A[200].
Contoh 4.
Jika variabel A dideklarasikan sebagai LarikB, maka
cara mengacu tiap elemennya adalah A[1,1],…
A[1,10], …, A[10,1], …, A[10,10].
Type LarikA = Array[-5..200] of integer;
Type LarikB = Array[1..10,1..10] of integer;
Catatan Kuliah Algoritma dan Struktur Data
22
Contoh 5.
Cara mengacu elemen TabMhs adalah TabMhs[2].
Nobp mengacu field Nobp dari elemen kedua dari
larik. Sedangkan Write(TabMhs[k].KodeMK);
adalah menuliskan field KodeMK dari elemen ke k
dari larik.
Const Nmaks = 100;
Type mahasiswa = Record
Nobp : integer;
Nama : string;
kodeMK : string;
nilai : char;
end;
var TabMhs : Array[1..Nmaks] of Mahasiswa;
Catatan Kuliah Algoritma dan Struktur Data
23
Operasi yang dapat dilakukan pada array adalah opera-
si per elemen untuk baca dan tulis, assignment, perhi-
tungan dan perbandingan yang diakses melalui indeks-
nya. Banyaknya indeks menentukan dimensi dari array
tersebut.
Set (Himpunan)
Set adalah kumpulan dari objek-objek. Dalam Pascal
objek tersebut harus mempunyai tipe dasar yang
sama. Tipe dasar ini adalah sembarang skalar atau
tipe enumerasi. Bentuk umum set adalah :
Type <nama himpunan> = Set of <tipe>;
Catatan Kuliah Algoritma dan Struktur Data
24
Keuntungan menggunakan Set adalah butuh tempat pe-
nyimpanan yang sedikit karena representasinya internal
dalam bit. Sedangkan kerugiannya adalah anggota dari
set tidak dapat dicetak dan hanya dapat dibaca keang-
gotaanya.
Operasi pada Set adalah assignment (:=), union (+),
inter-section (*), different (-), not equal (<>), equal
(=), inclution (<=), exclution (>=) dan in.
Contoh 6.
Jika variabel huruf dideklarasikan sebagai Alfabet,
maka salah satu elemennya adalah huruf := [‘a’,’d’].
Sedang himpunan kosong ditulis dengan [ ].
Type Alfabet = Set of Char;
Catatan Kuliah Algoritma dan Struktur Data
25
Latihan.
Buatlah dalam bahasa pascal :
1. Definisikan sebuah tipe terstruktur untuk menyatakan
data nasabah disebuah bank. Data nasabah terdiri atas
field Nomor Account, Nama Nasabah, Alamat Nasa-
bah, Kota Nasabah, dan Nomor Telpon Nasabah. Un-
tuk setiap field definisikan tipe data yang cocok.
2. Dari soal nomor1 buatlah program dalam bahasa pemrog-
raman berbasis bahasa Pascal, untuk memasukkan data
nasabah sebanyak N, dengan N diinputkan dari papan
ketik, kemudian menuliskan kembali semua data nasabah
dalam bentuk matrik. Petunjuk: Gunakan notasi pengu-
langan untuk menyelesaikan permasalahan tersebut.
Catatan Kuliah Algoritma dan Struktur Data
26
TIPE DATA ABSTRAK (ADT)
Tipe Data Abstrak (Abstract Data Type) adalah definisi
dari tipe dan sekumpulan primitif (operasi dasar) terha-
dap tipe tersebut.
Tipe diterjemahkan menjadi tipe terdefinisi dalam
bahasa pemrograman yang bersangkutan, misalnya
menjadi record dalam Pascal.
Primitif dalam konteks pemrograman prosedural,
diterjemahkan menjadi fungsi (function) dan
prosedur (procedure).
Catatan Kuliah Algoritma dan Struktur Data
27
Primitif dikelompokkan menjadi:
1. Konstruktor / Kreator, untuk pembentuk nilai
tipe. Biasanya namanya di awali dengan Make.
2. Selektor, untuk mengakses komponen tipe.
Biasanya namanya diawali dengan Get.
3. Prosedur Pengubah Nilai Komponen.
4. Validator komponen tipe, yang dipakai untuk me-
nguji apakah dapat membentuk tipe sesuai batasan.
5. Destruktor / Dealokator, yaitu untuk menghancur-
kan nilai objek, sekaligus memori penyimpannya.
6. Baca/tulis, untuk interface dengan input/output
device.
Catatan Kuliah Algoritma dan Struktur Data
28
7. Operator Relasional terhadap tipe tersebut untuk
mendefinisikan lebih besar, lebih kecil, sama dengan
dan sebagainya.
8. Aritmatika terhadap tipe tersebut, dalam pemrog-
raman biasanya hanya terdefinisi untuk bilangan
numerik.
9. Konversi dari tipe tersebut ke tipe dasar dan seba-
liknya.
Catatan Kuliah Algoritma dan Struktur Data
29
Tipe Data Abstrak 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 Selek-
tor dan Konstruktor.

Contenu connexe

Similaire à 1. Pengantar Struktur data.pptx

Similaire à 1. Pengantar Struktur data.pptx (20)

Algoritma pertemuan 1
Algoritma pertemuan 1Algoritma pertemuan 1
Algoritma pertemuan 1
 
Pertemuan 2 revisijan2013-mhs
Pertemuan 2 revisijan2013-mhsPertemuan 2 revisijan2013-mhs
Pertemuan 2 revisijan2013-mhs
 
Algoritma - tipe data
Algoritma - tipe dataAlgoritma - tipe data
Algoritma - tipe data
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
BAB II ISI MAKALAH REPRESENTASI DATA
BAB II ISI MAKALAH REPRESENTASI DATABAB II ISI MAKALAH REPRESENTASI DATA
BAB II ISI MAKALAH REPRESENTASI DATA
 
Topik 4 Tipe Data
Topik 4 Tipe DataTopik 4 Tipe Data
Topik 4 Tipe Data
 
Struktur data
Struktur dataStruktur data
Struktur data
 
7 Pointer
7 Pointer7 Pointer
7 Pointer
 
Algoritma & pemrograman 2
Algoritma & pemrograman 2Algoritma & pemrograman 2
Algoritma & pemrograman 2
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_string
 
M04b dasar program c
M04b dasar program cM04b dasar program c
M04b dasar program c
 
Bab ii tipe data abstrak
Bab ii tipe data abstrakBab ii tipe data abstrak
Bab ii tipe data abstrak
 
Pertemuan3.ppt
Pertemuan3.pptPertemuan3.ppt
Pertemuan3.ppt
 
Pertemuan 1 ok
Pertemuan 1 okPertemuan 1 ok
Pertemuan 1 ok
 
Array Dimention
Array DimentionArray Dimention
Array Dimention
 
Buku pemrograman dasar
Buku pemrograman dasarBuku pemrograman dasar
Buku pemrograman dasar
 
Tugas2
Tugas2Tugas2
Tugas2
 
Pertemuan 1 revisijan2013-mhs
Pertemuan 1 revisijan2013-mhsPertemuan 1 revisijan2013-mhs
Pertemuan 1 revisijan2013-mhs
 
Dasar c
Dasar cDasar c
Dasar c
 

1. Pengantar Struktur data.pptx

  • 1. Catatan Kuliah Algoritma dan Struktur Data 1 Catatan Kuliah PAM 282 Algoritma dan Struktur Data Oleh Narwen, M.Si
  • 2. Catatan Kuliah Algoritma dan Struktur Data 2 BAB I PENDAHULUAN PENGERTIAN STRUKTUR DATA. Struktur data adalah cara menyimpan atau merepre- sentasikan data atau informasi secara logik di dalam komputer agar bisa dipakai secara efisien. Sedangkan data atau informasi itu sendiri adalah representasi kenyataan atau fakta dari dunia nyata. Fakta atau keterangan tentang kenyataan dari dunia nyata tersebut akan disimpan, direkam ataupun direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol-simbol.
  • 3. Catatan Kuliah Algoritma dan Struktur Data 3 Secara garis besar tipe data dapat dikategorikan menjadi dua kelompok, yaitu tipe data sederhana dan tipe data terstruktur. Tipe data sederhana dibedakan lagi atas tipe data sederhana tunggal dan tipe data sederhana majemuk. Contoh tipe data sederhana tunggal adalah integer, real, boolean dan karakter. Sedangan tipe data sederhana majemuk adalah string. Tipe data terstruktur dibedakan juga atas struktur data sederhana dan struktur data majemuk. Contoh struktur data sederhana adalah array dan record. Sedangkan struktur data majemuk dibedakan lagi atas struktur data majemuk Linier dan non linier.
  • 4. Catatan Kuliah Algoritma dan Struktur Data 4 Contoh dari struktur data majemuk linier adalah stack (tumpukan), queue (antrian), list dan multi list. Sedangkan contoh dari struktur data majemuk non Linier adalah 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. Struktur data yang ″standar″ yang biasanya digunakan di bidang informatika adalah list linier (linked List) dan variasinya, multi list, stack (tumpukan), queue (antrian), tree (pohon) dan graph (graf ).
  • 5. Catatan Kuliah Algoritma dan Struktur Data 5 1. Integer. Integer adalah bilangan yang tidak mengandung pecah- an dan disajikan sebagai angka bulat. Integer memiliki representasi sederhana dalam komputer. Komputer memandang integer sebagai nilai dari serangkaian bilangan biner. Namun komputer tidak memproses per bit, tapi per blok bit yang umumnya terdiri dari 8 bit (dikenal sebagai 1 byte atau binary eight). Sebuah integer N disajikan dalam memory dengan ru- musan N ← 2n-1 – 1, dengan n adalah jumlah bit dalam memory dan satu bit paling kiri sebagai sign (tanda). Bila bit tersebut bernilai 0, maka bilangannya adalah positif. Sebaliknya bila bit tersebut bernilai 1 maka bilangannya adalah negatif.
  • 6. Catatan Kuliah Algoritma dan Struktur Data 6 Metode menggambarkan bilangan biner negatif. 1. Ones Complement Notation. Bilangan negatif diperoleh dengan merubah setiap bit secara keseluruhan ke dalam kelompok bit lawannya. Contoh : (38)10 = 00100110. Maka (-38)10 = 11011001. Masalah dengan metode ini, (0)10 dapat digambarkan dengan 00000000 atau 1111111, pada hal untuk satu bilangan bulat dilambangkan oleh satu bilangan biner. 2. Twos Complement Notation. Bilangan negatif diperoleh dengan menambahkan 1 ke metode ones complement notation.
  • 7. Catatan Kuliah Algoritma dan Struktur Data 7 Contoh : (-38)10 = 11011001 (ones complement) 1 + (-38)10 = 11011010 (twos complement) Dengan metode ini (0)10 dapat digambarkan dengan 00000000 secara tunggal. Tipe Integer pada pascal. Tipe Jangkauan Ukuran Shortint -128 .. 127 8 bit Byte 0 .. 255 8 bit Word 0 .. 65535 16 bit Integer -32768 .. 32767 16 bit Longint -2147483648 .. 2147483647 32 bit
  • 8. Catatan Kuliah Algoritma dan Struktur Data 8 Operasi dalam integer. 1. Operasi uner, yaitu operasi yang hanya mempunyai satu operand, yaitu - dan +. 2. Operasi biner, yaitu operasi yang mempunyai dua operand, yaitu penambahan (+), pengurangan (-), perkalian (*), pembagian bulat (div), dan sisa bagi bulat (mod). Bentuk umum dari tipe integer adalah: Var <nama variabel> : <tipe integer>;
  • 9. Catatan Kuliah Algoritma dan Struktur Data 9 Real. Bilangan Real adalah gabungan dari bilangan Rasional dengan Irrasional. Biasanya ditulis dalam bentuk bilangan berkoma. Dalam memori komputer, bilangan real memakai sistem floating point, merupakan versi dari notasi ilmiah atau scientific notation. Disini penyajian ter- diri dari mantissa (pecahan) dan indeks (eksponen) atau karakter, sehingga untuk bilangan real X dapat dirumuskan sebagai X = M * RE, dengan M adalah pecahan, R adalah radix dan E adalah eksponen. Mantissa adalah bilangan bulat ≠ 0.
  • 10. Catatan Kuliah Algoritma dan Struktur Data Narwen, M.Si / Jurusan Matematika FMIPA Unand 10 Penulisan floating point dengan 32 bit biner terdiri dari 24 bit merupakan mantissa dan 8 bit merupakan eksponen. Bilangan negatif dari mantissa atau eksponen menggunakan two complement notation. Operasi dalam Real. Semua operasi pada aritmatika dan trigonometri adalah operasi-operasi yang dapat dilakukan terhadap bilang- an real. Bentuk umum dari tipe real adalah: Var <nama variabel> : <tipe real>;
  • 11. Catatan Kuliah Algoritma dan Struktur Data 11 Karakter dan String. Karakter (Character) meliputi digit numerik, karakater alfabetik dan karakter khusus. Sebuah karakter dalam memori komputer akan menempati 8 bit biner yang merepresentasikan bilangan positif. Misalkan ‘A’ dalam memori ditulis 0100 0001 atau (65)10 . Jadi kode ASCII dari A adalah 65. ASCII = America Standart Code for Information Interchange. Ada juga mengembangkan EBCDIC = Extended Binary Coded Decimal Interchange Code, dengan 8 bit biner. String adalah barisan hingga simbol yang diambil dari sejumlah hingga karakter. String S dengan panjang n ditulis sebagai S ← a1 a2 a3… an.
  • 12. Catatan Kuliah Algoritma dan Struktur Data 12 Operasi dalam Karakter dan String. 1. Concat [fungsi], digunakan untuk menggabungkan dua atau lebih variable-variabel string. 2. Copy [fungsi], digunakan untuk mengambil satu atau beberapa karakter dari sebuah string. 3. Delete [prosedur], digunakan untuk menghapus seba- gian karakter dari sebuah string. 4. Insert [prosedur], digunakan untuk menyisipkan satu atau beberapa karakter ke dalam sebuah string. ConCat ( s1 <,s2,...,sn>: String) : String; Copy(S:String;Index,Count:integer) : String; Delete(S:String;Index,Count:integer); Insert(source,S:string;Index:integer);
  • 13. Catatan Kuliah Algoritma dan Struktur Data 13 5. Length [fungsi], digunakan untuk menghitung ba- nyaknya karakter dalam suatu string. 6. Pos [fungsi], digunakan untuk mencari posisi sebuah bagian string (substring) di dalam sebuah string. 7. Str [prosedur], digunakan untuk merubah nilai numerik ke dalam nilai string. 8. Val [prosedur], digunakan untuk merubah nilai string ke dalam nilai numerik. Length(S:String): integer; Pos(Substr,S:string): Byte; Str(N:integer;S:string); Val(S:String;N:Integer;P:byte);
  • 14. Catatan Kuliah Algoritma dan Struktur Data 14 9. Upcase [fungsi], digunakan untuk memberikan huruf kapital dari suatu argumen karakter. Operasi transfer tipe data. 1. Chr [fungsi], digunakan untuk merubah nilai dari byte ke bentuk karakter yang sesuai dengan kode ASCII. 2. Ord [fungsi], digunakan untuk merubah nilai suatu variabel dari bentuk karakter ke bentuk longint. Upcase(C:char): char; Chr(x : byte): char; Ord(C : char): longint;
  • 15. Catatan Kuliah Algoritma dan Struktur Data 15 3. Round [fungsi], digunakan untuk membulatkan data tipe real ke data tipe longint. 4. Trunc [fungsi], digunakan untuk membulatkan ke bawah data tipe real ke data tipe longint. Round(X:Real): Longint; Trunc(X : Real): Longint;
  • 16. Catatan Kuliah Algoritma dan Struktur Data 16 Record Disusun oleh satu atau lebih field.Tiap field me- nyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama record ditentukan oleh pemrogram. Record disebut juga tipe terstruktur. Bentuk umum dari record adalah: Type <nama record> = record field1 : type1; field2 : type2; ... fieldn : typen; end;
  • 17. Catatan Kuliah Algoritma dan Struktur Data 17 Contoh 1. Jika variabel P dideklarasikan mempunyai tipe Titik maka field yang mengacu pada P adalah P.x dan P.y. Contoh 2. Didefinisikan tipe terstruktur yang mewakili Jam yang dinyatakan sebagai jam(hh), menit(mm) dan detik(ss), maka cara menulis type Jam adalah: Type Titik = record x : real; y : real; end;
  • 18. Catatan Kuliah Algoritma dan Struktur Data 18 Jika variabel J dideklarasikan mempunyai tipe Jam maka cara mengacu tiap field adalah J.hh, J.mm dan J.ss. Operasi terhadap record adalah operasi per elemen, yaitu assignment, baca dan tulis. Akses elemen dari record adalah, <nama record> . <nama filed>. Type JAM = record hh : integer; {0…23} mm : integer; {0…59} ss : integer; {0…59} end;
  • 19. Catatan Kuliah Algoritma dan Struktur Data 19 Array (Larik) Array adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks dari array harus tipe data yang menyatakan keter- urutan misalnya integer atau karakter. Banyaknya elemen array harus sudah diketahui sebelum program dieksekusi. Tipe elemen array dapat berupa tipe sederhana, tipe terstruktur atau tipe array lainnya. Nama lain array adalah Larik. Array satu dimensi disebut dengan vektor dan array dua dimensi disebut tabel.
  • 20. Catatan Kuliah Algoritma dan Struktur Data 20 Bentuk umum dari array satu dimensi adalah: Bentuk umum dari array dua dimensi adalah: Tiga hal yang harus diperhatikan dalam mendeklara- sikan suatu array yaitu, 1. Nama array, 2. Range dari Indeks, 3. Tipe data dari elemen array. Elemen terkecil dari indeks array disebut batas bawah (l) dan elemen terbesar disebut batas atas (u). Jumlah ele- men dalam array disebut range, diberikan oleh ord(u) - ord(l) + 1. Type <nama array> = array[<indeks>] of <tipe>; Type <nama array> = array[<indeks1>,<indeks2>] of <tipe>;
  • 21. Catatan Kuliah Algoritma dan Struktur Data 21 Contoh 3. Definisikan suatu array dengan nama LarikA yang masing-masing elemennya adalah integer dan indeks- nya dari -5 sampai dengan 200. Jika variabel A dideklarasikan sebagai LarikA, maka cara mengacu tiap elemennya adalah A[-5], A[-4], …, A[200]. Contoh 4. Jika variabel A dideklarasikan sebagai LarikB, maka cara mengacu tiap elemennya adalah A[1,1],… A[1,10], …, A[10,1], …, A[10,10]. Type LarikA = Array[-5..200] of integer; Type LarikB = Array[1..10,1..10] of integer;
  • 22. Catatan Kuliah Algoritma dan Struktur Data 22 Contoh 5. Cara mengacu elemen TabMhs adalah TabMhs[2]. Nobp mengacu field Nobp dari elemen kedua dari larik. Sedangkan Write(TabMhs[k].KodeMK); adalah menuliskan field KodeMK dari elemen ke k dari larik. Const Nmaks = 100; Type mahasiswa = Record Nobp : integer; Nama : string; kodeMK : string; nilai : char; end; var TabMhs : Array[1..Nmaks] of Mahasiswa;
  • 23. Catatan Kuliah Algoritma dan Struktur Data 23 Operasi yang dapat dilakukan pada array adalah opera- si per elemen untuk baca dan tulis, assignment, perhi- tungan dan perbandingan yang diakses melalui indeks- nya. Banyaknya indeks menentukan dimensi dari array tersebut. Set (Himpunan) Set adalah kumpulan dari objek-objek. Dalam Pascal objek tersebut harus mempunyai tipe dasar yang sama. Tipe dasar ini adalah sembarang skalar atau tipe enumerasi. Bentuk umum set adalah : Type <nama himpunan> = Set of <tipe>;
  • 24. Catatan Kuliah Algoritma dan Struktur Data 24 Keuntungan menggunakan Set adalah butuh tempat pe- nyimpanan yang sedikit karena representasinya internal dalam bit. Sedangkan kerugiannya adalah anggota dari set tidak dapat dicetak dan hanya dapat dibaca keang- gotaanya. Operasi pada Set adalah assignment (:=), union (+), inter-section (*), different (-), not equal (<>), equal (=), inclution (<=), exclution (>=) dan in. Contoh 6. Jika variabel huruf dideklarasikan sebagai Alfabet, maka salah satu elemennya adalah huruf := [‘a’,’d’]. Sedang himpunan kosong ditulis dengan [ ]. Type Alfabet = Set of Char;
  • 25. Catatan Kuliah Algoritma dan Struktur Data 25 Latihan. Buatlah dalam bahasa pascal : 1. Definisikan sebuah tipe terstruktur untuk menyatakan data nasabah disebuah bank. Data nasabah terdiri atas field Nomor Account, Nama Nasabah, Alamat Nasa- bah, Kota Nasabah, dan Nomor Telpon Nasabah. Un- tuk setiap field definisikan tipe data yang cocok. 2. Dari soal nomor1 buatlah program dalam bahasa pemrog- raman berbasis bahasa Pascal, untuk memasukkan data nasabah sebanyak N, dengan N diinputkan dari papan ketik, kemudian menuliskan kembali semua data nasabah dalam bentuk matrik. Petunjuk: Gunakan notasi pengu- langan untuk menyelesaikan permasalahan tersebut.
  • 26. Catatan Kuliah Algoritma dan Struktur Data 26 TIPE DATA ABSTRAK (ADT) Tipe Data Abstrak (Abstract Data Type) adalah definisi dari tipe dan sekumpulan primitif (operasi dasar) terha- dap tipe tersebut. Tipe diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang bersangkutan, misalnya menjadi record dalam Pascal. Primitif dalam konteks pemrograman prosedural, diterjemahkan menjadi fungsi (function) dan prosedur (procedure).
  • 27. Catatan Kuliah Algoritma dan Struktur Data 27 Primitif dikelompokkan menjadi: 1. Konstruktor / Kreator, untuk pembentuk nilai tipe. Biasanya namanya di awali dengan Make. 2. Selektor, untuk mengakses komponen tipe. Biasanya namanya diawali dengan Get. 3. Prosedur Pengubah Nilai Komponen. 4. Validator komponen tipe, yang dipakai untuk me- nguji apakah dapat membentuk tipe sesuai batasan. 5. Destruktor / Dealokator, yaitu untuk menghancur- kan nilai objek, sekaligus memori penyimpannya. 6. Baca/tulis, untuk interface dengan input/output device.
  • 28. Catatan Kuliah Algoritma dan Struktur Data 28 7. Operator Relasional terhadap tipe tersebut untuk mendefinisikan lebih besar, lebih kecil, sama dengan dan sebagainya. 8. Aritmatika terhadap tipe tersebut, dalam pemrog- raman biasanya hanya terdefinisi untuk bilangan numerik. 9. Konversi dari tipe tersebut ke tipe dasar dan seba- liknya.
  • 29. Catatan Kuliah Algoritma dan Struktur Data 29 Tipe Data Abstrak 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 Selek- tor dan Konstruktor.