sda - adt 2013

52
ABSTRACT DATA TYPE (ADT) 1 STRUKTUR DATA & ALGORITMA MAT30411 Departemen Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Indonesia

Upload: m-galih-primantara

Post on 20-Jan-2016

82 views

Category:

Documents


1 download

DESCRIPTION

atruktur data dan algoritma

TRANSCRIPT

Page 1: Sda - Adt 2013

1

ABSTRACT DATA TYPE (ADT)

STRUKTUR DATA & ALGORITMAMAT30411

Departemen MatematikaFakultas Matematika dan Ilmu Pengetahuan Alam

Universitas Indonesia

Page 2: Sda - Adt 2013

2

PENGERTIAN TIPE DATA

Merupakan jenis data yang mampu ditangani oleh suatu bahasa pemrog-raman pada komputer, tiap-tiap bahasa pemrograman memiliki tipe data.

Tipe data suatu variabel :himpunan nilai yang dapat dimuat oleh variabel tersebut.

Page 3: Sda - Adt 2013

3

Ketika melakukan operasi, kita perlu menjamin operan-operan dan hasilnya adalah tipe data tertentu.

Jika tidak dilakukan maka akan menimbulkan kesalahan.

Page 4: Sda - Adt 2013

4

BEBERAPA TIPE DATA

BooleanCharacter (char)ByteShort IntegerInteger (Int)Long IntegerFloatDouble

Page 5: Sda - Adt 2013

5

TIPE DATA DI JAVA

TIPE DATA KETERANGAN

Byte -128 s/d 127

Short -32.768 s/d 32.767

Int -2.147.483.648 s/d 2.147.483.647

Long -9.223.372.036.854.775.808 s/d 9.223.372.036.854.775.8087

Float 3,4 x 10-38 s/d 3,4 x 1038

Double 1,7 x 10-308 s/d 1,7 x 10308

Char Single character,

Boolean True or false

Page 6: Sda - Adt 2013

6

TIPE BILANGAN REAL

Data yang termasuk bilangan real adalah data angka yang mengandung pecahan.

Data yang seperti ini akan memiliki keterangan jangkauan, jumlah digit penting (berarti) dan ukuran.

Digit berarti ini penting diperhatikan karena ini berhubungan dengan tingkat ketelitian data yang disajikan.

Page 7: Sda - Adt 2013

7

TIPE DATA KARAKTER

Tipe Keterangan

Char Berisi hanya 1 karakter diapit tanda petik (‘ ‘)

String Terdiri dari beberapa karakter (maksimal 255) diapit tanda petik (‘ ‘)

String[x]

Terdiri dari maksimal x karakter diapit tanda petik (‘ ‘)

Page 8: Sda - Adt 2013

8

TIPE DATA BOOLEAN

Tipe Ukuran

Boolean 1 byte

Bool 1 byte

Wordbool 2 byte

LongBool 4 byte

Adalah tipe data yang hanya bernilai benar (true) atau salah (false).

Jangkauan (nilai yang mungkin) hanya 2 yaitu true atau false.

Page 9: Sda - Adt 2013

9

Abstract Data Type (ADT)

ADT adalah suatu model matematika disertai sekumpulan primitif (operasi dasar) terhadap model tersebut.

Type diterjemahkan menjadi type terdefinisi dalam bahasa pemrograman yang bersangkutan, misalnya menjadi record dalam Pascal atau Struct dalam bahasa C.

Page 10: Sda - Adt 2013

10

Primitif dalam konteks pemrograman prosedural, diterjemahkan menjadi fungsi dan prosedur.

Primitif dikelompokkan menjadi :1. Konstruktor/Kreator, pembentuk nilai

type. Biasanya namanya diawali dengan Make.

2. Selektor, untuk mengakses komponen type. Biasanya namanya diawali dengan Get.

Page 11: Sda - Adt 2013

11

3. Prosedur Pengubah nilai komponen4. Validator komponen type, yang

dipakai untuk mengetes apakah dapat membentuk type sesuai batasan.

5. Destruktor/Dealokator, yaitu untuk menghancurkan nilai objek, sekaligus memori penyimpannya

6. Baca/tulis, untuk interface dengan input/output device

Page 12: Sda - Adt 2013

12

7. Operator Relasional terhadap type tersebut untuk mendefinisikan lebih besar, lebih kecil, sama dengan dan sebagainya.

8. Aritmatika terhadap type tersebut, dalam pemrograman biasanya hanya terdefinisi untuk bilangan numerik.

9. Konversi dari type tersebut ke type dasar dan sebaliknya

Page 13: Sda - Adt 2013

13

ADT 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 prekondisi 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 Selektor dan Konstruktor

Page 14: Sda - Adt 2013

14

ADT (Abstract Data Type) atau Tipe Data Bentukan

Bahasa pemrograman bisa memiliki tipe data: Built-in : sudah tersedia oleh bahasa

pemrograman tersebut. Tidak berorientasi pada persoalan yang

dihadapi. UDT : User Defined Type, dibuat oleh

pemrogram. Tipe data yang dibuat sendiri oleh

