Diktat_Prosedural_13_StudiKasus

Walaupun penyisipan selalu terjadi pada akhir elemen

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: kan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Representasi BERKAIT Posisi Kemunculan, Representasi KONTIGU Huruf Salah satu keberatan dari pemilihan struktur matriks di atas adalah harus mengetahui jumlah karakter pada pita yang maksimum untuk memesan matriks. Padahal pada umumnya jumlah karakter pada pita tidak diketahui. Keberatan kedua adalah bahwa kita harus memesan tabel posisi sejumlah karakter maksimum pada pita, untuk setiap karakter, dan bukannya jumlah maksimum karakter pada pita untuk seluruh karakter yang mungkin muncul. Untuk menghindari pemborosan memori, list posisi akan disimpan secukupnya, dengan representasi lojik secara berkait yang dapat digambarkan sebagai berikut : a b c z List huruf ‘a’..’z’ disimpan dalam tabel (sebagai list kontigu) karena jelas domain nilainya. Huruf menjadi indeks tabel, sedangkan elemen tabel berisi alamat elemen pertama list posisi huruf yang bersangkutan. Jadi, alamat elemen pertama dari setiap lit posisi kemunculan disimpan dalam sebuah tabel dengan huruf abjad (huruf kecil) sebagai indeks, karena ['a'..'z'] mempunyai keterurutan. Dengan demikian, jika C muncul, maka C dipakai sebagai indeks untuk mengakses address elemen pertama list, untuk selanjutnya dilakukan traversal sampai elemen terakhir untuk menyisipkan sebuah posisi kemunculan baru. List diisi dengan melakukan satu kali traversal terhadap pita. Pencetakan dilakukan jika list tidak kosong, dengan melakukan traversal terhadap semua list dari 'a' s.d. 'z'. Sambil mencetak, jumlah kemunculan dihitung, dan pada akhir traversal dituliskan. Walaupun penyisipan selalu terjadi pada akhir elemen list, alamat elemen terakhir setiap list tidak dicatat, karena dianggap bahwa memboroskan memori. dibandingkan dengan proses melakukan traversal menuju elemen terakhir list yang relatif elemennya sedikit Jadi untuk menyisipkan elemen di akhir list harus dilakukan traversal telebih dahulu. Jika alamat elemen terakhir dari setiap list dicatat, maka diperlukan lagi sebuah tabel untuk mencatatnya seperti halnya tabel untuk mencatat alamat elemen pertama. Algoritma secara umum dari solusi ini adalah: Buat list kemunculan kosong untuk seluruh huruf Traversal pita : untuk setiap huruf C (yang diketahui posisinya I) , insert posisi I sebagai elemen list kemunculan pada karakter C Tulis output berdasarkan keadaan list : Traversal list huruf ‘a’..’z’ jika tidak kosong traversal untuk print posisi Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 32 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Representasi berkait ini dapat diterapkan secara berkait dengan pointer ataupun dengan tabel. Contoh berikut diberikan untuk representasi dengan pointer dan representasi dengan tabel. Perbedaannya hanya pada cara penulisan elemen list dan primitif alokasi alamat. Program Kemunculan2a { Representasi list huruf kontigu, list posisi BERKAIT dengan POINTER } { Skema proses sekuensial dengan mark, dengan penanganan kasus kosong } KAMUS type Address : pointer to ElmtList HeadList : array ['a'..'z'] of address { tabel alamat elemen pertama } type ElmtList : < Posisi : integer...
View Full Document

Ask a homework question - tutors are online