Rabu, 10 Juni 2009

Statemen Masukan dan Keluaran pada Program

Statemen Assignment

Penyelesaian suatu masalah dengan bantuan komputer, memerlukan data untuk diolah, dan pengolahan data terjadi di memori, karena komputer atau lebih tepatnya CPU (Central Processing Unit) hanya dapat mengolah data, bila data telah berada dimemori, bahkan lebih dalam lagi beberapa pengolahan data memerlukan tempat di register CPU. Cara paling sederhana untuk menempatkan data di memori, bisa dilakukan dengan satemen assignment seperti pada contoh program berikut. Akan diselesaikan perhitungan luas suatu segi-empat, dari langkah-langkah yang kita ketahui selama ini dalam menghitung luas segi empat, maka kita dapat menyusun algoritma sebagai berikut :

Algoritma 3.1. Menghitung Luas Segi Empat

1. Berikan data panjang

2. Berikan data lebar

3. Hitung Luas = panjang x lebar

Setelah kita mendapatkan langkah-langkah yang diperlukan, pekerjaan selanjutnya adalah membuat program. Dalam pemrograman, yang pertama harus diperhatikan adalah mendeklarasikan variabel yang diperlukan, dalam contoh ini jelas diperlukan tiga variable yaitu masing masing untuk : panjang, lebar dan luas, katakanlah data panjang dan lebar semuanya berupa bilangan bulat yaitu masing masing 5 dan 4 (cm), maka program selengkapnya menjadi :

Contoh: Menghitung Luas Segitiga

Program Hitung_Luas_Segi_4;

var panjang,lebar,luas : integer;

{Deklarasi Variabel}

begin

panjang := 5;

lebar := 4;

luas := panjang * lebar;

end.

Disini data diberikan langsung dengan statemen assignment yaitu dengan simbol := , artinya nilai 5 diisikan kepada variabel panjang dan nilai 4 diisikan kepada variabel lebar. Sekilas sudah dapat diketahui, kelemahan cara memasukan nilai-nilai seperti diatas, yaitu adanya kekakuan dalam memberikan data, Ekspresi panjang * lebar menghasilkan suatu nilai hasil kali panjang dengan lebar dan hasil ini diserahkan kepada variabel luas. Bila kita ingin mengubah data, maka tidak ada cara lain, kecuali dengan memasukkan data baru, setelah program dihentikan, misalnya panjang := 10; dan lebar := 8;. Kekurangan ini dapat diatasi dengan menggunakan statemen input, yaitu membaca data dari luar melalui papan tombol.

Statemen Masukan

Seperti dijelaskan diatas, pemrograman dengan cara langsung menyerahkan data kepada variabel dengan statemen assignment ( := ), dan ternyata kurang memuaskan. Maka diperlukan statemen input yaitu suatu perintah untuk membaca data dari luar, dalam hal ini melalui papan tombol. Dalam bahasa Pascal perintah ini dilaksanakan dengan statemen :

read(x);

artinya : masukan data dari papan tombol ke variabel x.

Dengan perintah read(), maka program diatas dapat ditulis kembali menjadi :

Contoh 3.2 Membaca Data dari Papan-tombol

Program Hitung_Luas_Segi_4;

var panjang,lebar,luas : integer;

{Deklarasi Variabel}

begin

read(panjang);

read(lebar);

luas := panjang * lebar;

end.

Perintah read(panjang) dan read(lebar), masing masing meminta supaya data dibaca lewat papantombol untuk disimpan di variabel-variabel panjang dan lebar. Kemudian hasil perkalian kedua variabel berupa perhitungan luas, disimpan di variabel luas. Dengan cara ini dapat dihitung luas untuk berbagai data panjang dan lebar.

Statemen input lain yang serupa, adalah perintah readln, tetapi dianjurkan apabila diperlukan pembacaan data secara beruntun, maka gunakan readln(), Perintah read ataupun readln dapat menggunakan lebih dari satu argumen, read(x,yz) atau readln(A,B,C,D,E).

Statemen Keluaran

Keluaran ke Layar Monitor

Hasil perkalian panjang dengan lebar pada program hitung_luas_segi_4 diatas, terbenam didalam memori yaitu berada di variabel luas. Untuk mentayangkan hasil perkalian tersebut di layar monitor diperlukan statemen keluaran. Didalam bahasa Pascal ada dua macam perintah untuk menayangkan niliai dari suatu variabel, kedua perintah tersebut adalah :