programer. Contoh: record pada Pascal, struct pada C,

class pada Java.

Page 15: Sda - Adt 2013

15

Contoh UDP

Deklarasi tipe dataprivate type data

nama as stringumur as integer

end typeDeklarasi variabel

dim mahasiswa as data

Page 16: Sda - Adt 2013

16

ADT : Abstract Data Type Tipe data abstrak didefinisikan sebagai model

matematika dari objek data yang membentuk sebuah tipe data,serta fungsi yang beroperasi pada objek-objek ini  (Heilemen, 1996).

Penting untuk mengenali bahwa operasi-operasi yang memanipulasi objek-objek data yang termasuk dalam spesifikasi dari tipe data abstrak.

Terdapat beberapa contoh dari tipe data abstrak, diantaranya adalah Stack, Queue dan List.

Page 17: Sda - Adt 2013

17

Bahasa C memiliki tipe data numerik dan karakter (seperti int, float, char dan lain-lain). Disamping itu juga memiliki tipe data enumerasi dan structure. Bagaimana jika kita ingin membuat tipe data baru?

Untuk pembuatan tipe data baru digunakan keyword typedef

Bentuk umum: typedef <tipe_data_lama> <nama_tipe_data_baru>

Page 18: Sda - Adt 2013

18

MACAM TIPE DATA

A. Tipe data sederhana (simple - data type)

B. Tipe data terstruktur (structured - data type)

C. Tipe data penunjuk (pointer - data type)

Page 19: Sda - Adt 2013

19

TIPE DATA SEDERHANA

Adalah tipe data yang sudah ada dan dijadikan standar dalam bahasa pemrograman tertentu.

Isi dari tipe data sederhana ini adalah data-data tunggal.

Page 20: Sda - Adt 2013

20

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 21: Sda - Adt 2013

21

TIPE DATA TERSTRUKTUR (STRUCTURED - DATA TYPE)

1. ARRAY (LARIK)2. RECORD (REKAMAN)3. FILE4. SET (HIMPUNAN)

Page 22: Sda - Adt 2013

22ARRAY

Larik adalah tipe data yang berisi beberapa data yang ditampung dalam satu variabel yang memiliki tipe data yang sama.

Masing masing data yang tertampung dalam sebuah larik akan ditandai sebagai elemen pertama sampai ke - n.

larik dapat dibuat beberapa dimensi, misalnya untuk menggambarkan matrix kita perlu menggunakan larik 2 dimensi.

Page 23: Sda - Adt 2013

23

RECORD

Tipe data rekaman di gunakan untuk menampung data yang terdiri dari beberapa tipe yang berbeda.

Record dapat diakses (diisi) dan dibaca per elemen record dengan menyebut nama elemennya.

Page 24: Sda - Adt 2013

24

SET / HIMPUNAN

merupakan sebuah tipe data yang didalamnya memuat sejumlah elemen (anggota) dimana anggotanya memiliki tipe data dasar yang sama.

Page 25: Sda - Adt 2013

25

OPERATOR MATEMATIKA

OPERATOR

ARTI PRIORITAS CONTOH

* Kali 1 2 * 3 6

/ Bagi (Real) 1 7 / 2 3.5

DIV Bagi (Bulat) 1 7 DIV 2 3

MOD Sisa Bagi 1 7 MOD 2 1

+ Tambah 2 2 + 3 5

- Kurang 2 2 – 3 -1

Page 26: Sda - Adt 2013

26

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 27: Sda - Adt 2013

27

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

ditentukanStatement untuk mendefinisikan jenis data

disebut declarative statement

Page 28: Sda - Adt 2013

28

CONT…

Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda

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

Page 29: Sda - Adt 2013

29

CONTOH

Constantspi = 3.141592654

Variablesi, qty : integer

harga_satuan : realstatus : booleannama : character(25)

Page 30: Sda - Adt 2013

30

VARIABEL

Adalah sebuah nama yang kita ciptakan untuk menyimpan nilai suatu data.

Data yang disimpan dalam variable dapat digunakan secara berulang-ulang untuk proses selanjutnya.

Page 31: Sda - Adt 2013

31

CONT…

Dalam pemberian nama variabel, tidak boleh menggunakan spasi atau karakter-karakter khusus.

Tidak boleh diawali dengan angka.Tidak boleh menggunakan keyword java.

Page 32: Sda - Adt 2013

32

CONTOH VARIABEL

Variabel luas yang digunakan untuk menyimpan data luas lingkaran.

Variabel keliling untuk menyimpan data keliling lingkaran.

Page 33: Sda - Adt 2013

33

Cont…

Bila sebuah variabel bertipe integer maka variabel tersebut memiliki nilai berjenis bilangan bulat.

Pengisian nilai variabel dengan tipe data yang berbeda dengan jenis data yang sudah ditentukan akan menimbulkan error.

Page 34: Sda - Adt 2013

34

Contoh

Dalam pemrograman java:

class Introduction{ public statitc void main(String args[]) { byte x=50.5; System.out.println(“Nilai dari variabel x= “+x); }}

ERRORMENGAPA???

Page 35: Sda - Adt 2013

35

Cont…

