sda - adt 2013

Post on 20-Jan-2016

84 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

atruktur data dan algoritma

TRANSCRIPT

1

ABSTRACT DATA TYPE (ADT)

STRUKTUR DATA & ALGORITMAMAT30411

Departemen MatematikaFakultas Matematika dan Ilmu Pengetahuan Alam

Universitas Indonesia

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.

3

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

Jika tidak dilakukan maka akan menimbulkan kesalahan.

4

BEBERAPA TIPE DATA

BooleanCharacter (char)ByteShort IntegerInteger (Int)Long IntegerFloatDouble

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

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.

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 (‘ ‘)

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.

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.

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.

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

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

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

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.

15

Contoh UDP

Deklarasi tipe dataprivate type data

nama as stringumur as integer

end typeDeklarasi variabel

dim mahasiswa as data

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.

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>

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)

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.

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

21

TIPE DATA TERSTRUKTUR (STRUCTURED - DATA TYPE)

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

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.

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.

24

SET / HIMPUNAN

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

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

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

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

28

CONT…

Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda

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

29

CONTOH

Constantspi = 3.141592654

Variablesi, qty : integer

harga_satuan : realstatus : booleannama : character(25)

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.

31

CONT…

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

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

32

CONTOH VARIABEL

Variabel luas yang digunakan untuk menyimpan data luas lingkaran.

Variabel keliling untuk menyimpan data keliling lingkaran.

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.

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???

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.

36

KOMPONEN DATA

CharacterFieldRecordFile Database

37

CHARACTER

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

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.

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.

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.

41

DATABASE

Kumpulan dari file / tabel membentuk suatu basis data

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);  

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);}}

44

SOAL 3:

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

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.

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)

47

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

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.

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

50

Coba Definisikan

ADT SEGIEMPAT ?

ADT LINGKARAN ?

ADT BALOK ?

ADT PESAWAT ?

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.

52

Primitif

Baca/Tulis untuk interface dengan input/output device.

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

top related