Anda di halaman 1dari 58

PP/018/PBA/VI/R1

PETUNJUK PRAKTIKUM
PEMROSESAN BAHASA ALAMI

TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
2016
Pengolahan String - 1

Pertemuan : I

Alokasi Waktu : 1,5 jam

Kompetensi Dasar : Mahasiswa mampu memahami algoritma dari


pengolahan string dalam hal ini panjang string,
Reverse dan Concatenation

Indikator : Mahasiswa mampu membuat fungsi pengolahan


string untuk menghitung panjang string, reverse,
dan concatenation

A. Teori Pendukung
Terminologi dasar yang penting dalam memahami teori bahasa adalah
alphabet, penyambungan (Concatenation) dan string pada alphabet V.
Alphabet digunakan untuk membentuk kata-kata di bahasa. Pada beberapa
buku alphabet dilambangkan dengan ∑.
Kumpulan alphabet atau symbol disebut string. Ada banyak operasi
pengolahan yang bisa dilakukan pada string yaitu: concatenation, panjang
string dan pembalikan (reverse).
1. Concatenation : penyambungan 2 karakter atau lebih membentuk suatu
barisan karakter
2. Panjang string : proses penghitungan jumlah karakter yang dimuat
dalam suatu string
3. Reverse (Pembalikan) : pembalikan string
Misalnya : u = panca
v = sila
uv = pancasila (penyambungan)
|uv| = |u| + |v| = 5 + 4 = 9 (panjang string)
(uv)R = (pancasila)R = alisacnap

1
B. Langkah Praktikum
1. Buka program visual programming (menggunakan Borland Delphi 7).
2. Buat Desain form seperti gambar 1.

Pengolahan String (Reverse, Concatenation, panjang string)


Pengolahan Untuk 2 Input String 1
Hasil Pengolahan String
Input String
u 2
v
4
 Pembalikan (Reverse)
 Panjang String

Proses Ulangi

No Nama Variabel Propertis


1 Label Posisi Tab standard
Caption : diubah sesuai kebutuhan
2 Edit Posisi tab standard
Name : sesuaikan dengan input datanya
3 Checkbox Posisi tab standard
Caption : ubah sesuai dengan permintaan
4 Memo Posisi tab standard
Name : sesuaikan dengan kegunaan (misal
memohasil)
Lines : hapus semua teks yang ada di dalamnya
5 Button Posisi Tab standard
Caption : disesuaikan dengan kebutuhan
Name : sesuai dengan nama caption

3. Jika desain form sudah selesai dilakukan masukkan coding di bawah


ini:

2
Prosedur untuk menghitung panjang string

procedure TfrmUtama.Panjangstring;
var
i: Integer;
begin
u : = edtstringu.Text;
v : = edtstringv.Text;

if chkpenyambungan. Checked then


begin
mmohasil.Lines.Add(' |uv| = |u| + |v| = ' +IntToStr
(Length(uv)))
end
else begin
mmohasil.Lines.Add(' |uv| = ' +IntToStr (Length (u)));
mmohasil.Lines.Add(' |uv| = ' +IntToStr (Length (v)));
end;
end;

Prosedur untuk proses pembalikan pada string

procedure TfrmUtama.Pembalikan;
var
panjangu, panjangv: Integer;
i, j, total : Integer;
begin
u : = edstringu.Text;
v : = edstringv.Text;

panjangv : = length (v);


panjangu : = length (u);
total : = Length(uv);
if chkpenyambungan.Checked then
begin
edttampung.Text : = ' ' ;
for i : o to Length (uv) do
begin
edttampung.Text : = edttampung.Text + ' ' uv
(total - i) ;
end;
mmohasil.Lines.Add( ' hasil pembalikan string
penyambungan uv = ' +
edttampung.Text) ;
end
else begin
edttampung.Text : = ' ' ;
for i : = o to Length(v) do
begin
edttampung.Text : edttampung.Text + ' ' + v [panjangv – i] ;

