sda - adt 2013
Post on 20-Jan-2016
84 Views
Preview:
DESCRIPTION
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