SlideShare a Scribd company logo
2
Most read
8
Most read
21
Most read
Tipe Data Abstract
Abstract Data Type (ADT)
Pengantar
• Tipe data dapat kaji dari sisi kelas maupun level abstraksinya.
Terdapat dua kelas tipe data kalau kita lihat dari kompleksitasnya,
yaitu :
• Tipe data atomik
Tipe data yang dipandang sebagai satu kesatuan tunggal dan tidak
dapat dipecah-pecah lagi (nondecomposible entity).
Contoh : Integer, Char, float/real.
• Tipe data berstruktur
Tipe data yang dipandang sebagai satu kesatuan tunggal dan dapat
dipecah-pecah lagi(decomposable entity ).
Contoh : Array, Struct/Record, dll.
Sedangkan atas level abstraksinya, tipe data dapat dikelompokkan ke
dalam tiga level, yaitu :-
• Tipe data abstrak/ADT
Tipe data yang merupakan hasil imajinasi kita dengan memberikan
beberapa batasan domain maupun operasinya.
Contoh : usia, daftarnilai.-
• Tipe data virtual
Tipe data yang ada/dikenal oleh bahasapemrograman.
Contoh : integer, array of integer.
• Tipe data fisikal
Tipe data yang nyata dalam main processor.
Defenisi
• ADT adalah definisi dari TYPE dan sekumpulan operasi dasar (PRIMITIF)
dari TYPE tersebut
• Definisi TYPE dari sebuah ADT dapat mengandung definisi ADT lainnya.
Contoh:
ADT WAKTU terdiri atas ADT JAM dan ADT DATE
ADT GARIS memiliki dua buah TITIK
• TYPE diterjemahkan menjadi data type yang terdefinisi sesuai bahasa
pemrograman, misalnya struct dalam C, record dalam Pascal, class dalam
C++/Java
• PRIMITIF, dalam konteks prosedural, diterjemahkan sebagai fungsi atau
prosedur
PRIMITIF dikelompokkan menjadi:
• Constructor/Creator, pembentuk nilai awal (inisialisasi). Biasanya diawali
dengan make.
• Selector/Accessor, untuk mengakses komponen ADT. Biasanya diawali
dengan get.
• Mutator, prosedur pengubah nilai komponen. Biasanya diawali dengan set.
• Validator, penguji apakah nilai type sesuai batasan.
• Destructor/Deallocator, untuk menghapus nilai obyek, sekaligus lokasi
memori penyimpanannya
• Read/Write, untuk antar-muka dengan input/output devices.
• Relational Operator, untuk mendefinisikan hubungan relasi lebih besar,
lebih kecil, dsb.
• Arithmetic, karena biasanya operasi aritmatika hanya terdefinisi untuk
bilangan numerik, bukan obyek sesuai ADT yang ada.
• Convert, untuk konversi ke tipe data dasar, atau sebaliknya
Modul Program
• Modul pada bahasa pemrograman berorientasi objek,
diimplementasikan dengan kelas dengan sekumpulan
layanan berupa metode publik yang dapat dipanggil oleh
pemakai kelas
• Pada bahasa prosedural, modul diimplementasikan sebagai
struktur, dan sekumpulan operasi berupa prosedur dan
fungsi yang dipanggil pemakai modul lewat pemanggilan
prosedur dan fungsi.
Abstraksi Data (ADT)
Persoalan abstraksi data, yaitu :
• Struktur data seharusnya menjadi satu bagian internal yang
tersembunyi
• Pemakai modul tidak perlu mengetahui struktur data yang digunakan
untuk mengimplementasikan suatu modul
• Pemakai modul hanya diberikan gambaran perilaku, bukan struktur
internal dari modul
• Fokus pada prilaku objek, membentuk basis pemrograman
berorientasi objek.
• Abstraksi data memungkinkan kitamemperluas bahasa pemrograman
dengan tipe data baru
• Abstraksi data memungkinkan kita mengabstraksikan rincian rincian
cara data diimplementasikan, menjadi bagaimana objek-objek
berprilaku
• Abstraksi data berisi sekumpulan objek
• Abstraksi data pada prinsipnya merupakan dasar pemrograman
berorientasi objek(Object Oriented Programming /OOP)
Pengertian
• ADT adalah kumpulan nilai dan kumpulan operasi yang diizinkan
• ADT memungkinkan pendefinisian suatu himpunan nilai di variable
disertai operasi-operasi yang izinkan padanya
• ADT menyatakan prilaku suatu variabel.
ADT biasanya diimplementasikan menjadi dua modul:
• Definisi/Spesifikasi dari TYPE dan PRIMITIF
• Spesifikasi TYPE sesuai bahasa
• Spesifikasi PRIMITIF sesuai konteks (fungsi ataukah prosedur)
• Body, berupa kode program
Supaya ADT dapat diuji tuntas, maka harus dilengkapi dengan program
utama yang mengandung pemakaian (call) terhadap setiap PRIMITIF
dalam ADT. Disebut sebagai DRIVER.
ADT dalam bahasa Pemrograman
Realisasi ADT dalam beberapa bahasa pemrograman
BAHASA SPESIFIKASI BODY
PASCAL Unit Interface Implementasi
C File header *.h File kode program (*.c)
C++ File header *.h File kode program
(*.cpp)
JAVA Class Public Class
ADT dalam Struktur Data
• Sering terjadi salah pengertian antara ADT dan Struktur Data.
• Struktur data lebih kongkret, merupakan teknik atau strategi untuk
mengimplementasikan sebuah ADT (ADT lebih merupakan deskripsi logika)
• Struktur data merupakan cara membentuk, mengkonstruksi,
mengaransemen, mengkomposisikan ataupun mengorganisasikan data
(ADT)
• ADT: stack, queue, priority queue, dictionary, sequence, set
• Struktur Data: array, linked list, hash table (open, closed, circular hashing),
trees (binary search trees, heaps, AVL trees, 2-3 trees, tries, red/black
trees, B-trees)
Contoh Kasus
Diketahui kumpulan bilangan bulat (1 s/d 1000) sebanyak maksimum
107 bilangan. Selanjutnya, buat program untuk mencari apakah suatu
nilai bilangan ada ataukah tidak ada di dalam kumpulan data tersebut.
• Contoh input : 5 9 8 7 6 8 7 6 2 3 4 5 1 -9 4 7 9 10 3
• Contoh output
7 ada
9 ada
10 tidak ada
3 ada
Solusi
• Alternatif 1 (indeks array terlalu besar, error)
1. Baca semua data dan masukkan ke dalam array
2. Sort
3. Search
• Alternatif 2 (optimum)
1. Karena nilai data bulat 1-1000, maka buat indeks array sebanyak 1000 (0-
999)
2. Baca data, dan isi nilai 1 ke array dengan indeks=data-1
Bagaimana kalau bilangan yang diketahui adalah riil (bukan bulat)? Tidak dapat
menggunakan Alternatif 2.
• Pada kasus ini, duplikasi bilangan tidak berpengaruh, sehingga sangat baik kalau
kumpulan bilangan tersebut direpresentasikan sebagai suatu himpunan (set).
Oleh karena itu, dapat menggunakan ADT set
Tujuan ADT
• ADT memisah struktur penyimpanan (lokasi memori) dari perilaku.
• ADT menyembunyikan informasi (information hiding) atau
pengkapsulan (encapsulation), yaitu :
• Perubahan implementasi ADT tidak mengubah teksprogram lain
bila antarmuka (interface) tidakberubah
• Pemakaian dan pembuatan ADT dapat dilakukan terpisah, hanya
perlu kesepakatan antarmuka pemakaian ADT
• ADT merupakan sarana pemrograman modular dan menjadi landasan
pembentukan tim pemrograman
• ADT merupakan sarana untuk membuat modul-modul yang
menyerupai dengan konsep-konsep yang ditemukan pada domain
persoalan
• Pada sistem akademik ditemukan konsep student, lecturer, room dll
• Maka dapat dibuat ADT student, ADTlecturer, ADT Room dsb, yang
serupa namanya dengan konsep konsep yang dijumpai pada domain
persoalan.
Pembuatan ADT
Tahap pembuatan ADT :
•Spesifikasi
•Implementasi
•Pemrograman
Contoh
Spesifikasi untuk tipe data abstrak letterstring :
• Elements : Nilai elemennya adalah karakter ‘a’-’z’,’A’-’Z’, dan termasuk
juga spasi. Kita sebut nilai-nilai tersebut sebagai kumpulan
karakter(letters).
• Structure : Terdapat hubungan secara linear diantara elemen letters di
dalam suatu string.
• Domain : letterstring berisi 0 sampai 80 karakter.Domain dari tipe
letterstring adalah seluruh kemungkinan nilai yang memenuhi aturan-
aturan tersebut.
Operations:letter
leftletter( letterstring s)
Kondisi awal :Jumlah karakter input s minimal 1.
Kondisi akhir :leftletter berisi karakter awal (paling kiri) didalam string s.
append( letter l; letterstring s)
Kondisi awal : Jumlah karakter input s kurang dari 80.
Kondisi akhir :String s lebih panjang dibandingkan sebelumnya, dan isi l
adalah karakter terbaru dan berada paling kanan di dalam s.
Boolean empty( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Jika s tidak berisi satupun karakter maka empty bernilai true
selain itu empty bernilai false.
• Boolean full( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Jika s berisi 80 karakter maka full bernilai true selain itu full
bernilai false.
• reverse( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Urutan dari isi s dibalik, sehingga elemen pertama dan terakhir
bertukar tempat, elemen kedua daria wal dan kedua dari akhir bertukar
tempat, demikian seterusnya.
Dengan memilih bahasa C sebagai bahasa yang akandigunakan untuk
penulisan program, maka representasi danimplementasinya adalah sebagai
berikut :
Representation
struct letterstring {
int n;
letter str[80];
};
Implementation
int empty( letterstring s ) {
if (s.n<1) return(1); else return(0);
};
int full( letterstring s ) {
if (s.n>=80) return(1); else return(0);
};
void append( letter l; letterstring *s) {
if (s.n<80)
s.str[++s.n] = l;
};
letter leftletter( letterstring s) {
if (s.n>0)
return(s.str[0] );
};
void reverse ( letterstring *s ) {
int i; letterstring temp;
for(i=0;i<80;i++) temp.str[i] = temp.str[80-i+1];
for(i=0;i<80;i++) s.str[i] = temp.str[i];
};

More Related Content

PPTX
Materi : Struktur Data (1 Pengantar)
PPT
Pertemuan 10
PDF
5. Doubly Linked List (Struktur Data)
PPTX
Logika matematika pertemuan 2 (inferensi)
PPT
Algoritma penjadwalan proses
DOCX
Tugas mandiri struktur data
PPTX
Aritmatika dan statistika ms. excel
PPT
Bab 2 perhitungan galat
Materi : Struktur Data (1 Pengantar)
Pertemuan 10
5. Doubly Linked List (Struktur Data)
Logika matematika pertemuan 2 (inferensi)
Algoritma penjadwalan proses
Tugas mandiri struktur data
Aritmatika dan statistika ms. excel
Bab 2 perhitungan galat

What's hot (20)

PPT
Modul 3 pencarian heuristik
PDF
Matematika Diskrit - 11 kompleksitas algoritma - 03
PDF
Analisis Algoritma Pada Masalah Sorting
PPT
Modul 4 representasi pengetahuan
PPT
Metode pencarian heuristik
PPTX
aritmatika komputer
PPTX
Sistem berkas dan keamana data
PPTX
Efisiensi algoritma
PDF
Matematika Diskrit - 10 pohon - 04
PPTX
Materi 6. perulangan
PDF
Analisis Algoritma - Strategi Algoritma Dynamic Programming
PPT
Notasi prefix infix-postifx- expression tree
DOCX
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
PPTX
Pohon(tree) matematika diskrit
PDF
Data Mining - Naive Bayes
ODP
Mata Kuliah Basis Data
PPT
Basis data rumah sakit (sinta,santi,roby)
PPT
Struktur Data Tree
PDF
02.logika
PDF
Logika dan Pembuktian
Modul 3 pencarian heuristik
Matematika Diskrit - 11 kompleksitas algoritma - 03
Analisis Algoritma Pada Masalah Sorting
Modul 4 representasi pengetahuan
Metode pencarian heuristik
aritmatika komputer
Sistem berkas dan keamana data
Efisiensi algoritma
Matematika Diskrit - 10 pohon - 04
Materi 6. perulangan
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Notasi prefix infix-postifx- expression tree
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Pohon(tree) matematika diskrit
Data Mining - Naive Bayes
Mata Kuliah Basis Data
Basis data rumah sakit (sinta,santi,roby)
Struktur Data Tree
02.logika
Logika dan Pembuktian
Ad

Similar to Tipe data abstract (20)

PPT
Kontrak Perkuliahan
PPT
Kontrak Perkuliahan
PPTX
Tipe Data dalam struktur data semester 2
PDF
pengenalan dasar algoritma dan struktur data
PPT
Struktur Data Pengantar Muhammad Junaid 2021020064.ppt
PPTX
4. tipe data dan operator java
PPTX
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
PPTX
representasi tipe data dalam pemrograman.pptx
PPTX
Sd pertemuan 1 & 2
PPTX
Sd pertemuan 1 & 2
PPTX
Sd pertemuan 1 & 2
PPTX
Sd pertemuan 1 & 2
PPTX
STRUKTUR DATA
PPTX
Struktur data pertemuan 1 & 2
PPTX
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
PPTX
Informatika_Memahami-Informatika-dan-Elemen-Berpikir-Komputasional.pptx
DOCX
Bab ii tipe data abstrak
DOC
(Adam nelvin) quiz dan jawaban teori algo dan struktur data
PDF
Topik 11 Pengenalan Konsep
PPTX
Sd bab 1 (pengantar struktur data)
Kontrak Perkuliahan
Kontrak Perkuliahan
Tipe Data dalam struktur data semester 2
pengenalan dasar algoritma dan struktur data
Struktur Data Pengantar Muhammad Junaid 2021020064.ppt
4. tipe data dan operator java
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
representasi tipe data dalam pemrograman.pptx
Sd pertemuan 1 & 2
Sd pertemuan 1 & 2
Sd pertemuan 1 & 2
Sd pertemuan 1 & 2
STRUKTUR DATA
Struktur data pertemuan 1 & 2
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
Informatika_Memahami-Informatika-dan-Elemen-Berpikir-Komputasional.pptx
Bab ii tipe data abstrak
(Adam nelvin) quiz dan jawaban teori algo dan struktur data
Topik 11 Pengenalan Konsep
Sd bab 1 (pengantar struktur data)
Ad

Recently uploaded (20)

DOCX
Modul Ajar Deep Learning PKN Kelas 10 SMA Terbaru 2025
DOCX
CONTOH RANCANGAN MODUL PROYEK KOKURIKULER SMA 1.docx
DOCX
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
PDF
Materi Seminar AITalks: AI dan Konseling GPT
PPTX
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
PDF
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
PPTX
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
PDF
lembar kerja LMS tugas pembelajaran mendalam
PDF
KASUS_INKUIRI_KOLABORATIF_KELAS_BAWAH-ISI-ARNI.pdf
PPTX
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
PDF
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
PDF
INSTRUMEN IMPLEMENTASI DAN REFLEKSI PERENCANAAN PEMBELAJARAN-ARNI.pdf
PPTX
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
PPTX
Bahan Tayang OJT Pembelajaran Mendalam KS
DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025
PDF
Lembar Kerja Mahasiswa Konsep Sistem Operasi
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Tari Kelas XII Terbaru 2025
DOCX
Lembar Kerja Mahasiswa Information System
PDF
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
PPTX
Bahan Presentasi Persamaan Elips .pptx
Modul Ajar Deep Learning PKN Kelas 10 SMA Terbaru 2025
CONTOH RANCANGAN MODUL PROYEK KOKURIKULER SMA 1.docx
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
Materi Seminar AITalks: AI dan Konseling GPT
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
lembar kerja LMS tugas pembelajaran mendalam
KASUS_INKUIRI_KOLABORATIF_KELAS_BAWAH-ISI-ARNI.pdf
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
INSTRUMEN IMPLEMENTASI DAN REFLEKSI PERENCANAAN PEMBELAJARAN-ARNI.pdf
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
Bahan Tayang OJT Pembelajaran Mendalam KS
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025
Lembar Kerja Mahasiswa Konsep Sistem Operasi
Modul Ajar Pembelajaran Mendalam Senbud Seni Tari Kelas XII Terbaru 2025
Lembar Kerja Mahasiswa Information System
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
Bahan Presentasi Persamaan Elips .pptx

Tipe data abstract

  • 1. Tipe Data Abstract Abstract Data Type (ADT)
  • 2. Pengantar • Tipe data dapat kaji dari sisi kelas maupun level abstraksinya. Terdapat dua kelas tipe data kalau kita lihat dari kompleksitasnya, yaitu : • Tipe data atomik Tipe data yang dipandang sebagai satu kesatuan tunggal dan tidak dapat dipecah-pecah lagi (nondecomposible entity). Contoh : Integer, Char, float/real. • Tipe data berstruktur Tipe data yang dipandang sebagai satu kesatuan tunggal dan dapat dipecah-pecah lagi(decomposable entity ). Contoh : Array, Struct/Record, dll.
  • 3. Sedangkan atas level abstraksinya, tipe data dapat dikelompokkan ke dalam tiga level, yaitu :- • Tipe data abstrak/ADT Tipe data yang merupakan hasil imajinasi kita dengan memberikan beberapa batasan domain maupun operasinya. Contoh : usia, daftarnilai.- • Tipe data virtual Tipe data yang ada/dikenal oleh bahasapemrograman. Contoh : integer, array of integer. • Tipe data fisikal Tipe data yang nyata dalam main processor.
  • 4. Defenisi • ADT adalah definisi dari TYPE dan sekumpulan operasi dasar (PRIMITIF) dari TYPE tersebut • Definisi TYPE dari sebuah ADT dapat mengandung definisi ADT lainnya. Contoh: ADT WAKTU terdiri atas ADT JAM dan ADT DATE ADT GARIS memiliki dua buah TITIK • TYPE diterjemahkan menjadi data type yang terdefinisi sesuai bahasa pemrograman, misalnya struct dalam C, record dalam Pascal, class dalam C++/Java • PRIMITIF, dalam konteks prosedural, diterjemahkan sebagai fungsi atau prosedur
  • 5. PRIMITIF dikelompokkan menjadi: • Constructor/Creator, pembentuk nilai awal (inisialisasi). Biasanya diawali dengan make. • Selector/Accessor, untuk mengakses komponen ADT. Biasanya diawali dengan get. • Mutator, prosedur pengubah nilai komponen. Biasanya diawali dengan set. • Validator, penguji apakah nilai type sesuai batasan. • Destructor/Deallocator, untuk menghapus nilai obyek, sekaligus lokasi memori penyimpanannya • Read/Write, untuk antar-muka dengan input/output devices. • Relational Operator, untuk mendefinisikan hubungan relasi lebih besar, lebih kecil, dsb. • Arithmetic, karena biasanya operasi aritmatika hanya terdefinisi untuk bilangan numerik, bukan obyek sesuai ADT yang ada. • Convert, untuk konversi ke tipe data dasar, atau sebaliknya
  • 6. Modul Program • Modul pada bahasa pemrograman berorientasi objek, diimplementasikan dengan kelas dengan sekumpulan layanan berupa metode publik yang dapat dipanggil oleh pemakai kelas • Pada bahasa prosedural, modul diimplementasikan sebagai struktur, dan sekumpulan operasi berupa prosedur dan fungsi yang dipanggil pemakai modul lewat pemanggilan prosedur dan fungsi.
  • 7. Abstraksi Data (ADT) Persoalan abstraksi data, yaitu : • Struktur data seharusnya menjadi satu bagian internal yang tersembunyi • Pemakai modul tidak perlu mengetahui struktur data yang digunakan untuk mengimplementasikan suatu modul • Pemakai modul hanya diberikan gambaran perilaku, bukan struktur internal dari modul • Fokus pada prilaku objek, membentuk basis pemrograman berorientasi objek.
  • 8. • Abstraksi data memungkinkan kitamemperluas bahasa pemrograman dengan tipe data baru • Abstraksi data memungkinkan kita mengabstraksikan rincian rincian cara data diimplementasikan, menjadi bagaimana objek-objek berprilaku • Abstraksi data berisi sekumpulan objek • Abstraksi data pada prinsipnya merupakan dasar pemrograman berorientasi objek(Object Oriented Programming /OOP)
  • 9. Pengertian • ADT adalah kumpulan nilai dan kumpulan operasi yang diizinkan • ADT memungkinkan pendefinisian suatu himpunan nilai di variable disertai operasi-operasi yang izinkan padanya • ADT menyatakan prilaku suatu variabel.
  • 10. ADT biasanya diimplementasikan menjadi dua modul: • Definisi/Spesifikasi dari TYPE dan PRIMITIF • Spesifikasi TYPE sesuai bahasa • Spesifikasi PRIMITIF sesuai konteks (fungsi ataukah prosedur) • Body, berupa kode program Supaya ADT dapat diuji tuntas, maka harus dilengkapi dengan program utama yang mengandung pemakaian (call) terhadap setiap PRIMITIF dalam ADT. Disebut sebagai DRIVER.
  • 11. ADT dalam bahasa Pemrograman Realisasi ADT dalam beberapa bahasa pemrograman BAHASA SPESIFIKASI BODY PASCAL Unit Interface Implementasi C File header *.h File kode program (*.c) C++ File header *.h File kode program (*.cpp) JAVA Class Public Class
  • 12. ADT dalam Struktur Data • Sering terjadi salah pengertian antara ADT dan Struktur Data. • Struktur data lebih kongkret, merupakan teknik atau strategi untuk mengimplementasikan sebuah ADT (ADT lebih merupakan deskripsi logika) • Struktur data merupakan cara membentuk, mengkonstruksi, mengaransemen, mengkomposisikan ataupun mengorganisasikan data (ADT) • ADT: stack, queue, priority queue, dictionary, sequence, set • Struktur Data: array, linked list, hash table (open, closed, circular hashing), trees (binary search trees, heaps, AVL trees, 2-3 trees, tries, red/black trees, B-trees)
  • 13. Contoh Kasus Diketahui kumpulan bilangan bulat (1 s/d 1000) sebanyak maksimum 107 bilangan. Selanjutnya, buat program untuk mencari apakah suatu nilai bilangan ada ataukah tidak ada di dalam kumpulan data tersebut. • Contoh input : 5 9 8 7 6 8 7 6 2 3 4 5 1 -9 4 7 9 10 3 • Contoh output 7 ada 9 ada 10 tidak ada 3 ada
  • 14. Solusi • Alternatif 1 (indeks array terlalu besar, error) 1. Baca semua data dan masukkan ke dalam array 2. Sort 3. Search • Alternatif 2 (optimum) 1. Karena nilai data bulat 1-1000, maka buat indeks array sebanyak 1000 (0- 999) 2. Baca data, dan isi nilai 1 ke array dengan indeks=data-1 Bagaimana kalau bilangan yang diketahui adalah riil (bukan bulat)? Tidak dapat menggunakan Alternatif 2. • Pada kasus ini, duplikasi bilangan tidak berpengaruh, sehingga sangat baik kalau kumpulan bilangan tersebut direpresentasikan sebagai suatu himpunan (set). Oleh karena itu, dapat menggunakan ADT set
  • 15. Tujuan ADT • ADT memisah struktur penyimpanan (lokasi memori) dari perilaku. • ADT menyembunyikan informasi (information hiding) atau pengkapsulan (encapsulation), yaitu : • Perubahan implementasi ADT tidak mengubah teksprogram lain bila antarmuka (interface) tidakberubah • Pemakaian dan pembuatan ADT dapat dilakukan terpisah, hanya perlu kesepakatan antarmuka pemakaian ADT • ADT merupakan sarana pemrograman modular dan menjadi landasan pembentukan tim pemrograman
  • 16. • ADT merupakan sarana untuk membuat modul-modul yang menyerupai dengan konsep-konsep yang ditemukan pada domain persoalan • Pada sistem akademik ditemukan konsep student, lecturer, room dll • Maka dapat dibuat ADT student, ADTlecturer, ADT Room dsb, yang serupa namanya dengan konsep konsep yang dijumpai pada domain persoalan.
  • 17. Pembuatan ADT Tahap pembuatan ADT : •Spesifikasi •Implementasi •Pemrograman
  • 18. Contoh Spesifikasi untuk tipe data abstrak letterstring : • Elements : Nilai elemennya adalah karakter ‘a’-’z’,’A’-’Z’, dan termasuk juga spasi. Kita sebut nilai-nilai tersebut sebagai kumpulan karakter(letters). • Structure : Terdapat hubungan secara linear diantara elemen letters di dalam suatu string. • Domain : letterstring berisi 0 sampai 80 karakter.Domain dari tipe letterstring adalah seluruh kemungkinan nilai yang memenuhi aturan- aturan tersebut.
  • 19. Operations:letter leftletter( letterstring s) Kondisi awal :Jumlah karakter input s minimal 1. Kondisi akhir :leftletter berisi karakter awal (paling kiri) didalam string s. append( letter l; letterstring s) Kondisi awal : Jumlah karakter input s kurang dari 80. Kondisi akhir :String s lebih panjang dibandingkan sebelumnya, dan isi l adalah karakter terbaru dan berada paling kanan di dalam s. Boolean empty( letterstring s ) Kondisi awal :Tidak ada. Kondisi akhir :Jika s tidak berisi satupun karakter maka empty bernilai true selain itu empty bernilai false.
  • 20. • Boolean full( letterstring s ) Kondisi awal :Tidak ada. Kondisi akhir :Jika s berisi 80 karakter maka full bernilai true selain itu full bernilai false. • reverse( letterstring s ) Kondisi awal :Tidak ada. Kondisi akhir :Urutan dari isi s dibalik, sehingga elemen pertama dan terakhir bertukar tempat, elemen kedua daria wal dan kedua dari akhir bertukar tempat, demikian seterusnya. Dengan memilih bahasa C sebagai bahasa yang akandigunakan untuk penulisan program, maka representasi danimplementasinya adalah sebagai berikut :
  • 21. Representation struct letterstring { int n; letter str[80]; }; Implementation int empty( letterstring s ) { if (s.n<1) return(1); else return(0); }; int full( letterstring s ) { if (s.n>=80) return(1); else return(0); };
  • 22. void append( letter l; letterstring *s) { if (s.n<80) s.str[++s.n] = l; }; letter leftletter( letterstring s) { if (s.n>0) return(s.str[0] ); }; void reverse ( letterstring *s ) { int i; letterstring temp; for(i=0;i<80;i++) temp.str[i] = temp.str[80-i+1]; for(i=0;i<80;i++) s.str[i] = temp.str[i]; };