3
end;
mmohasil.Lines.Add (' hasil pembalikan string v = ' + '
edttampung.Text ;

edttampung.Text : = ' ' ;


for j : = o to Length (u) do
begin
edttampung.Text : = edttampung.Text + ' ' + u
[panjangu – j] ;
end;
mmohasil.Lines.Add (' hasil pembalikan string u = ' +
edttampung.Text) ;
end;
end;

Prosedur Penyambungan

procedure TfrmUtama.Penyambungan;
begin
u : = edtstringu.Text;
v : = edtstringv.Text;

if chkpenyambungan. Checked then


begin
uv : = u+ ' ' +v;
mmohasil.Lines.Add (' hasil penyambungan string (uv) =
' + uv)
end
else begin
mmohasil.Lines.Add(' Tidak ada Penyambungan string ')
end;
end;

4. Tekan F9 atau tombol run ► untuk menjalankan program


5. Coba masukkan 2 buah string dan lihat hasilnya cocokkan dengan hasil
manualnya (contohnya di bawah ini)

4
Pengolahan String (Reverse, Concatenation, panjang string)
Pengolahan Untuk 2 Input String
Hasil Pengolahan String
Input String 2 Tidak ada penyambungan string
|u| = Є
u aabbba
|v| = Є
v hasil pembalikan string v = babbbc
cbbbab hasil pembalikan string u = abbbaa
hasil penyambungan string (uv) = aabbbacbbbab
√ Penyambungan (Concatenation) |uv| = |u| + |v| =12
Hasil pembalikan string penyambungan uv =
√ Pembalikan (Reverse) baabbbcabbbaa

√ Panjang String

Proses Ulangi

5
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Teori Bahasa dan Automata

6
Pengolahan String – 2

Pertemuan : II

Alokasi Waktu : 1,5 jam

Kompetensi dasar : Mahasiswa mampu memahami algoritma dari


pengolahan string dalam hal ini Prefix, Suffix, Star
Clouser dan Positif Clouser

Indikator : Mahasiswa mampu membuat fungsi pengolahan


string untuk Prefix, Suffix, Star Clouser dan Positif
Clouser

A. Teori Pendukung
Selain operasi penyambungan dan pembalikan ada beberapa operasi dasar
pada string diantaranya Prefix, suffix, star clouser dan positif clouser.
Definisinya sebagai berikut :
1. Prefix string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling belakang dari string
w tersebut.
Contoh : abc, ab, a, dan e adalah semua Prefix(x)
2. Postfix (atau Suffix) string w adalah string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih simbol-simbol paling depan dari
string w tersebut
Contoh : abc, bc, c, dan e adalah semua Postfix(x)
3. Star clouser (Bahasa Universal)
Jika ∑ adalah alphabet, kita menggunakan ∑ untuk menotasikan
himpunan string (bahasa universal) yang dihasilkan oleh penggabungan
nol atau lebih symbol ∑.∑* selalu mengandung λ agar bisa
mengeluarkan string yang kosong.

7
Contoh : ∑* = {λ,a,aa,aaa,aaaa,……}
4. Positif clouser (∑+ ) adalah kumpulan string yang tidak mengandung
string kosong λ atau ∑+ = ∑*-λ
Contoh : ∑+ = (a,aa,aaa,aaaa,…..)

B. Petunjuk Praktikum
1. Buka program visual programming (dalam modul ini Borland Delphi 7)
2. Buat Desain form seperti gambar 1

Pengolahan String (Prefix, Suffix, Star Cluser, Positif Clouser)


Pengolahan Untuk 2 Input String 1
Hasil Pengolahan String
Input String 2
String Input 2
Juml Perulangan
4
Operasi Pengolahan String
 Prefix □ Star Clouser

 Sufix □ Positif Clouser 3


Proses Ulangi

No Nama Variabel Properties


1 Label Posisi Tab standard
Caption : diubah sesuaikebutuhan
2 Edit Posisi tab standard
Name : sesuaikan dengan input datanya
3 Checkbox Posisi tab standard
Caption : ubah sesuai permintaannya
4 Memo Posisi tab standard
Name : sesuaikan dengan kegunaan
(misal memohasil)
Lines : hapus semua teks

8
5 Button Posisi Tab standard
Caption : disesuaikan dengan kebutuhan
Name : sesuai dengan nama caption

3. Jika desain form sudah selesai dilakukan masukkan coding di bawah :

Prosedur untuk membuat Prefix dari string

procedure TfrmUtama.prefixmethod (karakter : string) ;


var
i: Integer;
begin
edttemplate.Text : = ' ' ;
mmohasil.Lines.Add (' Hasil Prefix string = ' +
karakter) ;
mmohasil.Lines.Add (' ---------------------------------
------') ;
for i = 0 to Length (karakter) do
begin
edttemplate.Text : = edttemplate.Text+ ' '
+karakter[i] ;
mmohasil.Lines.Add (edttemplate.Text)
end ;
mmohasil.Lines.Add (' ---------------------------------
------') ;
end;

4. Tekan F9 atau tombol run ► untuk menjalankan program


5. Coba masukkan sebuah string dan lihat hasilnya cocokkan dengan hasil
manualnya (gambar 2)

Pengolahan String (Prefix, Suffix, Star Clouser, Positif Clouser )


Pengolahan Untuk 2 Input String
Hasil Pengolahan String
Input String Hasil Prefix string = abc
String Input --------------------------------
abc
a
Jumlah Perulangan 4 ab
abc
--------------------------------
Operasi Pengolahan String Hasil Operasi Star Clouser
--------------------------------
√ Prefix √ Star Clouser
Sufix √ Positif Clouser abc
abcabc
abcabcabc
Proses Ulangi

9
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Teori Bahasa dan Automata

10
PEMROSESAN TEKS

Pertemuan ke : III
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : Mahasiswa dapat membuat program pemrosesan teks
Indikator : Mahasiswa dapat membuat program untuk menghitung
Jumlah huruf, Jumlah Kata, Jumlah kalimat, Jumlah huruf per kata, Jumlah kata
per kalimat dan Jumlah kalimat per paragraph.

A. Teori Pendukung

Suatu sistem pencarian informasi banyak menggunakan pemrosesan teks


dalam meningkatkan kinerja pencarian informasi. Kinerja dalam hal ini
melibatkan unsur ketepatan informasi yang didapatkan. Sistem pencarian
informasi yang efektif merupakan sistem yang mengetahui bahasa yang
digunakan dalam dokumen yang tersimpan. Kata "mengetahui" di sini berarti
mengenal karakteristik penggunaan kata dalam dokumen tersebut, baik secara
gramatikal maupun secara statistik.
Saat ini belum ada sistem pencarian informasi yang efektif berbasis bahasa
Indonesia. Hal ini disebabkan karena belum adanya sistem yang menggunakan
dokumen berbahasa Indonesia sebagai sampel untuk proses pembelajarannya.
Salah satu tahap dalam eksperimen ini adalah pengumpulan data dalam bentuk
dokumen berbahasa Indonesia. Hasil analisis terhadap sampel ini dapat memberi
gambaran mengenai karakteristik penggunaan kata dalam dokumen berbahasa
Indonesia. Hal ini akan membantu proses pembelajaran suatu sistem pencarian
informasi berbasis bahasa Indonesia.
Eksperimen ini bertujuan untuk mendapatkan gambaran mengenai
karakteristik penggunaan kata dalam dokumen berbahasa Indonesia. Eksperimen
hanya mencakup analisis secara statistik, tidak melakukan pembahasan ke tingkat
gramatikal. Hal pertama yang dilakukan dalam eksperimen ini adalah pembuatan
korpus. Korpus adalah kumpulan kata yang mendeskripsikan penggunaan kata
dalam suatu dokumen. Dokumen-dokumen yang digunakan sebagai bahan

11
pembuatan korpus berasal dari koran, majalah, karya tulis mahsiswa, dan surat
resmi pemerintah (GBHN, surat keputusan, dan lain-lain). Dokumen-dokumen
yang digunakan untuk pembuatan korpus adalah dokumen berbahsa Indonesia.
Analisis yang dilakukan terhadap korpus, dalam eksperimen ini, bersifat statistik.
Hal-hal yang diamati dalam korpus antara lain :
 Jumlah paragraf per artikel.
 Jumlah kalimat per artikel.
 Jumlah kata per kalimat.
 Jumlah huruf per kata.
 Distribusi frekwensi kemunculan kata.
 Distribusi frekwensi kemunculan huruf.
 Jumlah kemunculan kata berbahasa asing dan kata tidak bermakna.
Hasil pengumpulan data, pembuatan korpus, serta analisis terhadap korpus dapat
memberikan gambaran mengenai karakteristik penggunaan kata dalam dokumen
berbahasa Indonesia, secara statistik. Hasil eksperimen ini akan dapat membantu
pembuatan sistem pencarian informasi yang efektif.

B. Langkah Praktikum
Pada praktikum ini akan diperlihatkan distribusi statistik pemakaian kata-kata
dalam Bahasa Indonesia. Hal yang ingin didapatkan yaitu :
1. Jumlah huruf
2. Jumlah Kata
3. Jumlah kalimat
4. Jumlah huruf per kata
5. Jumlah kata per kalimat
6. Jumlah kalimat per paragraph
Dalam implementasinya pada program Visual Basic kita akan menggunakan
fungsi UBound.
Tahapan dalam membuat program parsing menggunakan Visual Basic
adalah sebagai berikut:
1. Atur form sebagai berikut :

12
RichTextBox

2. Ketik kode berikut


Public Function HitungHuruf(ByVal Text As String) As Long

Dim i, xx, Jumlah As Integer


For i = 1 To Len(Text)
xx = Asc(Mid(Text, i, 1)) ' ubah text menjadi kode ASCII
If (xx >= 65 And xx <= 90) Or (xx >= 97 And xx <= 122) Then
'kode tombol ASCII untuk huruf a-z mulai dari 65-90
Jumlah = Jumlah + 1
End If
Next
HitungHuruf = Jumlah

End Function

Public Function HitungJmlKata(ByVal Text As String) As Long


'Definisikan sebuah tanda hubung pada setiap akhir baris
yang
'merupakan bagian dari seluruh kata, jadi kombinasikan
bersama.
Text = Trim(Replace(Text, "-" & vbNewLine, ""))
'Ganti baris baru dengan sebuah space tunggal
Text = Trim(Replace(Text, vbNewLine, " "))
'Ganti spasi yang lebih dari satu (jika ada) menjadi spasi
tunggal
Text = Replace(Text, ".", " ")
Do While Text Like "* *"

13
Text = Replace(Text, " ", " ")
Loop
'Pisahkan string dan kembalikan kata yang dihitung
HitungJmlKata = 0 + UBound(Split(Text, " "))
End Function

Public Function HitungKalimat(ByVal Text As String) As Long


'Definisikan sebuah tanda hubung pada setiap akhir baris
yang
'merupakan bagian dari seluruh kata, jadi kombinasikan
bersama.
Text = Trim(Replace(Text, "-" & vbNewLine, ""))
'Ganti baris baru dengan sebuah space tunggal
Text = Trim(Replace(Text, vbNewLine, " "))
'Ganti spasi yang lebih dari satu (jika ada) menjadi spasi
tunggal
Do While Text Like "* *"
Text = Replace(Text, " ", " ")
Loop
'Pisahkan string dan kembalikan kalimat yang dihitung
HitungKalimat = 1 + UBound(Split(Text, ".")) + _
UBound(Split(Text, "?")) + UBound(Split(Text, "!"))

End Function

Public Function HitungHurufPerKata()


Text4.Text = _
HitungHuruf(RichTextBox1.Text)/HitungJmlKata(RichTextBox1.Tex
t)
End Function

Public Function HitungKataPerKalimat()


Text5.Text = _
HitungJmlKata(RichTextBox1.Text)/HitungKalimat(RichTextBox1.Text
)
End Function

Private Sub Command1_Click()

Text1.Text = HitungHuruf(RichTextBox1.Text)
Text2.Text = HitungJmlKata(RichTextBox1.Text)
Text3.Text = HitungKalimat(RichTextBox1.Text)
HitungHurufPerKata
HitungKataPerKalimat

End Sub

Private Sub Command2_Click()


Dim Contrl As Control
For Each Contrl In Form1.Controls
If (TypeOf Contrl Is RichTextBox) Then Contrl.Text = ""
Next Contrl

14
RichTextBox1.SetFocus
Text = ""
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""

End Sub

3. Jalankan program tersebut dan inputkan beberapa kalimat

15
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Pengolahan Bahasa Alami

16
PROGRAM PARSING

Pertemuan ke : IV
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : Mahasiswa dapat membuat program parsing sederhana.
Indikator : Parsing

A. Teori Pendukung
Teknologi Pengolahan Bahasa Alami (Natural Language Processing)
Natural Language Processing (NLP) atau Pemrosesan Bahasa Alami adalah
suatu ilmu yang menekankan perhatiannya pada usaha untuk membuat komputer mampu
memahami perintah-perintah tertulis dalam bahasa manusia yang standar, dalam hal ini
adalah bahasa Indonesia. Untuk melakukan hal tersebut suatu pengolahan bahasa alami
atau natural language processing memiliki tiga bagian utama yaitu parser, sistem
representasi pengetahuan dan penerjemahan output.

Seperti terlihat dalam gambar, kalimat input yang berupa bahasa alami akan
diterima oleh bagian sistem yaitu parser. Parser akan mengurai kalimat input tersebut ke
dalam beberapa bagian gramatik (kata benda hidup, kata benda mati, kata sifat, kata kerja,
kata keterangan, kata depan, kata sandang, kata petunjuk dan kata ganti). Langkah
tersebut merupakan langkah pertama dalam menentukan fungsi setiap kata dalam satu
kalimat dan cara menghubungkan antara satu kata dengan kata yang lain. Untuk
menentukan mendeteksi suatu pola kalimat, kamus dihubungkan dengan parser. Disini

17
kamus hanya mempunyai perbendaharaan kata yang terbatas. Seperti halnya program-
program kecerdasan buatan lainnya, pengolahan bahasa alami memiliki kemampuan yang
terbatas atau hanya diperuntukkan memecahkan masalah-masalah tertentu yang terbatas.
Setelah melewati parser, sistem pengetahuan (knowledge representation system)
menganalisa output yang dihasilkan oleh parser untuk menentukan maknanya. Pada
bagian akhir, penerjemah output menginterpretasikan sistem pengetahuan dan melakukan
langkah-langkah dalam menampilkan output. Dalam hal ini output yang dihasilkan bisa
merupakan jawaban dari kalimat input atau output khusus lainnya.
Parser adalah elemen yang paling menentukan dalam suatu program pemahaman
bahasa alami. Parser merupakan sepenggal software yang dapat menganalisis input
kalimat secara sintaktik. Parser melakukan identifikasi tiap-tiap kata dan kemudian
membuat peta kata-kata tersebut dalam struktur yang disebut pohon parser. Pohon parser
menunjukkan makna dalam semua kata dan bagaimana cara menggabungkan kata-kata
tersebut. Parser mengidentifikasi prasa kata kerja, prasa kata benda dan selanjutnya
memilah-milah ke dalam elemen-elemen yang lain.

B. Langkah Praktikum
Membuat Program Parsing Kalimat dalam Kata
IDE (Integrated Development Environment) adalah bagian Visual Basic yang
digunakan untuk menciptakan aplikasi. Dengan IDE inilah pemrograman secara
visual merancang tampilan untuk para user interface dan menuliskan listing
program.
Dalam implementasinya dengan Visual Basic cukup menggunakan fungsi split
dan array. Tahapan dalam membuat program parsing menggunakan Visual Basic
adalah sebagai berikut :
1. Jalankan program Visual Basic
2. Jendela New Project akan muncul, pilih VB Enterprice Edition Control
3. Tekan tombol Open
Tampilan akan muncul seperti gambar di bawah ini :

18
Daftar Menu

Jendela
Project

Jendela
ToolBox

Jendela
Properties

E. Pada jendela Project, klik Form, double klik Form1


F. Atur form dan properti sebagai berikut

19
Properti:
Objek Properti Pengaturan
Label1 Alignment Center
Caption Program Parsing Kalimat
dalam Kata
Font Ms Sans Serif
Font Style : Bold
Size : 12
Textbox1 Multiline True
Textbox2 Multiline True
Command1 Caption &Parsing

G. Double klik Command1, kemudian ketik kode berikut.

1 Private Sub Command1_Click()


2 Dim inn As String
3 inn = Text1.Text
4 ReDim kata(1000) As String '<-- implementasi array
5 kata() = Split(inn, " ") '<-- teknik parsing
6
7 For i = 0 To UBound(kata())
8 Text2.Text = Text2.Text + "kata " + CStr(i) + " : " _
9 + kata(i) + vbCrLf
10 Next i
End Sub

H. Kemudian kita bisa mengkompilasi program tersebut dengan menu


Run | Start atau menggunakan tombol F5. bila tidak ada kesalahan
maka akan terlihat tampilan sebagai berikut :

I. Masukkan sebuah kalimat ke TextBox1, kemudian tekan tombol


Parsing.
J. Amati hasilnya.

20
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Kuliah Pengolahan Bahasa Alami

21
TERJEMAHAN BAHASA DENGAN DATABASE

Pertemuan ke : V
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : Mahasiswa dapat membuat program terjemahan sederhana.
Indikator : Mahasiswa dapat membuat program terjemahan dengan
menggunakan sumber data pencarian berasal dari database.

A. Teori Pendukung
Translator adalah program yag membaca input berupa bahasa sumber

(source language) dan menterjemahkan ke suatu bahasa target (target language).

Translator untuk bahasa assembly disebut assembler. Translator untuk bahasa

tingkat tinggi disebut kompilator. Bahasa tingkat tinggi berorientasi pada bahasa

manusia, jadi mudah menulis program, mudah dibaca dan dirawat oleh manusia.

Saat ini terdapat ribuan kompilator mulai dari bahasa pemrograman umum

seperti Fortran, Pascal, sampai bahasa spesial yang digunakan pada beragam

bidang aplikasi komputer. Dua metode untuk mendefinisikan translasi, yaitu:

a. Skema translasi ( grammar)

Mekanisme memproduksi keluaran untuk kalimat yang dihasilkan.

b. Transducer

Transducer adalah recognizer yang dapat mengeluarkan string dengan

panjang berhingga dari simbol-simbol keluaran pada tiap gerak.

Berikut bagan terjemahan yang terjadi pada komponen translator.

Bahasa Sumber Translator Bahasa Target

Bahasa Indonesia Bahasa Minang

22
Translator
Bahasa Sumber Bahasa Target

Bahasa Minang Bahasa Indonesia

Kamus dalam suatu penerjemahan bahasa menjadi faktor yang penting,

dikarenakan di dalam kamus terdapat perbendaharaan kata-kata untuk nantinya

digunakan pada saat dilakukannya proses penerjemahan. Kamus berhubungan

dengan kata-kata individual yang artinya informasi tentang bagaimana kata-kata

tersebut digunakan dalam kalimat, serta entri dalam kamus mewakili kata kerja,

kata sifat, kata benda atau kata keterangan, untuk setiap kata tersebut beserta

unsurnya dapat dikategorikan menjadi kategori semantik yang berbeda.

B. Petunjuk Praktikum
1. Atur form berikut ini

23
2. Kemudian ketik kode berikut
Private Sub Command1_Click()
'Koneksi Database :
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=" & _
"Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\Kamus.mdb;"
Set rs = New Recordset
rs.Open "KamusKata", db, adOpenDynamic, adLockOptimistic
'Scan database :
Idx = 0
Do
Idx = Idx + 1
If Idx = 1 Then rs.MoveFirst Else rs.MoveNext
Loop Until ((LCase(Text1.Text) = _
rs.Fields("bahasa_Indonesia")) Or _
(Idx = rs.RecordCount))
'translete
If LCase(Text1.Text) = rs.Fields("bahasa_Indonesia") Then
Text2.Text = rs.Fields("bahasa_Minang1")
End If
End Sub

Private Sub Command2_Click()


Unload Me
End Sub

3. Jalankan program di atas kemudian inputkan kata Indonesia

24
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Pengolahan Bahasa Alami

25
TERJEMAHAN BAHASA INDONESIA-MINANG BERBASIS ATURAN

Pertemuan ke : VI
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : Mahasiswa dapat membuat program terjemahan
berdasarkan aturan.
Indikator : Mahasiswa dapat membuat program terjemahan
berdasarkan aturan perubahan suku kata.

D. Teori Pendukung

Kata (Indonesia) Kata (Minang) Golongan Kata


saya (Aku) ambo, awak, denai Kata Ganti
Kamu Sanak, sinan, waang Kata Ganti
Abang/mas/kakak laki-laki Uda, tuan, tan, uwan, ajo Kata Ganti
Mbak/kakak perempuan Uni Kata Ganti
Tante Etek Kata Ganti
Satu Ciek Kata Bilangan
Dua Duo Kata Bilangan
Tiga Tigo Kata Bilangan
Tanya Tanyo Kata Kerja
Piring Piriang Kata Benda
Kuping Kupiang Kata Benda

Dari beberapa kata yang dicantumkan pada tabel di atas ditemukan beberapa rule

yang dapat dibentuk pada bahasa Minang dengan perubahan yang terjadi pada

suku kata dalam bahasa Indonesia yaitu perubahan pada suku awal, suku akhir

dan gabungannya, yaitu :

Rule perubahan pada suku kata akhir

Perbedaan lafal Kata Indonesia Kata Minang


a–o ada Ado
al , ar – a Sambal Samba
bakar baka
as – eh balas Baleh

26
at – ek padat padek
ik – iak balik padek
il, ir, is – i kail kai
cair cai
baris bari
ing – iang anjing anjiang
it – ik impit Impik

ul, ur – u bisul bisu


kasur kasu
us – ui ratus ratui
uk – uak datuk datuak
ut – uik rumput rumpuik

Rule perubahan pada suku kata awal

Dari Menjadi Kata (Indonesia) Kata (Minang)


e a Beban Baban

Rule pada suku kata awal dan akhir :

Kata Kata (Minang)


(Indonesia)
Sebut Sabuik
Gelas Gale
Keras Kare
Pedas Pade’

Dari beberapa rule perubahan suku kata pada bahasa Indonesia ke bahasa

Minang di atas, maka sebetulnya dapat dinyatakan suatu fungsi dalam

pemrograman yang dapat mengubah secara otomatis inputan dalam bahasa

Indonesia yang mengandung suku kata yang dinyatakan dalam tabel di atas dan

diubah menjadi suku kata yang seharusnya dalam bahasa Minang.

27
E. Petunjuk Praktikum
1. Atur Form sebagai berikut

2. Tambahkan sebuah module pada jendela project dengan cara klik menu
Project | Add Module atau klik kanan pada jendela Project | Add | Module.
3. Buka module tersebut kemudian ketik kode berikut ini di module

Option Explicit
Public Const Tanda_EOF As String = "#" 'penanda akhir scan
Public Index As Integer
Public CC As String 'isi dari pita karakter
saat ini
Public EOF As Boolean 'bendera status End of
File
Public Text As String
Public tempPola As String
Public kata As String
Public SukuAwal As String
Public Akhir1 As String
Public SukuTengah As String
Public SukuAkhir As String
Public gabung As String
Public akhir2, ubah As String
Public tempKata As String

Public Sub GetCh()

28
If CC <> Tanda_EOF Then
Index = Index + 1
CC = Mid(Text, Index, 1)
If CC <> Tanda_EOF Then
EOF = False
Else
EOF = True
End If
If LCase(CC) = "a" Or LCase(CC) = "i" Or _
LCase(CC) = "u" Or LCase(CC) = "e" Or _
LCase(CC) = "o" Then
tempPola = tempPola + "V"
ElseIf CC = "#" Or CC = " " Then
Exit Sub
Else
tempPola = tempPola + "K"
End If
Else
EOF = True
End If

End Sub

Public Sub Reset()


If InStr(1, Form1.Text1.Text, "#") = 0 Then
Form1.Text1.Text = Form1.Text1.Text & "#"
Text = Form1.Text1.Text
Index = 0
CC = ""
EOF = False
kata = ""
SukuAwal = ""
Akhir1 = ""
akhir2 = ""
ubah = ""
SukuAkhir = ""
tempPola = ""
SukuTengah = ""
gabung = ""
tempKata = ""
End Sub

Public Sub AmbilKata()


kata = ""
Do While CC <> " " And CC <> Chr(10) And Not EOF
kata = kata + CC
GetCh
Loop

End Sub

Sub SukuDepanMng()

29
SukuAwal = Mid(kata, 1, 2)
If Right(SukuAwal, 1) = "e" Then
SukuAwal = Left(SukuAwal, 1) + "a"
Else
SukuAwal = ""
Exit Sub
End If

End Sub

Sub SukuBlkgMng()
Dim akhir2 As String
Dim ubah As String

If Right(tempPola, 4) = "KVKK" Then


Akhir1 = Right(kata, 4)
akhir2 = Right(Akhir1, 3)
Select Case akhir2
Case "ung"
ubah = "uang"
Case "ing"
ubah = "iang"
Case "eng"
ubah = "eang"
Case "ong"
ubah = "oang"
End Select

If ubah = "" Then


Akhir1 = ""
akhir2 = ""
Exit Sub
Else
SukuAkhir = Left(Akhir1, 1) + ubah
End If

ElseIf Right(tempPola, 3) = "KVK" Then

Akhir1 = Right(kata, 3)
akhir2 = Right(Akhir1, 2)
Select Case akhir2
Case "al"
ubah = "a"
Case "ad"
ubah = "aik"
Case "ar"
ubah = "a"
Case "as"
ubah = "eh"
Case "at"
ubah = "aik"
Case "ap"
ubah = "ok"
Case "ik"

30
ubah = "iak"
Case "il"
ubah = "ia"
Case "ir"
ubah = "ia"
Case "is"
ubah = "ih"
Case "it"
ubah = "ik"
Case "uh"
ubah = "uah"
Case "uk"
ubah = "uak"
Case "ul"
ubah = "ua"
Case "ur"
ubah = "ua"
Case "us"
ubah = "ui"
Case "ut"
ubah = "uik"
End Select

If ubah = "" Then


Akhir1 = ""
akhir2 = ""
Exit Sub
Else
SukuAkhir = Left(Akhir1, 1) + ubah
End If

ElseIf Right(tempPola, 2) = "VK" Then


Akhir1 = Right(kata, 2)
Select Case Akhir1
Case "al"
ubah = "a"
Case "ad"
ubah = "aik"
Case "ar"
ubah = "a"
Case "as"
ubah = "eh"
Case "at"
ubah = "aik"
Case "ap"
ubah = "ok"
Case "ik"
ubah = "iak"
Case "il"
ubah = "ia"
Case "ir"
ubah = "ia"
Case "is"
ubah = "ih"
Case "it"
ubah = "ik"

31
Case "uh"
ubah = "uah"
Case "uk"
ubah = "uak"
Case "ul"
ubah = "ua"
Case "ur"
ubah = "ua"
Case "us"
ubah = "ui"
Case "ut"
ubah = "uik"
End Select

If ubah = "" Then


Akhir1 = ""
akhir2 = ""
Exit Sub
Else
SukuAkhir = ubah
End If

ElseIf Right(tempPola, 2) = "KV" Then


Akhir1 = Right(kata, 2)
If Right(Akhir1, 1) = "a" Then
SukuAkhir = Left(Akhir1, 1) + "o"
Else
Akhir1 = ""
Exit Sub
End If

ElseIf Right(tempPola, 2) = "VV" Then


Akhir1 = Right(kata, 2)
If Right(Akhir1, 1) = "a" Then
SukuAkhir = Left(Akhir1, 1) + "o"
Else
Akhir1 = ""
Exit Sub
End If
End If
End Sub

Sub Tengah()

If Len(kata) - Len(SukuAwal) - Len(Akhir1) = 0 Then


SukuTengah = ""
Else
SukuTengah = Mid(kata, Len(SukuAwal) + 1, _
Len(kata) - Len(SukuAwal) - Len(Akhir1))
End If

End Sub

32
Sub digabung()
gabung = SukuAwal + SukuTengah + SukuAkhir
End Sub

Doublel klik Command1 dan ketik kode berikut


Private Sub Command1_Click()
Reset
tempKata = ""
kata = ""
SukuAwal = ""
Akhir1 = ""
akhir2 = ""
ubah = ""
SukuAkhir = ""
tempPola = ""
SukuTengah = ""
gabung = ""

AmbilKata
SukuDepanMng
SukuBlkgMng
Tengah
digabung
Text2.Text = gabung
End Sub

4. Jalankan program di atas dan inputkan sebuah kata, seperti tampilan dibawah
ini

33
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Kuliah Pengolahan Bahasa Alami

34
PROGRAM PEMERIKSA EJAAN

Pertemuan ke : VII
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : Mahasiswa dapat membuat program pemeriksa ejaan
Indikator : Pemeriksa Ejaan

A. Teori Pendukung
Pemeriksa ejaan (spell checker) adalah program aplikasi yang berfungsi
untuk memeriksa kata-kata yang tidak benar dalam sebuah dokumen. Pengecek
ejaan biasanya berupa bagian dari aplikasi yang lebih besar, seperti aplikasi
pengolah kata (word processor), klien email, kamus elektronik, peramban web,
atau mesin pencari. Pemeriksa ejaan komersial pertama yang ditujukan untuk
masyarakat luas pertama kali diperkenalkan pada tahun 1980.Pada awal
perkembangannya, pemeriksa ejaan berbentuk satu program yang terpisah.Namun
demikian, pada pertengahan 80an, hampir semua perangkat lunak pengolah kata
komersial seperti WordStar maupun WordPerfect sudah memiliki fasilitas
perangkat lunak terintegrasi. Awalnya pemeriksa ejaan ini hanya bekerja dalam
bahasa Inggris, namun dalam waktu singkat sudah mendukung bahasa Eropa
yang lain, serta bahasa Asia seperti Jepang dan China.

Sebuah pemeriksa ejaan biasanya bekerja dengan dua tahap, yaitu :


1. Menelusuri teks dan memisahkan teks menjadi per kata yang ditemui.

Proses ini menggunakan perulangan (looping) per kata yang ditemui

2. Membandingkan kata-kata yang diperiksa dengan sebuah kamus

(dictionary). Apabila suatu kata tidak terdapat dalam kamus, namun mirip

dengan kata tertentu, dapat dikatakan bahwa kata tersebut merupakan kata

yang salah.

35
Saat ini kebanyakan aplikasi populer sudah menyediakan pemeriksa ejaan,

seperti Microsoft Word, Mozilla Firefox, Google Chrome, Opera ataupun

Pidgin.Sistem operasi tertentu seperti MacOS X bahkan memiliki pemeriksa

ejaan terintegrasi, sehingga dapat bekerja pada aplikasi apapun yang

dijalankan. Proses spell checking melibatkan algoritma untuk mencari

kemiripan antara dua buah kata.

B. Petunjuk Praktikum
1. Atur form dan property sebagai berikut

Property
Objek Property Pengaturan
Label1 Aligment Centre
Caption Program Periksa Ejaan
Bahasa Indonesia
Frame1 Caption Input

36
Frame Caption Output
TextBox Multiline True
ListView1 Custom
 View 3-IvwReport
 LabelEdit 1-IvwManual
 Column Headers Text : Kata Salah
ListView2 Custom
 View 3-IvwReport
 LabelEdit 1-IvwManual
 Column Headers Text : Kata Salah
Command1 Caption &Cek
Command2 Caption &Reset

2. Ketik kode berikut


Option Explicit
Private Declare Function GetInputState Lib "user32.dll" () As
Long
Dim db As Connection
Dim WithEvents rs As Recordset
Dim Idx As Integer
Dim KataSalah As String
Dim i As Integer

Public Function PeriksaEjaan()


Dim Pesan As String
Dim Kal As String
Kal = Text1.Text
ReDim Kata(1000) As String

Kata() = Split(Kal, " ")

Set db = New Connection


db.CursorLocation = adUseClient
db.Open "PROVIDER=" & _
"Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\Kata_ind.mdb;"

Set rs = New Recordset


rs.Open "Kata", db, adOpenDynamic, adLockOptimistic

For i = 0 To UBound(Kata())
Idx = 0
Do
Idx = Idx + 1
If Idx = 1 Then rs.MoveFirst Else rs.MoveNext
Loop Until Kata(i) = rs.Fields("KataIndonesia") Or _
(Idx = rs.RecordCount)

If Kata(i) <> rs.Fields("KataIndonesia") Then


KataSalah = Kata(i)

37
With ListView1.ListItems.Add(, , KataSalah)
End With
End If
Next i
If KataSalah = "" Then
Pesan = MsgBox("Tidak ada kata yang salah", _
vbInformation, "Hasil Pemeriksaan Ejaan")
Text1.SetFocus
End If
End Function

Private Sub Command1_Click()


PeriksaEjaan
End Sub

Private Sub Command2_Click()


Dim Contrl As Control
For Each Contrl In Form1.Controls
If (TypeOf Contrl Is TextBox) Then Contrl.Text = ""
Next Contrl

Text1.SetFocus
ListView1.ListItems.Clear
ListView2.ListItems.Clear
rs.Close
End Sub

Private Sub ListView1_ItemClick(ByVal Item As


SComctlLib.ListItem)
Dim index As Long

Set db = New Connection


db.CursorLocation = adUseClient
db.Open "PROVIDER=" & _
"Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\Kata_ind.mdb;"

Set rs = New Recordset


rs.Open "SELECT * FROM Kata where Left(KataIndonesia, 2)="
& _
"'" & Left(Item.Text, 2) & "'" & _
"AND Len(KataIndonesia)=" & "'" & Len(Item.Text) & "'", db
ListView2.ListItems.Clear
For index = 1 To rs.RecordCount
If GetInputState <> 0 Then DoEvents
With ListView2.ListItems.Add(, ,
rs.Fields("KataIndonesia"))
End With
rs.MoveNext
Next index

End Sub

38
3. Jalankan program di atas dan beri input kata atau kalimat seperti tampilan
dibawah ini
Tampilan jika ada input kata yang salah

Tampilan jika tidak ada input kata yang salah

39
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Kuliah Pengolahan Bahasa Alami

40
Teknik Parsing

Pertemuan : VIII
Alokasi Waktu : 1,5 jam
Kompetensi Dasar : Mahasiswa mampu memahami algoritma dari proses
Parsing
Indikator : Mahasiswa mampu membuat fungsi pengolahan
Parsing

A. Dasar Teori
Parsing adalah proses untuk memecahkan suatu rangkaian masukan
(misalnya dari berkas atau bahasa) yang akan menghasilkan suatu pohon
uraian yang akan digunakan pada tahap kompilasi berikutnya.

Metode-metode dalam parsing


Metode-metode parsing dapat diklasifikasikan menjadi :
1. Top Down Parsing
Metode ini dimulai dari penurunan simbol awal sampai mendapatkan
string yang cocok sesuai grammar
SA → S P O K | S P O | S P K
S → saya | andi K → di/ke kopma | dengan
iwan
P → makan | pergi
O → nasi | mandi
S → S P O → saya P O → saya pergi O → saya pergi mandi

41
SA

S P O
↓ ↓ ↓
saya P O
↓ ↓ ↓
saya pergi O
↓ ↓ ↓
saya pergi mandi

2. Bottom Up Paring
Metode ini dimulai dari string yang diperiksa kemudian direduksi ke
simbol awal. Jika berhasil direduksi maka string tersebut adalah
kalimat.
Contoh :
SA → S P O K | S P O | S P K
S → saya | mandi K → di/ke kopma | dengan
iwan
P → makan | pergi
O → nasi | mandi
Saya pergi mandi → S pergi mandi → S P mandi → S P O → SA
Saya pergi mandi
↓ ↓ ↓
S pergi mandi
↓ ↓ ↓
S P mandi
↓ ↓ ↓
S P O

SA

B. Petunjuk Praktikum
1. Jalankan visual programming
2. Buat desain form untuk proses Parsing

42
Teknik Parsing

P arsing
Input String Metode Parsing

→ add ○ Top down


○ Bottom Up
Hasil Parsing
Info

Reset Parsing Keluar

3. Proses awal dari firm ini dengan memasukkan string ke dalam aplikasi,
yang akan dicek penurunannya
4. Pilih metode parsing yang akan digunakan
5. Hasil akan ditampilkan pada memoketerangan
6. Algoritmanya

Procedure cekbariskosong ;
(untuk mengecek baris kosong pada grid)
var
jumlah: Integer ;
begin
jumlah : = strngrddata.Rowcount ;
if strngrddata.Cells [0, jumlah – 1] < > ′ ′ Then
begin
strngrddata.RowCount : = strngrddata.RowCount + 1 ;
end;
end;

43
procedure Pengisian grid
(untuk mengisi grid, sebagai aturan dari CFG)
var
i : Integer;
jumlah : Integer;
begin
cekbariskosong;
jumlah : = strngddata.RowCount;
for i : = 0 to jumlah - 1 do
begin
if strngrddata.Cells [0 , i] = ′ ′ then
begin
strngddata.Cells [0 , i] : = edtaturan.Text ;
strngddata.Cells [1 , i] : = edtterminal.Text ;
end;
end;
end;

procedure Tfrmparsing.Parsing (katawal : string) ;


(procedure pemecahan kalimat)
var
i : Integer;
katajadi : string;
begin
katajadi : = ′ ′ ;
for i : = 0 to Length (katawal) + 1 do
begin
if katawal [i] = ′ ′ then
begin
lstparsing.Items.Add (katajadi) ;
katajadi : = ′ ′ ;
end
else if katawal [i] = ′ ′ then
begin
lstparsing.Items.Add (katajadi) ;
katajadi : = ′ ′ ;
end
else if katawal [i] = ′ ′ then
begin
lstparsing.Items.Add (katajadi) ;
katajadi : = ′ ′ ;
end
else begin
katajadi : = katajadi + ′ ′ + katawal [i] ;
end;
end;
end;

44
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Kuliah Pengolahan Bahasa Alami

45
PROGRAM PEMERIKSA TATA BAHASA INDONESIA

Pertemuan ke : IX
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : Mahasiswa dapat membuat program pemeriksa tata
bahasa Indonesia sebagai analisis sintaks kalimat
Indikator : Analisis Sintaks

A. Analisis Sintaks
Bahasa merupakan fenomena yang rumit yang melibatkan proses

pengenalan bunyi, sintaks kalimat serta inferensi semantik tingkat analisis yang

berbeda untuk bahasa alamiah. Adapun tingkat analisis bahasa alamiah tersebut

adalah :

a. Analisis Sintaksis

Analisis sintaksis adalah studi yang menyimak tentang aturan

penggabungan kata menjadi yang diperkenankan dan pemakai

aturan-aturan tersebut untuk membuat suatu kalimat.

b. Analisis Simantik

Analisis simantik adalah ilmu yang menyimak arti kata dan unsur

masing-masing kata tersebut dalam suatu kalimat.

c. Analisis Pragmatik

Analisis pragmatik adalah studi yang menyimak tentang cara

penggunaan bahasa dan pengaruhnya pada pendengar. Analisis

pragmatik ini dapat digunakan untuk pemahaman suatu kalimat

dengan aplikasi cerita-cerita panjang.

46
Dalam bahasa Indonesia terdapat enam tipe kalimat dasar inti, keenam tipe

kalimat dasar inti tersebut dibedakan berdasarkan pola unsur-unsurnya.

Fungsi
Tipe Subyek Predikat Obyek Pelengkap Keterangan
a. S-P Orang itu Sedang tidur
b. S-P-O Rani mendapat hadiah
c. S-P-Pel Beliau menjadi lurah
d. S-P-Ket Kami Tinggal di Jogjakarta
e. S-P-O-Pel Dia mengirimi Ibunya uang
f. S-P-O-Ket Beliau mengajar kami dengan baik

B. Petunjuk Praktikum
1. Atur form sebagai berikut

2. Ketik kode berikut :


Option Explicit
Dim db As Connection
Dim WithEvents rs As Recordset
Dim Idx As Integer
Dim Text As String

Public Function CekTataBahasa()


Dim Pesan As String
Dim Kal As String
Kal = RichTextBox1.Text
ReDim Kata(1000) As String
Dim i As Integer

47
Text = ""
Kata() = Split(Kal)

Set db = New Connection


db.CursorLocation = adUseClient
db.Open "PROVIDER=" & _
"Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\Kamus.mdb;"

Set rs = New Recordset


rs.Open "Tabel_Kata", db, adOpenDynamic, adLockOptimistic

For i = 0 To UBound(Kata())
Idx = 0
Do
Idx = Idx + 1
If Idx = 1 Then rs.MoveFirst Else rs.MoveNext
Loop Until Kata(i) = rs.Fields("Kata") Or _
(Idx = rs.RecordCount)

If rs.Fields("Jenis_Kata") = "orang" Or _
rs.Fields("Jenis_Kata") = "benda" Then
If Text = "" Then
Text = Text + "S"
Else
Text = Text + " " + "O"
End If
ElseIf rs.Fields("Jenis_Kata") = "kerja" Or _
rs.Fields("Jenis_Kata") = "sifat" Then
Text = Text + " " + "P"
ElseIf rs.Fields("Jenis_Kata") = "hubung" Then
Text = Text + " " + "PP"
Else
If Text = "" Then
Text = Text + "S"
Else
Text = Text + " " + "O"
End If
End If
Next i

‘ periksa tata bahasa


If Text = "S P" Or Text = "S PP P" Or Text = "S P O" Then
Pesan = MsgBox("Kalimat Sudah Benar", vbInformation, _
"Peringatan")
Else
Pesan = MsgBox("Kalimat Salah, Ganti Kalimat?", _
vbOKOnly, "Peringatan")
End If

End Function

Private Sub Command1_Click()


CekTataBahasa
End Sub

48
3. Jalankan program di atas dan inputkan sebuah kalimat, kemudian tekan
tombol cek.

49
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

50
STEMMING
(PENCARIAN KATA DASAR DENGAN PEMENGGALAN IMBUHAN)

Pertemuan ke : X
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : Mahasiswa dapat membuat program parsing sederhana
untuk mencari kata dasar
Indikator : Stemming

A. Teori Pendukung
Stemming adalah proses untuk menggabungkan atau memecahkan setiap varian-
varian suatu kata menjadi kata dasar. Stem (akar kata) adalah bagian dari kata
yang tersisa setelah dihilangkan imbuhannya (awalan dan akhiran). Contoh : coba
adalah stem dari mencoba, dan cobaan.
Dilakukan dengan :
1. Mencari kata dasar
2. Menghilangkan Prefix, Infix, dan Suffix
3. Sangat membantu dalam analisis sintaksis
Terdapat dua pendekatan dalam stemming:
1. Dictionary based stemming
Stemming dengan menggunakan sebuah kamus. Kamus tersebut berisi
seluruh list kata dan kombinasinya (prefiks, suffix, dan infix) termasuk
map ke kata dasar.
2. Automatic stemming
Prosesnya yang lebih cepat, Tidak membutuhkan penyimpanan yang besar
dan Efisien. Kekurangannya dependent terhadap setiap bahasa, terkadang
hasil stemming tidak tepat dan pembuatan algoritma yang rumit.

51
Berikut tahapan stemming :

Start

Kata_Imbuhan

Len (Kata_Imbuhan)

Kata ß Right (Kata_Imbuhan,


Len (Kata_Imbuhan) -2 )

Kata ada di
Y Kata
Database ?

Kata ß Right + (Kata_Imbuhan,


Len (Kata_Imbuhan) - 3)

Kata ada di
Y Kata
Database ?

Kata tidak
ada didalam
Database

End

52
B. Petunjuk Praktikum
1. Atur form sebagai berikut

2. Ketik kode berikut


Option Explicit
Dim db As Connection
Dim WithEvents rs As Recordset
Dim Kata As String
Dim Idx As Integer
Dim Text As String
Dim PjgKata As Integer

Public Function Stemming1() ‘fungsi pemenggalan awalan


Dim Pesan As String
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=" & _
"Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\Kata_ind.mdb;"

Set rs = New Recordset


rs.Open "Kata", db, adOpenDynamic, adLockOptimistic

Text = Text1.Text
PjgKata = Len(Text1.Text)
Kata = Right(Text, PjgKata - 2)

Idx = 0
Do
Idx = Idx + 1
If Idx = 1 Then rs.MoveFirst Else rs.MoveNext

53
Loop Until Kata = rs.Fields("KataIndonesia") Or _
(Idx = rs.RecordCount)

If LCase(Kata) = rs.Fields("KataIndonesia") Then


Text2.Text = rs.Fields("KataIndonesia")
Else
Kata = Right(Text, PjgKata - 3)
Idx = 0
Do
Idx = Idx + 1
If Idx = 1 Then rs.MoveFirst
Else rs.MoveNext

Loop Until Kata = _


rs.Fields("KataIndonesia") Or _
(Idx = rs.RecordCount)

If LCase(Kata) = rs.Fields("KataIndonesia") Then


Text2.Text = rs.Fields("KataIndonesia")
Else
Pesan = MsgBox("Kata Yang Dimasukkan Tidak _
Benar", vbExclamation, "Peringatan")

End If
End If

End Function

Private Sub Command1_Click()


Stemming1
End Sub

3. Jalankan program di tas dan beri input berupa kata yang memeiliki awalan,
contoh mencoba , bertahan dll seperti tampilan di bawah ini:

54
C. Evaluasi

Nilai Yogyakarta, …………………………….


Paraf asisten

<……………………………………>

D. Referensi
Diktat Kuliah Pengolahan Bahasa Alami

55
56
TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN

Anda mungkin juga menyukai