bE miNe

bE miNe

Senin, 30 Agustus 2010

PEMROSESAN TEKS

Teks (text) memiliki definisi sebagai deretan karakter yang bisa direkam ke dalam suatu file/berkas/arsip.
• Suatu teks bisa terdiri atas beberapa kata (words).
• Setiap kata terpisah dari kata lainnya, dipisahkan oleh paling sedikit satu spasi.
• Suatu teks dapat terdiri atas beberapa baris (line) yang dibentuk oleh beberapa kata.
• Setiap baris diakhiri oleh marka end-of-file (BOF) dan diakhiri dengan marka end-of-file (EOF).

Deklarasi suatu teks didahului dengan tipe-data text.
Beberapa instruksi yang berkaitan dengan teks adalah berikut :
• Mengembalikan penunjuk teks ke posisi awal (BOF) dari file: reset (F).
• Membuka suatu file teks yang ada di storage (disk): assign ( F, nama_file ).
• Membaca satu karakter dari file teks: read ( F, char ).
• Merekam satu karakter ke file teks: write (F, char ).
• Menutup file teks: close (F).


contoh: Menghitung jumlah karakter (tidak termasuk marka EOL, BOF, dan EOF) yang ada dalam suatu file teks bernama mytext.txt.

Algoritma Hit_karakter
{menghitung jumlah karakter yang ada dalam suatu file teks}
Deklarasi
text F;
char k;
integer jkar;
Deskripsi
assign (F,”mytext.txt”);
{kembalikan ke awal file, baca BOF}
read ( F,k );
if ( k!=BOF)
then reset (F);
read (F,k);
endif.

{baca karakter hingga akhir file}
read (F,k);
jkar  0;
while (k != EOF) do
{hindari tanda EOL}
if (k!=EOL)
then jkar  jkar + 1;
endif.
read (F,k);
endwhile.

write (“jumlah katakter (termsuk spasi) = “,jkar);

Fungsi

Fungsi pada hakikatnya serupa dengan prosedur dalam pelaksanaan nya, tetapi harus mengembalikan suatu nilai ke program yang menggambarkan fungsi. Prosedur hanya bisa mengembalikan nilai melalui parameter input/ output(in-out).

Bentuk Umum :
Fungsi nama_fungsi ( parameter formal )  tipe_hasil
{ spesifikasi fungsi }

Deklarasi
{ variabel lokal }
Deskripsi
{ langkah/proses yang dilakukan oleh fungsi }
....................
....................
{ pengembalian nilai }
return hasil.

Contoh : Berikut ini adalah contoh yang melaksanakan fungsi matematis
F(X) = x² + 8x + 10.
Fungsi F (input real x)  real
{ menghitung nilai fungsi f(x) = x^2 + 8x + 10}

Deklarasi
real y;
Deskripsi
y  x*x + 8*x + 10;
return y;

PARAMETER

Ketika suatu prosedur dipanggil maka hakikinya bisa dilakukan pertukaran data antara program utama dan prosedur. Pertukaran ini dilakukan melalui parameter.

Parameter Aktual adalah parameter yang disertakan pada saat prosedur dipanggil untuk dilaksanakan, sering disebut argumen.
Parameter Formal adalah parameter yang dituliskan pada definisi suatu prosedur/fungsi. Ada tiga jenis prameter formal, yaitu:
1. parameter masukan (input) : parameter yang menerima nilai dari parameter aktual.
2. paameter keluaran (output): parameter yang menyerahkan nilai ke parameter aktual
3. parameter masukan dan keluaran (input-output): parameter yang menerima nilai dari parameter aktual untuk proses dalam prosedur kemudian diserahkan kembali ke parameter aktual setelah selesai.

Contoh 2: Algoritma berikut ini menunjukkan pemakaian parameter masukan dan parameter keluaran untuk prosedur menghitung luas segitiga.

