People Innovation Excellence
 

Tipe Data Abstrak

Dalam artikel sebalumnya dijabarkan tentang tipe data, baik dari sisi kelas maupun level abstraksinya. Pada bagian ini akan diberikan penjelasan contoh abstraksi tipe data dengan C sebagai bahasa pemrogramannya.

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 di antara 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) di dalam 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 dari awal dan kedua dari akhir bertukar tempat, demikian seterusnya.

Dengan memilih bahasa C sebagai bahasa yang akan digunakan untuk penulisan program, maka representasi dan implementasinya 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];
};

Referensi :

Daniel F.Stubbs & Neil W. Webre (1985), Data Structure with Abstract Data Types and Pascal, Book / Cole Publishing Company.

Paul J. Deitel. (2016). C how to program : with an introduction to C++. 08. Pearson Education. Hoboken. ISBN: 9780133976892


Published at : Updated
Leave Your Footprint

    Periksa Browser Anda

    Check Your Browser

    Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

    Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

    Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

    Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

    We're Moving Forward.

    This Site Is No Longer Supporting Out-of Date Browser.

    If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

    Best viewed with one of these browser instead. It is totally free.

    1. Google Chrome
    2. Mozilla Firefox
    3. Opera
    4. Internet Explorer 9
    Close