|
Kali ini akan diberikan suatu tips sederhana untuk menghitung jumlah
kata pada suatu string dengan menggunakan Borland Delphi. Silakan
saja Anda simak tulisan ini. Siapkan Button1 dan ketikkan kode
program di bawah ini pada event OnClick:
procedure
TForm1.Button1Click(Sender: TObject);
function JumlahKata(S: string): integer;
begin
if S='' then
Result := 0
else
begin
Result := 1;
while Pos(SPASI, S)>0 do begin
Delete(S, 1, Pos(SPASI,S));
Inc(Result);
end;
end;
end;
var
Kalimat: string;
begin
Kalimat := '';
if InputQuery('Ketikkan sembarang kalimat',
'Kalimat: ',
Kalimat) then
begin
ShowMessage('Jumlah kata: ' +
IntToStr(JumlahKata(Kalimat)));
end;
end;
Jika kita ketikkan “Borland Delphi”, program akan menampilkan
pesan Jumlah kata: 2.
Tetapi, fungsi JumlahKata() di atas masih memiliki kelemahan.
Karena berpatokan pada spasi, program akan ngaco jika kita
ketikkan misalnya “Borland
Delphi”, “ Borland Delphi”, atau “Borland Delphi
“.
Oleh karena itu, fungsi JumlahKata() di atas perlu dimodifikasi
sebagai berikut:
function
JumlahKata(S: string): integer;
const
SPASI_GANDA = ' ';
SPASI = ' ';
begin
if S='' then
Result := 0
else
begin
//Hapus spasi ganda
while Pos(SPASI_GANDA, S)>0 do
S := StringReplace(S, SPASI_GANDA, SPASI,
[rfReplaceAll]);
//Hapus spasi di awal kalimat
if S[1]=SPASI then Delete(S, 1, 1);
//Hapus spasi di akhir kalimat
if S[Length(S)]=SPASI then Delete(S, Length(S), 1);
Result := 1;
while Pos(SPASI, S)>0 do begin
Delete(S, 1, Pos(SPASI,S));
Inc(Result);
end;
end;
end;
Namun, fungsi di atas masih memiliki kelemahan lainnya jika
kalimatnya berupa “Borland Delphi . ”. Program akan menganggap titik
(atau simbol lain) yang di dahului oleh spasi sebagai satu kata.
Oleh karena itu, kita modifikasi lagi fungsi JumlahKata() di atas
sebagai berikut:
function
JumlahKata(S: string): integer;
const
SPASI_GANDA = ' ';
SPASI = ' ';
//Anda bisa tambahkan simbol lainnya
Simbol = '():;[]{}"''`!,?.';
var
i: byte;
begin
if S='' then
Result := 0
else
begin
//Ubah simbol2x menjadi spasi
for i:=1 to Length(Simbol) do
S := StringReplace(S, Simbol[i], SPASI,
[rfReplaceAll]);
//Hapus spasi ganda
while Pos(SPASI_GANDA, S)>0 do
S := StringReplace(S, SPASI_GANDA, SPASI,
[rfReplaceAll]);
//Hapus spasi di awal kalimat
if S[1]=SPASI then Delete(S, 1, 1);
//Hapus spasi di akhir kalimat
if S[Length(S)]=SPASI then Delete(S, Length(S), 1);
Result := 1;
while Pos(SPASI, S)>0 do begin
Delete(S, 1, Pos(SPASI,S));
Inc(Result);
end;
end;
end;
Demikian tulisan tips menghitung jumlah kata dalam suatu string
dengan Borland Delphi. Semoga
bermanfaat bagi Anda semuanya. Jika ada saran atau komentar bisa
dilayangkan ke
arioss@softhome.net. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
Terimakasih.
| Send
your comments or suggestions |
|
|
|