Algoritma Luas_segitiga
{menghitung luas segitiga dengan menggunakan prosedur yang memanfaatkan parameter input dan parameter output}
Deklarasi
real alas , tinggi, luas;
prosedur Hit_Luas_segi_3(input real a, t; output real Is;);
Deskripsi
write (“Masukkan alas segitiga : “);
read (alas);
write (“Masukkan tinggi-nya : “);
read ( tinggi );

Hit_Luas_segi_3 ( alas, tinggi, luas );
write (“Luas segitiga=”,luas);

prosedur Hit_Luas_segi_3 ( Input real a, t; output real Is;)
{ prosedur menghitung luas segi_3, menerima a (alas) dan t (tinggi), mengembalikan Is (luas)}

Deklarasi {}
Deskripsi
Is  a * t/2.0;

VARIABEL LOKAL DAN VARIABEL GLOBAL

Penggunaan prosedur pada suatu program menyebabkan munculnya dua kategori variabel, yaitu variabel lokal dan variabel global. Variabel Lokal adalah variabel yang hanya dikenal dan berlaku dalam suatu prosedur saja. Variabel Global adalah variabel yang berlaku di semua bagian program dan di semua prosedur.

Semua variabel yang didefinisikan pada deklarasi suatu prosedur adalah variabel lokal, dan variabel-variabel yang didefinisikan pada deklarasialgoritma utama adalah variabel global.

Program yang menggunakan banyak variabel global terasa memudahkan karena tak perlu lagi mendefinisikan variabel dalam prosedur. Namun,jika terdapat terlalu banyak variabel global, program akan sulit di-debug (cari kesalahan) dan memerlukan memori yang lebih besar.

BENTUK UMUM PROSEDUR (SUBPROGRAM)

Prosedur nama_prosedur

{spesifikasi dari prosedur, keadaan awal sebelum prosedur dilaksanakan dan juga keadaan akhir setelah prosedur dilaksanakan}

Deklarasi
{deklarasi variabel-variabel prosedur}
Deskripsi
{deskripsi dari tugas-tugas prosedur}

Contoh 1: Andaikan sebuah program menyediakan fasilitas untuk menghitung luas, keliling, dan diagonal dari sebuah persegi panjang dengan kemungkinan pemilihan melalui suatu menu.
Contoh soal diatas dapat dibagi kedalam enam prosedur, yaitu prosedur menampilakan menu, prosedur membaca dimensi persegi panjang, menghitung luas, menghitung keliling, menghitung diagonal, dan menampilkan hasil.

Algoritma Empat_Persegi_Panjang
{algoritma ini menunjukkan contoh pemakaian prosedur untung menghitung luas, keliling, dan diagonal dari empat persegi panjang}

Deklarasi
integer pilihan;
real panjang, lebar, hasil;
{semua prosedur harus dideklarasikan}
prosedur menu;
prosedur baca_dimensi;
prosedur hitung_luas;
prosedur hitung_keliling;
prosedur hitung_diagonal;
prosedur tampil_hasil;

Deskripsi
Pilihan  0;
repeat
menu;
write (“Masukkan pilihan anda:”);
read (pilihan);
if (pilihan <4)
then baca_dimensi;
endif.
case (pilihan)
1 : hitung_luas;
2 : hitung_keliling;
3 : hitung_diagonal;
4 : write (“selesai ... sampai jumpa”);
default: write (“pilihan salah, ulangi !”);
endcase.
if (pilihan <4)
then tampil_hasil;
endif.
until (pilihan = 4).
prosedur menu
{menampilkan menu program}