write dan writeln. Perbedaan antara write dan writeln dapat dijelaskan sebagai berikut.

write('TEST');

writeln('TEST');

Dengan perintah write, kata TEST akan ditayangkan di layar monitor, pada posisi kursor sebelum perintah dijalankan, setelah perintah dijalankan, kursor pindah ke ujung kata TEST. Sama seperti perintah write, tetapi posisi kursor pindah ke baris berikutnya, setelah perintah writeln dijalankan.

Contoh: Menampilkan Hasil di Layar Monitor

Program Hitung_Luas_Segi_4;

var panjang,lebar,luas : integer;

begin

{1} write('Masukan data panjang : '); readln(panjang);

{2} write('Masukan data lebar : '); readln(lebar);

{3} luas := panjang * lebar;

{4} writeln('Luas = ', luas);

end.

Apabila program diatas dijalankan akan tampak dialog dilayar monitor :

Masukan data panjang : 21

Masukan data lebar : 11

Luas = 231

Text yang diberi garis bawah adalah masukan data oleh operator. Dari contoh diatas, terlihat bahwa dengan menambah perintah write pada baris 1 dan 2, operator akan tahu, data apa yang harus dimasukan, panjang atau lebar.

Contoh: Menampilkan Hasil di Layar Monitor dan mengganti Write dengan Writeln.

Program Hitung_Luas_Segi_4;

var panjang,lebar,luas : integer;

begin

{1} writeln('Masukan data panjang : '); readln(panjang);

{2} writeln('Masukan data lebar : '); readln(lebar);

{3} luas := panjang * lebar;

{4} writeln('Luas = ', luas);

end.

Ketika program diatas dijalankan akan tampak dialog dilayar monitor, sebagai berikut :

Masukan data panjang :

21

Masukan data lebar :

11

Luas = 231

Jadi dengan perintah Writeln, text apapun setelah text yang ditulis dengan perintah itu akan ditampilkan dibaris berikutnya. Ekspresi dapat menjadi argumen dalam statemen write atau writeln, seperti contoh pada baris ke tiga dan ke empat pada program utama diatas :

luas := panjang * lebar; dan writeln('Luas = ', luas);

dapat digantikan dengan satu baris perintah :

writeln('Luas = ', panjang*lebar);

Penggunaan cara diatas sepenuhnya menjadi pilihan pemrogram, karena pada beberapa kasus, penulisan yang pertama lebih jelas dan variabel luas dapat digunakan untuk pengolahan berikutnya, misalkan untuk menghitung isi.

Contoh: Menghitung volume kotak dengan membaca tiga data sekaligus

Program Hitung_Luas_Segi_4;

var p,l,t,v : integer;

begin

{1} write('Masukan data panjang,lebar,tinggi : '); readln(p, l,t);

{2} v := p * l * t;

{3} writeln('Luas = ', luas);

end.

Dialog berikut akan tampak, bila program diatas dijalankan.

Masukan data panjang, lebar, tinggi : 10 6 4

Luas : 240

Format Penulisan

Statemen write dan writeln dapat dilengkapi dengan format penulisan, ada dua format penulisan, yang pertama untuk penulisan tipe integer dan string, yang kedua adalah untuk penulisan tipe real. Format penulisan untuk tipe integer dan string : write(A:n) atau writeln(B:n) dengan : A, B = variabel yang akan ditampilkan nilainya n = maksimum tempat yang disediakan, penulisan akan diratakan disebelah kanan (right justified), n harus lebih besar dari jumlah atau angka yang berada di variabel A atau B. Misalkan isi variabel A adalah 4. Perintah Ditampilkan di layar monitor:

writeln(A : 5); 4

writeln(A*10 : 5); 40

writeln(A*100 : 5); 400

Misalkan isi variabel S1 := 'Lektor Muda', S2 := 'Mahasiswa’ dan S3 := 'Dosen'

Perintah Ditampilkan di layar monitor

writeln(S1 : 7); Lektor Muda

writeln(S2 : 7); Mahasiswa

writeln(S3 : 7); Dosen

Tempat yang disediakan, dimulai dari posisi kursor, hingga n karakter. Bila string melebihi tempat yang disediakan maka string akan terpotong dibagian awal. Format penulisan untuk tipe real : write(X : n : d) atau writeln(Y : n : d) dengan X,Y = variabel yang akan ditampilkan nilainya n = maksimum tempat yang disediakan untuk angka angka, termasuk termasuk tanda titik, sebagai pemisah desimal. d = maksimum tempat yang disediakan untuk angka desimal. Bila X = 123.75 dan Y = 12.375

