TELAH DIBUKA !!!

Toko Ebook Tutorial "RosihanAri.Net"


Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


 photo 300x250_zpsff09f9e7.gif
Slot iklan tersedia, pasang iklan di atas

Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP

Algoritma Mencari Statistik Huruf


January 16th, 2009 | by rosihanari | Cetak Artikel Cetak Artikel

GampSMS SMS Gateway

Salah satu member saya di source.rosihanari.net, mbak Sulis namanya, meminta saya untuk menjelasin bagaimana algoritma mencari statistik huruf dari suatu string yang telah diketahui melalui input.

Mbak Sulis memberi contoh misalkan diketahui suatu string: ‘algoritma dengan pascal‘, maka output yang diharapkan adalah:

Jumlah huruf vokal : 8
Jumlah huruf konsonan : 13
Jumlah karakter lain : 2

Nah… yang menjadi pertanyaan adalah bagaimana ide penyelesaian dan algoritmanya, serta kalau perlu programnya sekalian :-)

OK… kita akan fokuskan terlebih dahulu ke statistik huruf vokal. Untuk menampilkan jumlah huruf vokal, tentu saja kita harus tahu huruf vokal itu meliputi huruf apa saja? :-) ya… tentu saja ‘A’, ‘I’, ‘U’, ‘E’, ‘O’. Ada lagikah yang lain? Oh… ada, yaitu ‘a’, ‘i’, ‘u’, ‘e’, ‘o’. Lho… emang beda ya antara besar kecilnya huruf? Iya… emang beda, karena dalam komputer, karakter besar dan kecil itu beda. Hal ini dikarenakan karakter-karakter tersebut memiliki kode ASCII yang berbeda.

Nah… setelah kita mengetahui huruf vokal itu apa saja, eit salah… bukan ‘huruf vokal’, tapi ‘karakter huruf vokal‘, selanjutnya ngapain? Ya… tentu saja kita mulai menghitungnya. Bagaimana proses menghitungnya? Proses menghitungnya mirip dengan anak kecil yang mulai belajar menghitung, yaitu menghitung satu persatu karakter huruf vokalnya :-) Trus… darimana proses mulai menghitungnya? Proses ini dimulai dari awal karakter dari string inputnya. Jumlah huruf vokal ini akan terus bertambah setiap kali ketemu karakter huruf vokal. OK… berikut ini idenya:

Karena kita belum mulai menghitung, maka jumlah huruf vokal ini mula-mula 0 terlebih dahulu. Trus… kita cek karakter pertama dari string input, yaitu ‘a’ (berdasarkan contoh di atas). Nah… karena karakter ini termasuk karakter huruf vokal, maka jumlah huruf vokal yang mula-mula 0, akan bertambah menjadi 1. Trus… kita lanjutkan pengecekan ke karakter kedua, yaitu ‘l’. Karena karakter ini tidak termasuk karakter huruf vokal, maka jumlah huruf vokal tidak bertambah, yaitu masih tetap 1. Nah… proses ini terus dilakukan sampai dengan karakter terakhir dari string input. Setelah proses ini selesai, akan diperoleh jumlah huruf vokal keseluruhan.

Dari algoritma di atas, maka kita bisa buat programnya. Oya, untuk programnya saya nyatakan dalam bentuk bahasa Pascal.

function jumVokal(x : string) : integer;
var jumlah, i : integer;
begin
   jumlah := 0;
   for i:=1 to length(x) do
   begin
       if (x[i] in ['A', 'I', 'U', 'E', 'O', 'a', 'i', 'u', 'e', 'o']) then jumlah := jumlah + 1;
   end;
   jumVokal := jumlah;
end;

Keterangan:
x adalah string input dan length(x) digunakan untuk mencari panjang string x atau jumlah karakter total dari x.