Dalam menentukan tipe data dari sebuah variabel perlu memperhatikan kemungkinan besarnya nilai yang akan disimpan dalam variabel tersebut agar diperoleh hasil yang benar.

Page 36: Sda - Adt 2013

36

KOMPONEN DATA

CharacterFieldRecordFile Database

Page 37: Sda - Adt 2013

37

CHARACTER

merupakan bagian data yang terkecil, dapat berupa karakter numerik, huruf ataupun karakter-karakter khusus yang membentuk suatu item data / field.

Page 38: Sda - Adt 2013

38

FIELD

merepresentasikan suatu atribut dari record yang menunjukkan suatu item dari data, seperti misalnya nama, alamat dan lain sebagainya. Kumpulan dari field membentuk suatu record. field name: harus diberi nama untuk

membedakan field yang satu dengan lainnya field representation: tipe field (karakter, teks,

tanggal, angka, dsb), lebar field (ruang maksimum yang dapat diisi dengan karakter-karakter data).

field value: isi dari field untuk masing-masing record.

Page 39: Sda - Adt 2013

39

RECORD

Kumpulan dari field membentuk suatu record.

Record menggambarkan suatu unit data individu yang tertentu. Kumpulan dari record membentuk suatu file. Misalnya file personalia, tiap-tiap record dapat mewakili data tiap-tiap karyawan.

Page 40: Sda - Adt 2013

40

FILE

File terdiri dari record-record yang menggambarkan satu kesatuan data yang sejenis. Misalnya file mata pelajaran berisi data tentang semua mata pelajaran yang ada.

Page 41: Sda - Adt 2013

41

DATABASE

Kumpulan dari file / tabel membentuk suatu basis data

Page 42: Sda - Adt 2013

42

SOAL 1:

char pokok; double sukubunga; double bunga;  

pokok = 20000; sukubunga = 0.10; bunga = pokok * sukubunga;   pokok = pokok + bunga;   System.out.print("Bunga yang dihasilkan adalah Rp. "); System.out.println(bunga); System.out.print("Nilai investasi setelah 1 tahun adalah Rp. "); System.out.println(pokok);  

Page 43: Sda - Adt 2013

43

SOAL 2:

class ContohByte {public static void main(String [] args){byte a;byte b;byte c;a=129;b=-65;c=a+b;System.out.println(c);}}

Page 44: Sda - Adt 2013

44

SOAL 3:

double pi = 3.1416;double r = 2.12;double keliling;keliling = 2*pi*r;System.out.println(“Keliling Lingkaran = ”+ keliling);

Page 45: Sda - Adt 2013

45

Definisi

Abstract Data Type (ADT), atau Tipe Data Abstrak (TDA) adalah definisi tipe dan sekumpulan primitif (operasi dasar) terhadap tipe tersebut.

Tipe ini biasanya merupakan suatu obyek nyata tetapi cara merepresentasikannya harus dilakukan dengan cara yang lain/abstrak.

Primitif (operasi dasar) menentukan karakteristik dari ADT tersebut.

Page 46: Sda - Adt 2013

46

Contoh #1

GARISGaris (lurus) adalah jarak terpendek antara dua buah titik.ADT GARIS didefinisikan dengan dua buah titik (POINT), yaitu kedua titik ujung garis tersebut.

(12, 10)

(1, 2)

Page 47: Sda - Adt 2013

47

Primitif (operasi dasar) terhadap ADT GARIS misalnya:Panjang menghitung panjang garisSetPAw menentukan titik awaSetPakh menentukan titik akhir

Page 48: Sda - Adt 2013

48

Contoh #2

WAKTU (TIME)WAKTU (Time) terdiri atas informasi JAM, MENIT dan DETIKADT JAM didefinisikan dengan nilai-niai JAM, MENIT dan DETIK dengan ketentuan masing-masing bahwa 1 jam=60 menit, 1 menit = 60 detik.

Page 49: Sda - Adt 2013

49

Primitif (operasi dasar) untuk ADT JAM antara lain:TulisJam output dalam bentuk JJ:MM:DDJamToDetik mengubah ke jumlah waktu dalam detikDetikToJam mengubah ke jumlah waktu dalam jam

Page 50: Sda - Adt 2013

50

Coba Definisikan

ADT SEGIEMPAT ?

ADT LINGKARAN ?

ADT BALOK ?

ADT PESAWAT ?

Page 51: Sda - Adt 2013

51

Primitif

Konstruktor/Creator pembentuk nilai. Namanya biasanya diawai dengan kata MAKE

Selektor untuk mengakses komponen tipe. Namanya biasanya diawali dengan kata GET.

Prosedur pengubah nilai komponen. Namanya biasanya diawali dengan kata SET.

Validator untuk mengetes apakah dapat membentuk tipe sesuai dengan batasan.

Destruktor/Dealokator untuk menghancurkan nilai obyek sekaligus dengan memorinya.

Page 52: Sda - Adt 2013

52

Primitif

Baca/Tulis untuk interface dengan input/output device.

Operator relational melakukan perbandingan.Aritmetika terhadap tipe.Konversi tipe.