Perintah Ditampilkan di layar monitor:

writeln(X : 6 : 2); 123.75

writeln(Y : 6 : 2); 12.37

Bila suatu variabel X dan Y ditampilkan di layar monitor dengan perintah write atau writeln tanpa format maka yang akan tampak di monitor adalah variabel X : 1.2375E2 variabel Y : 1.2375E1 sebagai tampilan standar untuk tipe real.

Contoh: Penulisan Format Bilangan Real

Program Bonus;

const k = 1.5;

var x : real;

begin

write('Masukan gaji anda : '); readln(x);

writeln('Anda mendapat bonus 50 % ');

writeln('bulan ini anda terima rp : ', x * k : 9 : 2);

end.

Akan tampak dilayar monitor :

Masukan gaji anda : 1000000

Anda mendapat bonus 50 %

Bulan ini anda terima rp 1500000.00

Keluaran ke Printer

Statemen ini bukan merupakan perintah standar Pascal, tetapi khusus untuk pemrogram yang menggunakan TURBO Pascal. Perintah untuk menuliskan suatu hasil atau apapun ke printer dapat dilakukan dengan statemen write dan writeln, tetapi dengan tambahan argument yaitu identifier standar TURBO Pascal LST.

Contoh Write(Lst, x), maka isi variabel x akan dicetak di kertas printer. Penggunaan argumen lst, harus didahului dengan penulisan uses printer pada awal program, artinya pemrogram memberitahu kompiler TURBO Pascal bahwa unit printer akan digunakan. Perlu diketahui bahwa sebagai kelengkapan Library, mulai dari versi 4.0 keatas TURBO Pascal menyediakan unit library pilihan yaitu :

  • Unit CRT untuk manipulasi layar
  • Unit PRINTER untuk printer
  • Unit GRAPH untuk penggunaan grafik

Jadi perintah-perintah yang berkenaan dengan grafik akan terdapat pada Unit Graph dan perintah-perintah berkenaan dengan layar monitor akan terdapat pada Unit CRT. Keterangan lebih rinci, dapat ditemui pada buku manual TURBO Pascal.

Contoh: Penulisan Hasil ke Printer

Uses printer;

var x : real;

begin

write('Masukan gaji anda : '); readln(x);

writeln(Lst,'Anda mendapat bonus 50 % ');

writeln(Lst,'bulan ini anda terima rp : ', 1.5*x : 9 : 2);
READ MORE - Statemen Masukan dan Keluaran pada Program

Struktur Bahasa PASCAL Secara Umum

Pascal mempunyai struktur sebagai berikut:
1. Bagian Judul Program
2. Bagian Deklarasi
a. Deklarasi tipe data (TYPE)
b. Deklarasi variabel (VAR)
c. Deklarasi konstanta (CONST)
d. Deklarasi label (LABEL)
e. Deklarasi sub-program (PROCEDURE dan FUNCTION)
3. Bagian Program Utama Perintah-perintah.

Teks Pascal setidaknya memiliki bagian Judul Program, bagian Deklarasi, dan Bagian Program Utama yang berupa perintah-perintah. Sedangkan untuk bagian deklarasi menyesuaikan dengan isi dari program itu sendiri. Contoh program PASCAL:

program TAMBAH_00; { Menjumlahkan dua bilangan yang nilainya diberikan dalam perintah}
var X, Y, Z: integer; { Deklarasi variabel X,Y dan Z sebagai bilangan bulat }
BEGIN { Program Utama Mulai }
X := 50; { Perintah memberikan nilai 50 pada var. X }
Y := 25; { Perintah memberikan nilai 25 pada var. Y }
Z := X + Y; { Perintah menjumlahkan X dan Y serta menyimpan hasilnya ke Z}
END। { Akhir Program Utama }


Pada contoh ini nilai X dan Y tidak bisa sembarang, karena didefiniskan tertentu. Agar nilai X dan Y bisa bebas ditentukan, nilai X dan Y dibaca dari default input.

program TAMBAH_01; { Menjumlahlan dua buah bilangan yang dibaca dari default input }
var X, Y, Z: integer; { Deklarasi variabel X,Y dan Z sebagai bilangan bulat }

