Sunday - July 20, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 7 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Tips Mengambil Nilai Bulan atau Tahun pada Tipe Data 'Date' dengan Borland Delphi (3636)

»

Perbedaan Antara Hub dan Switch (9588)

»

Mengenal Emulator PC - Bagian 1 (2948)

»

Mengamankan Mesin Linux Anda - Bagian I (2220)

»

Teknologi Monitor: Memahami Karakteristik Monitor - Bagian 2 (5088)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Tips Delphi: Menghitung Jumlah Kata pada String

Author: Ario Sutomo
Published: August 14, 2005
Visits: 2808 - Category: Borland Delphi
 
     
 

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.




 Recommended articles
 

»

Konfigurasi Transparent Proxy (6357)

»

Objek versus Kelas (2876)

»

Konektivitas Broadband Jarak Jauh dengan WiMAX, Standar Nirkabel Berkecepatan DSL (8091)

»

Mematikan Otomatis Konversi Organization Chart (OC) Pada Office XP (2726)

»

Membuat Shell Context Menu Untuk Me-Register/UnRegister ActiveX Object (2550)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com