Selanjutnya, bagaimana dengan menghitung huruf konsonan? Pada prinsipnya caranya sama seperti mencari jumlah huruf vokal di atas. But… ngomong-ngomong, bisa jadi nanti sangat banyak ya karakter hurufnya. Katakanlah jumlah huruf alfabet itu ada 26. Huruf vokal ada 5, jadi huruf konsonan ada 26-5 = 21. Eit… tunggu dulu, karena ada huruf besar dan kecil, maka total karakter huruf konsonan ada 21 x 2 = 42. Wow… banyak sekali, jadi panjang deh programnya… :-(

Tapi jangan khawatir, ada ide lain mencari jumlah total huruf konsonannya, yaitu mencarinya dengan rumus ‘jumlah karakter string – (jumlah karakter vokal + jumlah karakter bukan huruf)‘. Lho kok gitu rumusnya? Iya donk, soalnya string yang dimasukkan sebagai input kan pasti terdiri dari karakter huruf dan bukan huruf. Sedangkan karakter huruf, terdiri dari konsonan dan vokal. Sehingga ‘total karakter penyusun string = jumlah karakter vokal + jumlah karakter konsonan + jumlah karakter non huruf‘. So… seperti itulah rumusnya.

Nah… berdasarkan rumus tersebut, maka tugas kita selanjutnya adalah mencari jumlah karakter yang bukan huruf. Untuk mencari jumlah karakter huruf vokal kan sudah, seperti yang saya jelaskan sebelumnya. Untuk mencari jumlah karakter non huruf, caranya sama seperti mencari jumlah vokal, yaitu kita cek satu persatu untuk setiap karakter penyusun string. Trus… apa yang dicek, ya… yang dicek adalah apakah karakter tersebut termasuk alfabet? Jika tidak, maka jumlah karakter non hurufnya bertambah. Proses ini terus dilakukan sampai dengan akhir dari string.

Yang menjadi pertanyaan selanjutnya adalah, bagaimana menyatakan apakah suatu karakter dari string bukan karakter huruf/alfabet? Mudah sekali kawan. Dalam Pascal, kita bisa nyatakan sebagai if (not(x[i] in ['A'..'Z', 'a'..'z'])) then … atau cara yang lain kita gunakan kode ASCII. Untuk karakter alfabet ‘A’ s/d ‘Z’, kode desimal ASCII nya adalah 65 s/d 90, sedangkan ‘a’ s/d ‘z’ kode desimal ASCII nya 97 s/d 122. Nah… berdasarkan ide ini, kita bisa buat programnya sekarang.

function jumNonHuruf(x : string) : integer;
var jumlah, i : integer;
begin
   jumlah := 0;
   for i:=1 to length(x) do
   begin
       if (not (x[i] in ['A'..'Z', 'a'..'z'])) then jumlah := jumlah + 1;
   end;
   jumNonHuruf := jumlah;
end;

Ingat ya… jangan lupa pakai operator NOT, karena kita akan mengecek apakah suatu karakter dalam string ‘bukan‘ termasuk karakter alfabet.

OK… mencari jumlah huruf vokal sudah, dan karakter non huruf juga sudah. Selanjutnya kita bisa buat program untuk mencari jumlah konsonan menggunakan rumus yang telah diberikan sebelumnya.

function jumKonsonan(x : string) : integer;
begin
   jumKonsonan := length(x) - (jumVokal(x) + jumNonHuruf(x));
end;

Implementasi program secara utuh untuk mencari jumlah huruf vokal, konsonan dan selain huruf adalah sebagai berikut:

program statistikHuruf;
var stringInput : string;

function jumVokal(x : string) : integer;
var jumlah, i : integer;
begin
   jumlah := 0;
   for i:=1 to length(x) do
   begin
       if x[i] in ['A', 'I', 'U', 'E', 'O', 'a', 'i', 'u', 'e', 'o'] then jumlah := jumlah + 1;
   end;
   jumVokal := jumlah;
end;

function jumNonHuruf(x : string) : integer;
var jumlah, i : integer;
begin
   jumlah := 0;
   for i:=1 to length(x) do
   begin
       if (not (x[i] in ['A'..'Z', 'a'..'z'])) then jumlah := jumlah + 1;
   end;
   jumNonHuruf := jumlah;
end;

function jumKonsonan(x : string) : integer;
begin
   jumKonsonan := length(x) - (jumVokal(x) + jumNonHuruf(x));
end;

begin
   stringInput := 'algoritma dengan pascal';
   writeln('Jumlah huruf vokal : ',jumVokal(stringInput));
   writeln('Jumlah huruf konsonan : ',jumKonsonan(stringInput));
   writeln('Jumlah karakter lain : ',jumNonHuruf(stringInput));
end.

OK… jadi deh programnya. Demikian mbak Sulis atas penjelasannya. Mudah-mudahan berguna buat Anda khususnya, dan buat pengunjung setia blog ini umumnya.

Eh… ada update nih…

Code di atas saya jadikan dalam bentuk modul-modul subroutine atau subprogram. Untuk mencari statistik karakter vokal saya jadikan subprogram sendiri, begitu pula untuk huruf konsonan dan karakter lain. Sekarang… bagaimana jika bentuk codenya tidak dalam bentuk subprogram? Ya… semua perintah di subprogram tinggal dipindah saja ke bagian utama program Pascal. Ini dia bentuk programnya:

program statistikHuruf;
var stringInput, x : string;
     jumlah,i , jumVokal, jumKonsonan, jumNonHuruf : integer; 

begin
   stringInput := 'algoritma dengan pascal';
   x := stringInput;

   { mencari jumlah huruf vokal }

   jumlah := 0;
   for i:=1 to length(x) do
   begin
       if x[i] in ['A', 'I', 'U', 'E', 'O', 'a', 'i', 'u', 'e', 'o'] then jumlah := jumlah + 1;
   end;
   jumVokal := jumlah;

   { mencari jumlah karakter lain }

   jumlah := 0;
   for i:=1 to length(x) do
   begin
       if (not (x[i] in ['A'..'Z', 'a'..'z'])) then jumlah := jumlah + 1;
   end;
   jumNonHuruf := jumlah;

   { mencari jumlah huruf konsonan }

   jumKonsonan := length(x) - (jumVokal + jumNonHuruf);

   { menampilkan outputnya }

   writeln('Jumlah huruf vokal : ',jumVokal);
   writeln('Jumlah huruf konsonan : ',jumKonsonan);
   writeln('Jumlah karakter lain : ',jumNonHuruf);
end.

Demikian mbak Sulis… btw… panggilannya mbak Sulis or Elis nih… he..he..he.. :-)


Baca Juga Artikel Terkait
Algoritma Mengambil Substring
Algoritma Membalik String (String Reverse)
Algoritma Sorting dan Implementasinya
Function Menghitung Pangkat Bilangan dengan Pascal
Apa Sih Gunanya Function??


 photo 300x250_zpsff09f9e7.gif
Slot iklan tersedia, pasang iklan di atas


Kata kunci: algoritma - pascal - Programming - statistik -


Ada 15 komentar dalam artikel ini.



  1. Shamuya says:

    minta tolong neah,.,
    kalau script untuk membaca bahwa itu satu kata gimana aA mass,.?
    terima kasih atas perhatiannya.



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*