Tugas 2
Struktur Data dan Algoritme
Tanggal Pengumpulan Tugas: Senin, 30 Maret 1998

Stack untuk Parser Pemecah Sukukata Bahasa Indonesia

From: setiawan@caplin.cs.ui.ac.id (Suryana Setiawan)
Newsgroups: forum.iki.struktur
Subject: Tugas II
Date: 16 Mar 1998 03:16:09 GMT

Tugas II
Aplikasi Stack
Batas Pengumpulan: tgl. 30-Maret 1998

Stack adalah struktur yang mempunyai sifat yang bermanfaat untuk mendukung mekanisme proses yang sifatnya maju-mundur secara backtracking, contohnya parser, pemeriksa tanda kurung, pencarian-pencarian, tanpa menggunakan pemrograman rekursif. Untuk memahami pemakaian stack maka dalam tugas ini anda diminta untuk membuat program yang dapat memecah-mecahkan kata-kata dalam Bahasa Indonesia yang tak termasuk kata adaptasi asing, yang memanfaatkan stack sebagai alat bantu.

Aturan pemecahan suku katanya harus baku (sama setiap mahsiswa) jadi di kelas telah didiskusikan aturan-aturan yang berusaha mengikuti aturan baku bahasa Indonesia sebagai berikut ini. (jika k=konsonal, v=vokal, dan 'ng' serta 'ny' di anggap satu vokal)

...kvkv... => ...kv-kv...
...kvkkv... => ...kvk-kv...
...kvkkkv... => ...kvk-kkv...
...kvvkv... => ...kv-v-kv...
...kvvkv... => ...kv-v-kv...
...kvvvkv... => ...kvv-v-kv...
...kkvkv... => ...kkv-kv...
...kvkvk => ...kv-kvk
vkv... => v-kv...
kvvk => kv-vk

Mengingat aturan-aturan ini mungkin saja tidak sesuai dengan aturan baku untuk Bahasa Indonesia, sambil berjalan mohon ada yang mengusulkan koreksi dari aturan-aturan tsb., sejauh saya pertimbangkan tidak jadi mempersulit dalam implementasinya maka usulan itu bisa diterima).

Catatan:

1. problem ini dapat juga dipecahkan tanpa menggunakan stack, tapi sesuai tujuannya untuk melatih penggunakan stack maka anda diwajibkan menggunakan stack.

2. Tugas ini tidak ada hubungannya dengan tugas IA/IB tapi hasil tugas ini bisa dimanfaatkan untuk hyphenation di dalam teks editor tsb.

- Suryana Setiawan
setiawan@cs.ui.ac.id


From: setiawan@caplin.cs.ui.ac.id (Suryana Setiawan)
Newsgroups: forum.iki.struktur
Subject: Re: Tugas II
Date: 16 Mar 1998 04:17:16 GMT

amnatun - 0749 (parlin@kupang.timor.or.id) wrote:
: Input/Output untuk tugas 2 ini apakah dari/ke file
: atau dari keyboard ke screen.
: Terima kasih.
: parlin

Masukannya dari keyboard, bisa berupa suatu kalimat, pokoknya stream kata-kata yang dipisahkan spasi, dan keluarannya langsung di screen yang berupa stream suku-suku kata hasilnya (spasi dibiarkan sebagai spasi).

- Suryana Setiawan
setiawan@cs.ui.ac.id


From: setiawan@caplin.cs.ui.ac.id (Suryana Setiawan)
Newsgroups: forum.iki.struktur
Subject: Re: Tugas II
Date: 16 Mar 1998 08:00:18 GMT

Ralat......

:baku bahasa Indonesia sebagai berikut ini.(jika k=konsonal,v=vokal,dan
:'ng' serta 'ny' di anggap satu vokal)

Seharusnya tertulis:
baku bahasa Indonesia sebagai berikut ini.(jika k=konsonan, v=vokal,dan
'ng' serta 'ny' sebaiknya di anggap satu konsonan)

Catatan: saya tambahkan kata sebaiknya, kalau anda punya ide lain yang lebih baik yang meanggapnya tetap sebagai dua konsonan maka silakan saja tanpa ada pengurangan nilai.


From: setiawan@caplin.cs.ui.ac.id (Suryana Setiawan)
Newsgroups: forum.iki.struktur
Subject: Re: Tugas II
Date: 19 Mar 1998 04:49:14 GMT

Atas beberapa pertimbangan maka Tugas 2 lebih disederhanakan lagi sebagai berikut:

1. Aturan pemecahan suku kata yang digunakan BUKANLAH aturan yang baku dalam bahasa Indonesia, tetapi mengikuti aturan sebagai berikut:

vv... => v-v...
vkv... => v-kv...
vkk... => vk-k...
kvv... => kv-v...
kvkv... => kv-kv...
kvkk... => kvk-k...
kk... => <tak terdefinisi>

Dengan v=vokal, k=konsonan, ... = karakter-karakter berikutnya.

Definisi konsonan diperluas meliputi ng, ny, kh, dan tr sebagai "konsonan tunggal". Catatan: pemecahan ini tidak memperhatikan struktur pembentukan kata seperti prefiks-kt.dasar-postfix!

2. Diftong dianggap tidak ada, tetapi secara teoritis anda dapat mengembangkan program anda dengan menggunakan suatu lookup-table berdasarkan konteks kata.

3. Kombinasi 3 huruf seperti str pada kata instruktur dianggap tidak ada, tetapi program anda dapat dikembangkan untuk menangani hal tsb namun tentunya jadi lebih rumit.

4. Tanda-tanda baca yang umum dapat digunakan seperti halnya sebuah titik atau spasi yang mengakhiri suku-kata sebelumnya.

5. Masukan dimasukkan dari keyboard dan keluaran ditampilkan di screen dengan kalimat bisa berisi alfabet huruf besar dan huruf kecil.

Contoh:

Masukan: Hari ini mendung sekali, mungkin mau turun hujan.
Keluaran: Ha-ri i-ni men-dung se-ka-li, mung-kin ma-u tu-run hu-jan.

- Suryana


Selamat mengerjakan tugas!

klik di sini untuk kembali ke halaman utama...