Diktat_Prosedural_13_StudiKasus

Diktat_Prosedural_13_StudiKasus

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: ibaca sebagai karakter yang pertama. Tuliskan algoritma untuk menuliskan : huruf yang muncul, muncul sebagai karakter keberapa saja, dan berapa kali muncul. Karakter “blank” diabaikan. Output harus ditulis sesuai urutan abjad, dan hanya ditulis jika ada kemunculan. Pita maksimum berisi 100 karakter. Beberapa contoh isi pita dan output diberikan sebagai berikut: 1. Isi pita : a Output :k u i n i m i s k i n . a: 1 Muncul 1 kali i: 5 7 10 13 Muncul 4 kali k: 2 12 Muncul 2 kali m: 9 Muncul 1 kali n: 6 14 Muncul 2 kali s: 11 Muncul 1 kali u: 3 Muncul 1 kali Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 26 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB 2. Isi pita : z b b b . Output : b: 4 5 6 Muncul 3 kali z: 1 Muncul 1 kali 3. Isi pita : . Output : Pita kosong, tidak ada isinya 4. Isi pita : . Output : 5. Isi pita : s a y a a n g . Output : a: 4 6 7 Muncul 3 kali g: 9 Muncul 1 kali n: 8 Muncul 1 kali s: 3 Muncul 1 kali s: 5 Muncul 1 kali Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 27 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Solusi Pertama: Struktur Data Sederhana, Proses Tidak Efisien Persoalan ini sepintas mirip dengan menghitung frekuensi setiap huruf yang muncul pada pita. Jika hanya frekuensi setiap huruf yang harus dihitung, maka kita dapat memakai algoritma menghitung ‘A” dengan melakukan analisa kasus terhadap setiap huruf. Tetapi pada persoalan ini, selain kemunculan huruf, posisi huruf harus dicatat. Jika hanya kemunculan yang dihitung, maka hanya dibutuhkan satu counter untuk setiap huruf dan persoalan dapat diselesaikan dengan skema menghitung kemunculan setiap huruf. Tetapi persoalannya tidak sesederhana ini. Persoalan pertama adalah bahwa posisi sebuah huruf mungkin tidak akan muncul, atau mungkin akan muncul lebih dari satu kali. Dalam hal ini, jelas bahwa posisi setiap huruf yang muncul pada pita yang harus dicatat adalah sebuah list yang elemennya adalah posisi karakter pada pita. Tanpa mencatat posisi sebagai elemen list, informasi posisi sudah hilang ketika karakter pada jendela maju ke karakter berikutnya. Persoalan kedua adalah urutan penulisan output. Urutan penulisan adalah urutan sesuai abjad, yang pada kasus umum berbeda dengan urutan kemunculan huruf pada pita. Solusi pertama persoalan ini adalah dengan melakukan proses berulang-ulang terhadap pita, dan setiap kali kita akan menghitung kemunculan huruf yang sedang diproses (urut abjad), dan jika muncul akan dituliskan segera posisinya. Solusi ini tidak membutuhkan tempat penyimpanan untuk posisi (karena segera di-print), namun mengharuskan traversal isi pita sebanyak 26 kali (dari ‘a’..’z’). Solusi ini sangat hemat memori (hanya perlu satu counter untuk kemunculan semua huruf dan hanya perlu satu integer untuk mencatat posisi), namun akan memakan waktu lama karena pembacaan pita yang berulang-ulang. Ini adalah contoh bahwa struktur data...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online