BAB 1 PENDAHULUAN 1.1
Latar Belakang Seiring dengan perkembangan teknologi informasi dan komunikasi yang semakin pesat dewasa ini, telah membuat bola dunia terasa semakin kecil dan ruang seakan menjadi tak berjarak lagi dan hampir semua aspek kehidupan menggunakan komputer. Mulai dari wahana teknologi informasi dan komunikasi yang paling sederhana berupa perangkat radio dan televisi hingga internet dan telepon genggam dengan protokol aplikasi tanpa kabel. Tentu saja teknologi informasi tidak akan berarti apa-apa tanpa didukung oleh sistem informasi yang dalam hal ini adalah aplikasi-aplikasi yang ditanam dalam perangkat teknologi tersebut. Penggunaan dari perangkat lunak (software) dalam personal computer (PC) dapat dikembangkan ke berbagai kebutuhan sesuai dengan permintaan pemakai. Dalam penelitian ini akan dikembangkan salah satu pemakaian dari perangkat lunak dalam PC yaitu sebagai pelafalan dan konversi bilangan menjadi kalimat dengan menggunakan Borland Delphi Versi 6.0, dimana penelitian ini dimaksudkan untuk melihat sejauh mana penggunaan aplikasi ini dapat berguna bagi para pemakai yang berkecimpung dalam bidang keuangan dan atau yang melakukan kegiatan keuangan. Misalnya dalam penulisan kwitansi yang menggunakan penulisan kalimat dari nilai suatu bilangan tertentu. Kecenderungan yang terjadi adalah bahwa penulisan pembilangan nilai tersebut kurang teliti terutama apabila memuat bilangan yang terdiri dari banyak digit. Komputerisasi pelafalan dan konversi bilangan menjadi kalimat dengan menggunakan Borland Delphi 6.0 akan memiliki keunggulan / kelebihan dari pelafalan dan konversi bilangan menjadi kalimat secara manual. Beberapa keunggulan tersebut selain mengoptimalkan fungsi komputer sebagai PC adalah mengolah data secara cepat dan menampilkan hasil yang lebih teliti.
1
1.2
Perumusan Masalah Berdasarkan latar belakang yang telah diuraikan, masalah utama yang dihadapi adalah bagaimana mengurangi kekurangtelitian dalam penulisan pembilangan suatu nilai bilangan menjadi kalimat.
1.3
Batasan Masalah Dalam penelitian ini, agar penelitian tidak menjadi melebar, peneliti lebih menekankan pada pembahasan yang juga merupakan pembatasan masalah yaitu pelafalan dan konversi bilangan menjadi kalimat dengan menggunakan Borland Delphi 6.0. Sedangkan penelitian yang dilakukan adalah dalam bentuk rekayasa perangkat lunak.
1.4
Tujuan Penelitian 1. Memberikan gambaran secara umum mengenai sistem kerja dari pelafalan dan konversi bilangan menjadi kalimat dengan menggunakan Borland Delphi 6.0 2. Menunjukkan seberapa optimalnya kinerja dari komputerisasi pelafalan dan konversi bilangan menjadi kalimat dengan menggunakan Borland Delphi 6.0 3. Mengaplikasikan perangkat lunak ( software ) untuk membuat pelafalan dan konversi bilangan menjadi kalimat sehingga mengurangi kekurang telitian dalam pembilangan nilai bilangan
1.5
Manfaat Penelitian Diharapkan setelah selesainya penelitian ini bisa bermanfaat bagi : 1. Masyarakat Memberikan informasi dan pandangan kepada masyarakat tentang pemanfaatan tools pada Borland Delphi 6.0 untuk pelafalan konversi bilangan menjadi kalimat. 2. Peneliti Dapat mengembangkan kemampuan dalam ilmu pengetahuan dan teknologi dibidang aplikasi IT dalam wacana intelektualitas yang dimiliki.
2
3. Akademis Dapat mengembangkan permasalahan lebih luas dan kompleks berdasarkan konsep-konsep yang sudah ada. Hasil penelitian yang diusulkan ini dapat bermanfaat untuk pengembangan IPTEK terutama dalam bidang keuangan untuk mengurangi kekurang telitian dalam pembilangan nilai bilangan menjadi kalimat. 1.6
Metodologi Penelitian Agar penelitian ini dapat memberikan hasil yang baik, maka penulisan laporannya menggunakan berbagai macam data, keterangan data, serta informasi penting yang diperoleh dari berbagai sumber, didasarkan pada : 1.6.1 Jenis Data 1.
Data Primer, yaitu data yang diperoleh secara langsung dari obyek penelitian
2.
Data Sekunder, yaitu data yang diperoleh dari buku-buku, literatur sebagai pelengkap dalam penyusunan proposal penelitian ini.
1.6.2 Metode Pengumpulan Data 1. Metode Studi Pustaka, yaitu metode pengumpulan data melalui pemahaman literatur maupun buku dan juga browsing internet sebagai acuan untuk menentukan landasan teori. 2. Metode Observasi atau pengamatan, yaitu pengumpulan data dengan melakukan pengamatan dan pencatatan secara langsung mengenai hal-hal yang diselidiki. 1.7
Sistematika Penulisan Untuk penulisan laporan penelitian ini, peneliti menggunakan tahapan penulisan sebagai berikut : BAB I
:
PENDAHULUAN Berisi latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
3
BAB II
:
LANDASAN TEORI Berisi tentang teori-teori dasar pelafalan dan konversi bilangan menjadi kalimat serta gambaran umum tentang Borland Delphi 6.0
BAB III
:
IMPLEMENTASI PROGRAM Berisi tentang implementasi dari program pelafalan dan konversi bilangan menjadi kalimat dengan menggunakan Borland Delphi 6.0.
BAB IV
:
PENUTUP Berisi tentang kesimpulan dan saran-saran dari hasil penelitian.
DAFTAR PUSTAKA LAMPIRAN
4
BAB 2 LANDASAN TEORI 2.1
Pelafalan Menurut Kamus Besar Bahasa Indonesia, lafal berarti cara pembacaan atau cara pengejaan dari sebuah kata atau kalimat. Dalam penelitian ini berarti dari sebuah bilangan yang dimasukkan, akan diberikan cara pembacaannya dalam Bahasa Indonesia. Masalah yang akan diutarakan dalam penelitian ini adalah tingkat kesalahan dalam membuat kalimat dari pelafalan bilangan, penyebab terjadinya kesalahan dan cara mengatasi kesalahan yang terjadi.
2.2
Konversi Kata konversi dalam Kamus Besar Bahasa Indonesia diartikan sebagai perubahan bentuk dari satu bentuk ke bentuk yang lain. Dalam hal ini, dimaksudkan sebagai perubahan dari penulisan berupa angka menjadi penulisan dalam kata – kata atau kalimat.
2.3
Borland Delphi 6.0 Seperti telah disebutkan sebelumnya, peneliti akan menggunakan Borland
Delphi
6.0
sebagai
bahasa
penyusun
software-nya.
Bahasa
pemrograman ini merupakan bentuk pengembangan teknologi visual dari Bahasa Pascal yang telah beredar sebelumnya. Adapun beberapa alasan penggunaan program ini adalah sebagai berikut : •
Borland Delphi menyediakan kemudahan dalam penyusunan layout aplikasi berbasis Windows 9x.
•
Borland Delphi mendukung tampilan berbasis grafis.
•
Borland Delphi dilengkapi berbagai macam objek yang secara
umum dapat dikatakan lengkap, baik dalam hal komponen visual maupun dalam hal fungsi-fungsi yang tersedia di dalamnya. (Anthony Pranata, Pemrograman Borland Delphi 3, Andi Yogyakarta)
5
Dengan memandang beberapa alasan tersebut, maka penulis bermaksud menggunakan berbagai kelebihan tersebut untuk menyusun suatu aplikasi yang ideal.
Mengenal IDE Delphi IDE (Integrated Development Environment) Delphi merupakan tampilan awal yang kita lihat pada saat pertama kali kita menjalankan program Delphi.
Speed Bar
Menu
Component Palette
Object Inspector
Form Designer
Code Editor
Gambar 2.1. Bagian – bagian IDE Delphi Pada dasarnya IDE Delphi dibagi menjadi enam bagian utama, yaitu Menu, Speed Bar, Component Palette, Form Designer, Code Editor, dan Object Inspector. (Madcoms, Pemrograman Borland Delphi 6, Jilid 1, Andi Yogyakarta)
6
BAB 3 IMPLEMENTASI PROGRAM 3.1
Penjelasan Singkat Banyak program, terutama yang berhubungan dengan keuangan membutuhkan fungsi untuk menyebutkan nilai sebuah angka. Seperti dapat dilihat dalam sebuah kuitansi, faktur, atau yang lainnya. Disini akan diuraikan sebuah program sederhana yang berguna untuk menghasilkan kalimat dari sebuah angka. Dalam penelitian ini digunakan aplikasi Borland Delphi. Dan fitur yang dimiliki amatlah sederhana. Sebagai nilai tambah, program yang dibuat dalam penelitian ini dapat menyebutkan / melafalkan hasil pengkonversian angka yang dimasukkan menjadi kalimat yang terbaca. Adapun program yang dibuat ini hanya bisa menyebutkan bilangan maksimal sepanjang 14 angka bilangan bulat. Tidak bisa menyebutkan negatif. Dan angka yang dimasukkan ke dalam program tidak dilakukan pengujian apapun, kecuali panjang angka. Jadi dianggap angka yang digunakan terhadap fungsi ini berupa angka bulat sederhana, tanpa format apapun. Cara yang ditempuh untuk menyebut sebuah bilangan adalah dengan membuat sebuah tabel kata dari angka 1 sampai 9. Satu buah tabel tingkat bilangan (ribu, juta, milyar, triliun). Tabel ini dibuat dalam bentuk array. Ketika melakukan proses penyebutan angka, bilangan yang akan disebutkan, akan diurai menjadi array angka. Misalnya 6745, akan diurai menjadi array, angka[1] = 5 angka[2] = 4 angka[3] = 7 angka[4] = 6 Selanjutnya, dilakukan iterasi untuk menyebut angka. Iterasi dilakukan terhadap sebuah blok yang terdiri dari 3 angka, mulai dari kanan, atau dari larik angka terkecil. Untuk contoh di atas, pada iterasi pertama, akan diambil tiga buah elemen array, yaitu angka[1], angka[2], dan angka[3]. Tiga buah angka ini "diterjemahkan" menggunakan tabel yang sudah dibuat terlebih dahulu. Diperhatikan juga posisi angka untuk ratusan, puluhan, 7
dan satuan. Selesai menterjemahkan satu blok, diperiksa, dan diberi kata untuk tingkatan, yaitu ribu, atau juta, atau milyar, atau triliun. Setelah itu dilanjutkan ke blok berikutnya, yaitu angka[4], angka[5], dan angka[6]. Tampilan Program Tampilan dari program yang dibuat dalam penelitian ini adalah seperti yang dapat dilihat berikut ini :
Gambar 3.1. Tampilan Program Secara umum, dapat dilihat bahwa pada program ini memiliki tampilan yang sederhana serta fungsi – fungsi yang sederhana pula. Terdapat inputan bilangan yang ingin dikonversikan / dilafalkan. Selain itu terdapat tombol “Konversi” yang digunakan untuk mengkonversikan bilangan yang sudah diinputkan menjadi kalimat. Sedangkan tombol “Lafalkan” digunakan apabila dari bilangan yang dimasukkan hanya akan didengarkan suara pelafalannya. Hasil pengkonversian akan ditampilkan di sebelah label “Terbilang”. Dan terdapat tombol “Reset” untuk mengosongkan kotak isian bilangan serta mereset semua nilai variabel yang digunakan dalam program. Dan tombol terakhir yaitu “Exit” digunakan untuk mengakhiri jalannya program. Alur Jalannya Program Jika dijelaskan dengan kalimat, maka alur jalannya program ini dapat diurutkan sebagai berikut : 1.
Masukkan bilangan yang akan dikonversi / dilafalkan.
2.
Jika tombol “Konversi” yang dipilih, maka akan dijalankan prosedur untuk mengubah angka yang diinputkan tersebut menjadi kalimat. Prosedur ini akan dijelaskan lebih lanjut pada bagian berikutnya.
8
3.
Jika tombol “Lafalkan” yang dipilih, maka prosesnya sama dengan tombol “Konversi” namun ditambah dengan pengucapan kalimat hasil konversi tersebut. Adapun data suara yang akan dimainkan, telah disimpan dalam sebuah tabel database tertentu yang akan dimuat oleh komponen media player dari program.
4.
Hasil konversi akan ditampilkan pada bagian “Terbilang”
5.
Tombol “Reset” digunakan untuk membersihkan kotak inputan bilangan serta mereset ulang semua variabel yang digunakan dalam prosedur – prosedur program ini.
6.
Tombol “Exit” digunakan untuk mengakhiri jalannya program.
Struktur Tabel yang Digunakan Pada program ini digunakan sebuah tabel database yang berfungsi sebagai tempat penyimpanan data suara yang nantinya akan dimainkan pada saat hasil konversi bilangan akan dilafalkan. Tabel yang digunakan adalah bertipe paradox, yang merupakan bawaan dari Borland Delphi. Adapun struktur tabel yang digunakan adalah sebagai berikut:
Gambar 3.2. Struktur Tabel yang Digunakan
9
Sedangkan isi tabel adalah semua data kata yang dapat digunakan untuk membentuk kalimat hasil konversi bilangan, beserta lokasi file suara yang akan dimainkan jika akan dilafalkan. Isi tabel dapat dilihat pada gambar berikut ini :
Gambar 3.3. Isi Tabel yang Digunakan Dari tabel dapat dilihat bahwa sebenarnya ada 21 (dua puluh satu) kata yang dapat digunakan sebagai kombinasi pembentukan kalimat hasil konversi bilangan. Kata – kata tersebutlah yang digunakan sebagai pembentuk kalimat hasil konversi bilangan.
Penjelasan Prosedur Utama dalam Program Perlu diketahui bahwa Borland Delphi memposisikan semua komponen dalam program sebagai objek yang mandiri. Dalam objek tersebut terdapat properti serta kejadian yang dapat ditangani. Prosedur yang dimaksud sebelumnya, terletak pada penanganan kejadian masing – masing objek. Misalnya tombol “Konversi” akan menjalankan prosedur tertentu yang dipicu oleh adanya penekanan tombol tersebut.
10
a.
Prosedur Penekanan Tombol “Konversi” atau “Lafalkan” Prosedur ini akan dijalankan pada saat tombol “Konversi” atau “Lafalkan” ditekan. Pada prinsipnya kedua tombol ini akan menjalankan prosedur yang sama, namun yang berbeda adalah pada bagian penampilan kalimat hasil konversi serta pada saat memperdengarkan kalimat hasil pelafalan. Untuk lebih jelasnya, dapat dilihat pada penjelasan berikut ini :
procedure Tfbil.konversiClick(Sender: TObject); var angka : array[1..14] of integer; {penyimpanan bilangan} kata : array[0..9] of string; {pelafalan bilangan} basis : array[0..4] of string; {basis bilangan} panjang : integer; {panjang bilangan} loop1,loop2,tingkat,delay,res : integer; {counter} subkalimat,kata1,kata2,kata3 : string; {menampung hasil terbilang}
Bagian tersebut memuat deklarasi variabel yang digunakan dalam prosedur ini. Variabel angka nantinya akan digunakan sebagai penampung bilangan yang dimasukkan berdasarkan posisi keberadaan angka tersebut. Misalnya 6745, akan diurai menjadi array, angka[1] = 5 angka[2] = 4 angka[3] = 7 angka[4] = 6 Variabel kata digunakan untuk menampung kata – kata hasil konversi bilangan dari nol hingga sembilan. Variabel basis digunakan untuk menampung kata – kata yang merupakan basis bilangan yaitu ribu, juta, dan seterusnya. Variabel panjang digunakan untuk mengetahui panjang bilangan yang dimasukkan. Selain itu diperlukan variabel lain yang dipergunakan sebagai counter serta untuk menampung kalimat hasil konversi. begin {inisialisasi data array} kata[0]:=' '; kata[1]:=' satu '; kata[2]:=' dua '; kata[3]:=' tiga '; kata[4]:=' empat '; kata[5]:=' lima '; kata[6]:=' enam '; kata[7]:=' tujuh '; kata[8]:=' delapan '; kata[9]:=' sembilan '; for loop1:=1 to 14 do angka[loop1]:=0; 11
basis[0]:=' basis[1]:=' basis[2]:=' basis[3]:=' basis[4]:='
'; ribu '; juta '; milyar '; triliun ';
Bagian ini digunakan untuk memberikan nilai awal kepada tiap – tiap variabel array yang digunakan. {menghitung panjang bilangan} panjang:=StrLen(PChar(inbil.Text));
Bagian ini digunakan untuk menghitung panjang karakter dari bilangan yang telah dimasukkan. {memasukkan angka-angka dalam bilangan ke dalam array} for loop1:= 1 to panjang do angka[loop1]:=strtoint(copy(inbil.Text,panjang-loop1+1,1));
Bagian ini digunakan untuk memasukkan satu per satu bilangan pada posisi tertentu di array seperti yang telah dijelaskan sebelumnya. loop1:=1; {digunakan untuk indeks bilangan} tingkat:=0; {digunakan untuk indeks basis} kalimat:=''; {inisialisasi variabel penampung hasil terbilang}
Bagian ini digunakan untuk memberikan nilai awal kepada tiap – tiap variabel loop1, tingkat dan kalimat yang digunakan. Potongan program berikut ini adalah bagian iterasi yang digunakan untuk mengubah bilangan yang dimasukkan menjadi kalimat. Iterasi akan dilakukan sejumlah panjang bilangan yang dimasukkan. while (loop1<=panjang) do begin subkalimat:=''; kata1:=''; kata2:=''; kata3:='';
Bagian ini digunakan untuk memberikan nilai awal kepada tiap – tiap variabel yang digunakan nantinya untuk menampung kalimat hasil konversi bilangan. Perlu diketahui bahwa sebenarnya skema konversi bilangan akan berulang setiap tiga digit bilangan dari belakang, yaitu satuan, puluhan, dan ratusan. Baru setelah itu terdapat basis bilangan yaitu ribuan, jutaan, dan seterusnya. Oleh karena itu proses pembacaan bilangan yang akan dikonversikan, dibuat untuk menangani ratusan, puluhan, dan satuan, seperti yang dapat dilihat pada potongan program berikut ini :
12
{ratusan} if (angka[loop1+2]<>0) then if (angka[loop1+2]=1) then kata1:=' seratus ' else kata1:=kata[angka[loop1+2]]+' ratus ';
Bagian tersebut menangani digit untuk ratusan. Jika digit ratusan adalah “1” maka kata hasil konversinya adalah seratus. Sedangkan apabila ternyata digit ratusan adalah bilangan yang lain, maka hasil konversinya adalah pembacaan digit tersebut ditambah dengan kata “ratus”. {puluhan atau belasan} if (angka[loop1+1]<>0) then if (angka[loop1+1]=1) then if (angka[loop1]=0) then kata2:='sepuluh' else if (angka[loop1]=1) then kata2:='sebelas' else kata2:=kata[angka[loop1]]+' belas ' else kata2:=kata[angka[loop1+1]]+' puluh ';
Bagian tersebut menangani digit untuk puluhan atau belasan. Jika digit ratusan adalah “1” maka kata hasil konversinya adalah belasan. Namun jika digit di belakangnya adalah “0” maka hasil konversinya adalah “sepuluh”. Sedangkan apabila ternyata digit puluhan adalah bilangan yang lain, maka hasil konversinya adalah pembacaan digit tersebut ditambah dengan kata “puluh”. {satuan} if (angka[loop1]<>0) then if (angka[loop1+1]<>1) then kata3:=kata[angka[loop1]];
Bagian tersebut menangani digit untuk satuan. Bagian ini hanya melakukan pembacaan digit tersebut saja. {pengujian bila 0 semua dan penambahan basis} if ((angka[loop1]<>0) or (angka[loop1+1]<>0) or (angka[loop1+2]<>0)) then subkalimat:=kata1+kata2+kata3+basis[tingkat]; {menggabungkan sub kalimat ke kalimat utuh} kalimat:=subkalimat+kalimat; loop1:=loop1 + 3; tingkat:=tingkat + 1; end;
13
Bagian terakhir dalam iterasi adalah penggabungan kalimat hasil konversi sehingga nantinya dapat dilakukan pembacaan yang utuh dari hasil konversi bilangan tersebut. {mengganti satu ribu menjadi seribu jika diperlukan} kalimat:=StringReplace(kalimat,'satu ribu','seribu',[rfReplaceAll,rfIgnoreCase]); {apabila inputan bilangan hanya nol} if inbil.Text='0' then kalimat:='nol';
Bagian tersebut menangani pengecualian yang mungkin terjadi pada saat konversi yaitu apabila ada kemungkinan hasil konversi adalah “satu ribu”, maka akan diganti dengan “seribu”. Selain itu juga dilakukan pengecualian jika ternyata bilangan yang dimasukkan adalah “0”, maka hasil konversinya adalah “nol”. Bagian berikut ini digunakan untuk membedakan penekanan tombol mana yang dilakukan. Apabila tombol “Konversi” yang ditekan, maka hanya akan ditampilkan kalimat hasil konversi, namun jika ternyata tombol “Lafalkan” yang ditekan, maka akan dimainkan suara yang memperdengarkan cara pelafalan kalimat tersebut. case (sender as TButton).Tag of 1 : {tombol KONVERSI} {menampilkan kalimat pada terbilang} terbilang.Caption:=kalimat; 2 : {tombol LAFALKAN} begin {parsing kalimat untuk nantinya dilafalkan} parsing(kalimat); for loop2:=1 to jmlkata do begin tdata.FindKey([subkal[loop2]]); mainsuara.FileName:=tdata.FieldValues['Suara']; mainsuara.Open; mainsuara.Play; for delay:=1 to 70000000 do application.processMessages; {delay} mainsuara.Stop; mainsuara.Close; end; jmlkata:=0; for res:=1 to 30 do subkal[res]:=''; end; end; end;
Ketika tombol “Lafalkan” yang ditekan, maka kalimat hasil konversi sebelumnya akan dicari datanya per kata dari tabel. Dari data tabel itu pula, dimainkan
14
file suara yang akan menyuarakan hasil pelafalan kalimat tersebut melalui komponen media player. b.
Prosedur Penekanan Tombol “Reset” Berikut adalah potongan prosedur yang akan dijalankan pada saat tombol “Reset” ditekan. Prosedur ini digunakan untuk menghapus tampilan kalimat hasil konversi yang mungkin sebelumnya telah dilakukan. Selain itu, prosedur ini juga akan menghapus inputan bilangan yang mungkin telah dimasukkan sebelumnya. Procedure Tfbil.resetClick(Sender: Tobject); begin {digunakan untuk mengeset ulang tampilan} terbilang.Caption:=’’; inbil.Clear; kalimat:=’’; end;
c.
Prosedur Penekanan Tombol “Exit” Prosedur terakhir yang dilakukan adalah pada saat tombol “Exit” ditekan. Tombol ini digunakan untuk mengakhiri jalannya program. procedure Tfbil.exitClick(Sender: TObject); begin Application.Terminate; {menghentikan aplikasi} end;
15
BAB 4 KESIMPULAN DAN SARAN 4.1
Kesimpulan Berdasarkan pembahasan
dari
bab-bab
sebelumnya,
kita
dapat
mengetahui konsep dasar dari pelafalan dan konversi dari bilangan menjadi kalimat serta sistem kerja dari aplikasi Borland Delphi 6.0, sehingga dapat disimpulkan sebagai berikut : 1. Pelafalan ini dapat digunakan untuk angka-angka dengan digit yang panjang ( terutama di sektor ekonomi ). 2. Dapat digunakan sebagai pembelajaran bagi anak-anak dengan tampilan yang lebih menarik dalam pembelajaran interaktif. 3. Pelafalan ini tidak hanya bisa dilihat dalam bentuk tampilan tetapi juga bisa dengan audio, sehingga bisa dikembangkan dalam bentuk pembelajaran multimedia pelafalan. 4.2
Saran 1. Dalam penelitian selanjutnya, diharapkan bisa dikembangkan dengan bilangan pecahan dan bilangan negatif. 2. Jumlah digit yang ada bisa dikembangkan lagi dengan digit yang lebih panjang ( lebih dari 14 digit ). 3. Pelafalan dapat dibuat dengan bahasa pemrograman lain yang nantinya dapat dikonversikan atau di-load ke Web. 4. Aplikasi ini dapat juga diterapkan untuk pembelajaran interaktif bagi anakanak karena cara kerjanya sama dengan pelafalan bilangan untuk anak-anak.
16
DAFTAR PUSTAKA 1.
Kamus Besar Bahasa Indonesia
2.
Abdul Kadir, Dasar pemrograman Delphi 5, Jilid 1 dan 2, Andi Yogyakarta
3.
Anthony Pranata, Pemrograman Borland Delphi 3, Andi Yogyakarta
4.
Madcoms, Pemrograman Borland Delphi 6, Jilid 1, Andi Yogyakarta
5.
Reky (
[email protected] ), Fungsi Terbilang, 23 Juni 2007
17
JADWAL PELAKSANAAN PENELITIAN
Bulan No
Jan-08
Kegiatan 3
1
Persiapan Proposal
2
Review dan Revisi
3 4
Studi Pustaka & Analisa Desain & Implementasi
5
Pengujian & Evaluasi
6 7
Penyusunan Laporan Hasil Penelitian Seminar
8
Revisi
4
Feb-08 5
1
2
3
4
Mar-08 5
1
2
3
4
Apr-08 5
18
1
2
3
Mei-08 4
5
1
2
3
Jun-08 4
1
2
3
4
Jul-08 5
1
2
3
4
5
PERSONALIA PENELITIAN 1.
2.
3.
Ketua Peneliti Nama lengkap dan gelar
: Vensy Vydia, S. Kom
NIS
: 06557003102081
Pangkat / Gol
: Penata Muda / IIIa
Jabatan
: Dosen
Sifat Penelitian
: Tidak Berkelanjutan
Fakultas
: Teknologi Informasi & Komunikasi
Jurusan
: Teknologi Informasi
Bidang Keahlian
: Teknologi Informasi
Alamat Kantor
: Universitas Semarang
Anggota Peneliti I Nama lengkap dan gelar
: Desi Purwanti K, S. Kom, M. Kom
NIS
: 06557003102112
Pangkat / Gol
: Penata Muda / IIIa
Jabatan
: Dosen
Sifat Penelitian
: Tidak Berkelanjutan
Fakultas
: Teknologi Informasi & Komunikasi
Jurusan
: Teknologi Informasi
Bidang Keahlian
: Teknologi Informasi
Alamat Kantor
: Universitas Semarang
Anggota Peneliti II Nama lengkap dan gelar
: Robby Kurniawan Budhi, S. Kom
NIS
: 06557003102113
Pangkat / Gol
: Penata Muda / IIIa
Jabatan
: Dosen
Sifat Penelitian
: Tidak Berkelanjutan
Fakultas
: Teknologi Informasi & Komunikasi
Jurusan
: Teknologi Informasi
Bidang Keahlian
: Teknologi Informasi
Alamat Kantor
: Universitas Semarang
19
LAMPIRAN 1 SURAT PERJANJIAN PELAKSANAAN PENELITIAN DOSEN MUDA Nomor : 09 / LPPM USM / I / 2008
20
LAMPIRAN 2 Kode Program unit ulafal; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, MPlayer, DB, DBTables; type Tfbil = class(TForm) Label1: TLabel; inbil: TEdit; Label2: TLabel; konversi: TButton; lafal: TButton; terbilang: TLabel; reset: TButton; exit: TButton; mainsuara: TMediaPlayer; tdata: TTable; procedure konversiClick(Sender: TObject); procedure resetClick(Sender: TObject); procedure exitClick(Sender: TObject); procedure parsing(kal : string); procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var fbil: Tfbil; kalimat : string; {kalimat hasil terbilang} subkal : array[1..30] of string; {potongan kata} jmlkata : integer; {jumlah potongan kata} implementation {$R *.dfm} procedure Tfbil.konversiClick(Sender: TObject); var angka : array[1..14] of integer;{penyimpanan bilangan} kata : array[0..9] of string; {pelafalan bilangan} basis : array[0..4] of string; {basis bilangan} panjang : integer; {panjang bilangan} 21
loop1,loop2,tingkat,delay,res : integer; {counter} subkalimat,kata1,kata2,kata3 : string; {menampung hasil terbilang} begin {inisialisasi data array} kata[0]:=' '; kata[1]:=' satu '; kata[2]:=' dua '; kata[3]:=' tiga '; kata[4]:=' empat '; kata[5]:=' lima '; kata[6]:=' enam '; kata[7]:=' tujuh '; kata[8]:=' delapan '; kata[9]:=' sembilan '; for loop1:=1 to 14 do angka[loop1]:=0; basis[0]:=' '; basis[1]:=' ribu '; basis[2]:=' juta '; basis[3]:=' milyar '; basis[4]:=' triliun '; {menghitung panjang bilangan} panjang:=StrLen(PChar(inbil.Text)); {memasukkan angka-angka dalam bilangan ke dalam array} for loop1:= 1 to panjang do angka[loop1]:=strtoint(copy(inbil.Text,panjang-loop1+1,1)); loop1:=1; {digunakan untuk indeks bilangan} tingkat:=0; {digunakan untuk indeks basis} kalimat:=''; {inisialisasi variabel penampung hasil terbilang} while (loop1<=panjang) do begin subkalimat:=''; kata1:=''; kata2:=''; kata3:=''; {ratusan} if (angka[loop1+2]<>0) then if (angka[loop1+2]=1) then kata1:=' seratus ' else kata1:=kata[angka[loop1+2]]+' ratus '; {puluhan atau belasan} if (angka[loop1+1]<>0) then if (angka[loop1+1]=1) then if (angka[loop1]=0) then kata2:='sepuluh'
22
else if (angka[loop1]=1) then kata2:='sebelas' else kata2:=kata[angka[loop1]]+' belas ' else kata2:=kata[angka[loop1+1]]+' puluh '; {satuan} if (angka[loop1]<>0) then if (angka[loop1+1]<>1) then kata3:=kata[angka[loop1]]; {pengujian bila 0 semua dan penambahan basis} if ((angka[loop1]<>0) or (angka[loop1+1]<>0) or (angka[loop1+2]<>0)) then subkalimat:=kata1+kata2+kata3+basis[tingkat]; {menggabungkan sub kalimat ke kalimat utuh} kalimat:=subkalimat+kalimat; loop1:=loop1 + 3; tingkat:=tingkat + 1; end; {mengganti satu ribu menjadi seribu jika diperlukan} kalimat:=StringReplace(kalimat,'satu ribu','seribu',[rfReplaceAll,rfIgnoreCase]); {apabila inputan bilangan hanya nol} if inbil.Text='0' then kalimat:='nol'; {mengetahui tombol mana yang ditekan} case (sender as TButton).Tag of 1 : {tombol KONVERSI} {menampilkan kalimat pada terbilang} terbilang.Caption:=kalimat; 2 : {tombol LAFALKAN} begin {parsing kalimat untuk nantinya dilafalkan} parsing(kalimat); for loop2:=1 to jmlkata do begin tdata.FindKey([subkal[loop2]]); {mencari data pada tabel} mainsuara.FileName:=tdata.FieldValues['Suara']; {menentukan file yang dibuka} mainsuara.Open; {membuka komponen media player} mainsuara.Play; {memainkan suara media player} for delay:=1 to 70000000 do application.processMessages; {delay} mainsuara.Stop; {menghentikan suara media player} mainsuara.Close; {menutup komponen media player} end;
23
jmlkata:=0; {mengosongkan jumlah kata} for res:=1 to 30 do subkal[res]:=''; {mengosongkan potongan kalimat} end; end; end; procedure Tfbil.resetClick(Sender: TObject); begin {digunakan untuk mengeset ulang tampilan} terbilang.Caption:=''; {membersihkan tampilan hasil terbilang} inbil.Clear; {membersihkan inputan bilangan yang diinputkan} kalimat:=''; {mengosongkan hasil terbilang} end; procedure Tfbil.exitClick(Sender: TObject); begin Application.Terminate; {menghentikan aplikasi} end; procedure Tfbil.parsing(kal : string); var tanda : integer; {penanda spasi antar kata} panjangkal : integer; {panjang kalimat hasil terbilang} huruf : string; {karakter yang terbaca} kata : string; {potongan kata} begin panjangkal:=StrLen(PChar(kalimat)); jmlkata:=0; tanda:=1; kata:=''; while tanda<=panjangkal do begin huruf:=copy(kalimat,tanda,1); if huruf<>' ' then inc(jmlkata); while (huruf<>' ') do begin huruf:=copy(kalimat,tanda,1); subkal[jmlkata]:=subkal[jmlkata]+huruf; inc(tanda); end; inc(tanda); end; end; procedure Tfbil.FormShow(Sender: TObject); begin tdata.Open; {buka tabel data} end;
24
procedure Tfbil.FormClose(Sender: TObject; var Action: TCloseAction); begin tdata.Close; {tutup tabel data} end; end.
25
LAPORAN PENELITIAN
PELAFALAN DAN KONVERSI BILANGAN MENJADI KALIMAT MENGGUNAKAN BORLAND DELPHI 6.0
Oleh : Vensy Vydia, S. Kom Desi Purwanti K, S. Kom, M. Kom Robby Kurniawan B, S. Kom
Proyek Penelitian Ini Dibiayai Oleh Universitas Semarang Dengan Surat Perjanjian No. 09 / LPPM USM / I / 2008
LEMBAGA PENELITIAN DAN PENGABDIAN KEPADA MASYARAKAT UNIVERSITAS SEMARANG 2008
26
HALAMAN IDENTITAS DAN PENGESAHAN LAPORAN AKHIR HASIL PENELITIAN 1.
a. Judul Penelitian
:
b. Bidang Ilmu
:
Ketua Peneliti a. Nama b. NIS c. Pangkat / Gol d. Jabatan e. Sifat Penelitian f. Fakultas / Jurusan g. Bidang Keahlian h. Alamat Kantor i. Alamat Rumah
: : : : : : : : :
Vensy Vydia, S. Kom 06557003102081 Penata Muda / IIIa Dosen Tidak Berkelanjutan TIK / Teknologi Informasi Teknologi Informasi Jl. Soekarno-Hatta Tlogosari Semarang Jl. Jatiluhur Timur III no. 8 Rt. 04 / Rw. V Semarang 50261
3.
Jumlah Anggota Peneliti a. Nama Anggota Peneliti I b. Nama Anggota Peneliti II
: : :
2 ( dua ) orang Desi Purwanti K, S. Kom, M. Kom Robby Kurniawan B, S. Kom
4.
Lokasi Penelitian
:
Kampus Universitas Semarang
5.
Lama Penelitian
:
3 bulan
6.
Biaya Penelitian
:
Rp 1.500.000,( satu juta lima ratus ribu rupiah )
7.
Sumber Biaya
:
Universitas Semarang
2.
Pelafalan dan Konversi Bilangan Menjadi Kalimat Menggunakan Borland Delphi 6.0 Teknologi Informasi
Mengetahui, Dekan Fakultas TIK,
Semarang, Juni 2008 Ketua Penelitian,
Titin Winarti, S. Kom, MM NIS. 06557003102049
Vensy Vydia, S. Kom NIS. 06557003102081
Ketua Lembaga Penelitian dan Pengabdian Kepada Masyarakat
Dr. Ir. P. Widiyaningrum, MS NIS. 06557002100045
27
LEMBAR REVIEWER
b. Judul Penelitian
:
Pelafalan dan Konversi Bilangan Menjadi Kalimat Menggunakan Borland Delphi 6.0
b. Bidang Ilmu
:
Teknologi Informasi
Ketua Peneliti a. Nama b. NIS c. Pangkat / Gol d. Jabatan e. Sifat Penelitian f. Fakultas / Jurusan g. Bidang Keahlian
: : : : : : :
Vensy Vydia, S. Kom 06557003102081 Penata Muda / IIIa Dosen Tidak Berkelanjutan TIK / Teknologi Informasi Teknologi Informasi
3.
Jumlah Anggota Peneliti
:
2 ( dua ) orang
4.
Lokasi Penelitian
:
Kampus Universitas Semarang
5.
Lama Penelitian
:
3 bulan
6.
Tempat Penelitian
:
Fakultas Teknologi Informasi & Komunikasi
1.
2.
Menyetujui, Pereviewer,
Semarang, Juni 2008 Ketua Penelitian,
Titin Winarti, S. Kom, MM NIS. 06557003102049
Vensy Vydia, S. Kom NIS. 06557003102081
28