Deklarasi
Deskripsi
write (“Menu Program Empat Persegi Panjang:”);
write (“1.Menghitung Luas:”);
write (“2.Menghitung Keliling:”);
write (“3.Menghitung Diagonal:”);
write (“4.Keluar dari Program:”);
prosedur baca_dimensi
{membaca dimensi pesergi panjang}
Deklarasi.
Deskripsi
write (“Masukkan Panjang:”);
read (panjang);
write (“Masukkan Lebar:”);
read (lebar);
prosedur hitung_luas
{menghitung luas empat persegi panjang}
Deklarasi
real luas;
deskripsi
luas  panjang * lebar;
hasil  luas;
prosedur hitung_keliling
{menghitung keliling empat persegi panjang}
Deklarasi
real keliling;
Deskripsi
keliling  2 * (panjang = lebar);
hasil  keliling;
prosedur hitung_diagonal
{menghitung diagonal empat persegi panjang}
Deklrasi
real diagonal;
Deskripsi
diagonal  sqrt ( panjang ^2 + lebar^2);
hasil  diagonal;
prosedur tampil_hasil
{menampilkan hasil dari program ini}
Deklarasi.
Deskripsi
write (“hasil=’,hasil);

MENGHITUNG NILAI RATA-RATA DAN VARIASI

Andaikan ada N biasa yang dimasukkan lewat keyboard maka nilai rata-rata adalah jumlah semua bilangan tersebut dibagi N. Dengan kata lain:
Rata-rata = (x1 + x2 + ... + xn) / N= ∑ x / N

Varians adalah nilai yang menunjukkan besarnya jumlah perbedaan dan setiap bilangan terhadap nilai rata-rata, atau:
Varians = (∑ ( x – Rata)² ) / (N-1) = (∑x²-(∑x)² /N ) / (N-1)

Analisis:
- Tetapkan N
- Lakukan perulangan mulai dari i=1 s/d N
• masukkan x
• jumlahkan x, S=S+x
• jumlahkan x², K=K+x²
- Hitung Rata = S/N
- Hitung Varians = (K -S² / N)/(N-1)

Algoritmanya sebagai berikut:

Algoritma Nilai_Rata_dan_Varians
{menghitung nilai Rata dan Varians dari N buah bilangan}
Definisi Variabel
integer N, i;
real x, S, K, Rata, Varians;

Rincian Langkah
write (“Berapa banyak bilangan ? :”);
read (N);
S  0;
K  0;
for (i=1 to N step 1)
write (“Masukkan bilangan ke – “,i);
read (x);
S  S+x;
K  K+x*x;
endfor.
Rata  S/N;
Varians  (K-S*S/N)/(N-1);
write (“Rata-rata = “, Rata);
write (“Varians=”, Varians);

MENGELOMPOKKAN DATA


Andaikan dari keyboard dimasukkan N buah data (bilangan bulat) kemudian akan dikelompokkan menjadi dua macam dua macam, yaitu kelompok bilangan ganjil dan kelompok bilangan genap dalam bentuk jumlahan sehingga keluaran (output) berbentuk sebagai berikut:

Jumlah bilangan Ganjil  = ....
Jumlah bilangan Genap = ....

Analisis:
1.       Berapa banyak data harus diketahui terlebih dahulu à N
2.       Lakukan perulangan sebanyak N kali untuk :
a.        Meminta data
b.       Memeriksa data apakah ganjil atau genap
c.       Menjumlahkan data sesuai kelompoknya
3.       Tampilkan hasil penjumlahan.

Algoritma GanjilGenap
{ mengelompokkan data dalam bentuk jumlahan bilangan ganjil dan genap }

Deklarasi
            integer cacah, N, angka, Genap, Ganjil;
Dekripsi
            write (“Berapa banyak bilangan ?”);
            read ( N );
            cacah ß 1;
Genap ß 0;
Ganjil ß 0;

Repeat
write (“Masukkan bilangan ke-“, cacah);
read ( angka );
if (angka % 2 = 0 )
then Genap ß Genap + angka;
else Ganjil ß Ganjil + angka;
endif.
cacah ß cacah + 1;
until (cacah > N);

write (“Jumlah bilangan Ganjil =”, Ganjil);
write (“Jumlah bilangan Genap =”, Genap);