Diktat_Prosedural_13_StudiKasus

Selain list huruf kita harus mengelola list posisi

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: sangat sederhana dan memakai sedikit memori, namun algoritma “rumit” dan tidak efisien. Algoritma untuk solusi ini adalah : Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 28 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Program MUNCULH1 { Diberikan sebuah pita karakter hanya berisi blank dan ‘a’..’z’, menghitung kemunculan setiap huruf dan posisi kemunculan, dengan output sesuai spesifikasi pada halaman 1 } KAMUS N : integer { banyaknya kemunculan huruf yang sedang diproses pada pita } Posisi : integer { posisi karakter yang sedang dibaca pada pita } ALGORITMA START if (CC = ‘.’) then output ("Pita kosong") else C traversal[‘a’..’z’] N←0 { Banyaknya kemunculan huruf C adalah Nol } Posisi ← 1 { posisi pada karakter pertama } repeat if (CC = C) then N←N+1 { Huruf C muncul } if (N = 1) then output (C) { C hanya ditulis sekali pd awal kemunculan } output (posisi) ADV Posisi ← Posisi + 1 { Posisi bertambah 1 karena ADV } until (CC = ‘.’) if (N > 0) then { Hanya menulis jika C muncul minimal 1 kali} output ("Muncul ", N, " kali") START { untuk memproses huruf yang berikutnya } { CC = ‘.’ semua huruf sudah diperiksa terhadap C dan sudah ditulis} Solusi ini ingin dihindari, traversal terhadap pita ingin dilakukan satu kali saja. Karena traversal hanya ingin dilakukan satu kali, maka posisi merupakan list yang harus dikelola. Selain list huruf, kita harus mengelola list posisi dan kemunculan. Ada beberapa pilihan struktur data yang akan diberikan berikut ini. Solusi Kedua: Struktur Data List Posisi kemunculan setiap karakter harus dicatat, supaya dapat dituliskan kembali. Penulisan hanya dapat dilakukan setelah pita selesai diproses, dengan traversal isi pita yang hanya dilakukan satu kali. Secara lojik, posisi kemunculan sebuah karakter direpresentasi oleh sebuah harga integer: <Posisi: integer> dan untuk setiap karakter yang mungkin muncul, harus dibentuk list posisi kemunculannya. Karena ada 26 karakter ['a'..'z'] maka kita harus mengelola 26 list linier, sebuah list linier untuk setiap karakter. Representasi KONTIGU List Berkait dan List Posisi Dengan representasi kontigu, list kemunculan dapat direpresentasi dalam sebuah tabel yang setiap elemennya berisi kemunculan keberapa (posisi). Karena pita maksimum berisi 100 karakter, maka setiap list direpresentasi oleh tabel berukuran 100, dengan indeks [1..100]. Indeks ke-i pada tabel menyatakan bahwa karakter muncul pada posisi ke-i. Karena ada 26 karakter, maka kita mengelola 26 tabel dengan elemen kemunculan bertype boolean. Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 29 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Salah satu pilihan untuk merepresentasikan list huruf dan list kemunculan menjadi satu struktur adalah dengan me...
View Full Document

Ask a homework question - tutors are online