BEGIN { Program Utama Mulai }
read(X); { Membaca nilai X lewat key-board }
read(Y); { Membaca nilai Y lewat key-board }
Z := X + Y; { Menjumlahkan X dan Y serta menyimpan hasilnya ke Z }
write(Z); { Menyajikan Z ke layar monitor }
END.
{ Akhir Program Utama }

Dasar Bahasa PASCAL

Unsur-unsur Pemrograman
a. Mendapatkan data dengan membaca data dari default input (key board, file atau sumber data lainnya).
b. Menyimpan data ke dalam memori dengan struktur data yang sesuai,
c. Memproses data dengan instruksi yang tepat.
d. Menyajikan atau mengirimkan hasil olahan data ke default output (monitor, file atau tujuan lainnya).


Jenis identifier

a. Identifier umum

Merupakan identifier yang didefinisikan sendiri oleh pemrogram. Pemrogram mempunyai kebebasan untuk menentukan nama identifiernya, dengan syarat nama tersebut tidak sama dengan identifier standar dan reserved word yang akan dibahas lebih lanjut. Hal ini untuk mencegah kesalahan yang bisa timbul akibat tumpang tindih identifier dalam program.


b. Identifier Standar (Baku)

Merupakan identifier yang didefinisikan oleh pembuat kompiler Pascal. Biasanya pembuat kompiler menyediakan suatu library yang sudah ada didalam kompiler. Library berisi berbagai procedure, fungsi atau unit yang sudah siap pakai. Misalnya Turbo Pascal Windows 1.5 memiliki suatu unit untuk memproses output yaitu wincrt, gotoxy, yang dengan mudah bisa dipakai oleh programmer di dalam menuliskan kode-kode programnya. Dinamai Identifier Standar karena suatu kompiler tidak harus memilikinya, masing-masing kompiler dimungkinkan mempunyai identifier yang berbeda untuk suatu tugas yang hampir sama. Misalnya Turbo Pascal versi DOS menggunakan crt untuk melakukan fungsi yang sama dengan wincrt (TPW 1.5). Beberapa Identifier Standar yang dimiliki oleh kompiler-kompiler Pascal antara lain:

abs arctan boolean char cos dispose eof eoln exp false input integer ln maxint new odd ord output pack page pred read readln real reset rewrite round sin sqr sqrt succ text true trunc write writeln


c. Identifier "reserved word", yaitu yang sudah didefinisikan dan digunakan oleh bahasa PASCAL sendiri (Kita tidak bisa menamai identifier kita dengan ini).

and array begin case const div do downto else end file for forward function goto if in label mod nil not of or packed procedure program record repeat set then to type until var while with

Deklarasi Variable:
Mendeklarasikan varibel adalah:
a. Memberikan nama variabel sebagai identitas pengenal
b. Menentukan tipe data variabel
Contoh deklarasi variabel:

var K : integer;
R : real;
C : char;
T : boolean;

Beberapa identifier yang sejenis bisa dideklarasikan bersamaan.

var i, j, k : integer;{Variabel i, j dan k sebagai integer}
namaMHS, alamatMHS : char; {Nama dan alamat mahasiswa }

Deklarasi Konstanta:
Mendeklarasikan konstanta adalah:
a. Memberikan nama konstanta sebagai identitas pengenal
b. Menentukan nilai konstanta
Contoh deklarasi konstanta:

const MaximumSize = 100; {integer }
ExitCommand = 'Q'; {char }


Tipe Data

Tipe data yang disediakan oleh PASCAL meliputi:
1.
Tipe Data Sederhana

merupakan tipe data dasar yang sering dipakai oleh program, meliputi: integer (bilangan bulat), real (bilangan pecahan), char (alphanumerik dan tanda baca), dan boolean (logika). Untuk data integer dan real masing-masing terbagi menjadi beberapa kategori

a. Bilangan Integer
merupakan tipe data berupa bilangan bulat, terbagi atas beberapa kategori seperti terlihat dalam tabel 1। tabel 1 menunjukkan jenis data, ukuran dalam memori dan rentang nilainya.


tabel 1. Tipe Data Bilangan Integer

Tipe Data

Ukuran Tempat

Rentang Nilai

Byte

1 byte

0 s/d +255

Shortint

1 byte

-28 s/d +127

integer

2 bytes

-32768 s/d 32767

Word

2 bytes

0 s/d 65535

Longint

4 bytes

2147483648 s/d 2147483647



Contoh bilangan integer adalah: 34 6458 -90 0 1112 Penggolongan tipe data integer tersebut dimaksudkan untuk membatasi alokasi memori yang dibutuhkan misalkan untuk suatu perhitungan dari suatu variabel bilangan diperkirakan nilai maksimumnya 32767 kita cukup mendeklarasikan variabel bilangan sebagai integer (2 byte), daripada sebagai longint(4 byte). Di dalam kompilernya, Pascal menyediakan konstanta untuk bilangan Integer yaitu: MaxInt and MaxLongInt, pemrogram bisa menggunakannya di dalam programnya tanpa harus terlebih dahulu mendefinisikannya.

-MaxInt bernilai 32.767
-MaxLongint bernilai 2.147.483.647.
contoh:

Program display_maxint;
uses wincrt;
begin writeln (maxint)
end.

Hasilnya: 32।767


b. Bilangan Real
Bilangan real atau nyata merupakan jenis bilangan pecahan, dapat dituliskan secara biasa atau model scientific . Contoh bilangan real: 34.265 -3.55 0.0 35.997E+11, dimana E merupakan simbol perpangkatan 10. Jadi 452.13 mempunyai nilai sama dengan 4.5213e2. Penggolongan tipe data bilangan real dapat dilihat pada tabel 2. Bilangan रियल


Tabel 2. Tipe Data Bilangan Real

Tipe Data

Ukuran Tempat

Rentang Nilai

real

6 bytes

2.9 x 10-39 s/d 1.7 x1038

single

4 bytes

1.5 x 1045 s/d 3.4 x 1038

double

8 bytes

5.0 x 10-324 s/d 1.7 x 10308

extended

10 bytes

3.4 x 10-4932 s/d 1.1 x 104932

comp

8 bytes

-9.2x 1018 s/d 9.2x 1018

c. Char

Tipe data ini menyimpan karakter yang diketikkan dari keyboard, memiliki 266 macam yang terdapat dalam tabel ASCII (American Standard Code for Information Interchange). Contoh: 'a' 'B' '+', dsb। Yang perlu diingat bahwa dalam menuliskannya harus dengan memakai tanda kutip tunggal. Jenis data ini memerlukan alokasi memori sebesar 1(satu) byte untuk masing-masing data.


d. Tipe Data Boolean

merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE (benar) atau FALSE (salah). Turbo Pascal for Windows memiliki tiga macam jenis ini yaitu: Boolean, WordBool, dan LongBool. Tipe boolean memakai memori paling kecil, sedangkan WordBool dan LongBool dipakai untuk menulis program yang sesuai dengan lingkungan Windows.

Tabel 3. Tipe Data Boolean

Tipe Data

Ukuran Tempat

Boolean

1 byte

WordBool

2 byte

Longbool

3 byte


Sebagai bilangan ordinal boolean true mempunyai nilai 1(satu), sedangkan false nilainya adalah 0(nol).
Contoh: Program display_bool;
uses wincrt;
begin writeln(ord(true));
writeln(ord(false));
end.

Hasilnya: 1 0 3।2.


Tipe Data Terstruktur

tipe ini terdiri atas : array, record, set, dan file. String adalah tipe data jenis array, tetapi karena string memiliki kekhasan tersendiri sebagai array dari karakter maka penulis perlu memberikan penjelasan tersendiri. Sedangkan untuk array, record, dan file perlu dijelaskan dalam bab yang lain karena agak banyak hal-hal yang perlu dibahas.

a. Tipe Data String
merupakan suatu data yang menyimpan array (larik), sebagai contoh 'ABCDEF' merupakan sebuah konstanta string yang berisikan 6 byte karakter. Ukuran Tempat untuk tipe data ini adalah 2 s/d 256 byte, dengan jumlah elemen 1 s/d 255. String dideklarasikan dengan string [ konstanta ] atau string. Bila ukuran string tidak didefinisikan maka akan banyak memakan ruang, karena ukuran string menyesuaikan dengan defaultnya. Misalkan
var kata: string [20]; atau var kata: string; karena string merupakan array dari karakter. Maka kata[1] merupakan karakter pertama dari string, kemudian kata[2], merupakan elemen kedua, dst.
Contoh:

Program hal_string;
Uses wincrt;
var s : string;
begin s:='Hello';
writeln(s);
writeln('panjang dari string adalah: ',ord(s[0]));
end.

Karakter nol merupakan karakter yang menyatakan panjang string. Sehingga ord(s[0]) menyatakan panjang dari string tersebut. Panjang string juga bisa dinyatakan sebagai length(s).
READ MORE - Struktur Bahasa PASCAL Secara Umum