Handout Aplikom
Handout Aplikom
+ - * / := . , ;
: / = <> < <= >= >
( ) [ ] (* *) ..
2. Program Variabel;
{--------------------------------------------------------------------------------------}
{ Contoh untuk menunjukkan program yang mengandung }
{ variabel }
{--------------------------------------------------------------------------------------}
USES WinCrt ;
VAR
Jumlah : Integer; { Deklarasi variable jumlah}
BEGIN
Jumlah : =23; {Memberi nilai tehadap variable}
Writeln (Jumlah) ; {Menampilkan isi variable}
END.
3. Program TesJum;
{---------------------------------------------------------------------------------}
{Contoh untuk menunjukkan hasil operasi penjumlahan }
{ untuk berbagai kemungkinan tipe operand }
{---------------------------------------------------------------------------------}
USES WinCrt ;
BEGIN
ClrScr;
Writeln ( ‘4 + 2 = ‘, 4 + 2 ) ;
Writeln ( ‘4.0 + 2 = ‘, 4.0 + 2) ;
Writeln ( ‘4 + 2.0 = ‘, 4 + 2.0 ) ;
Writeln ( ‘4.0 + 2.0 = ‘, 4.0 +2.0 ) ;
END
4. Program TesKali ;
{ ----------------------------------------------------------------------------}
{ Contoh untuk menunjukkan hasil operasi perkalian }
{ untuk berbagai kemungkinan tipe operand }
{ ---------------------------------------------------------------------------}
USES WinCrt ;
BEGIN
ClrScr;
Writeln ( ‘4 * 2 = ‘, 4 * 2 ) ;
Writeln ( ‘4.0 * 2 = ‘, 4.0 * 2 ) ;
2
Algoritma dan Pemograman
3
Algoritma dan Pemograman
sebagai contoh :
Ekspresi Arti Hasil
2* 3 + 2 (2*3) + 2 8
2* 3 + 2 * 4 (2*3) + (2 * 4) 14
6* 2 DIV 3 (6 * 2) DIV 3 4
3+ 4 – (5 * 2 – 1) (3 + 4) – ((5 * 2) – 1) -2
4.0 / 3.0 * 2 (4.0 / 3.0) * 2.0 2.6666
Jadi, tanda ( ) memiliki pengutamaan tertinggi, diikuti dengan tanda pengalian,
pembagian, dan kemudian penjumlahan dan pengurangan.
Dalam penggunaan fungsi baku, perhatikan tipe data argument fungsi yang
bersangkutan. Tipe hasil harus berlaku bagi tipe ekspresi yang ditinjau. Kedua tipe
(argument dan hasil) tidak perlu sama. Berikut ini adalah table tipe data yang sesuai
bagi setiap fungsi Pascal yang ditunjukkan.
Ketiga operator logika AND, OR dan NOT beroperasi hanya pada nilai
Boolean (BETUL atau SALAH).
Dalam kasus ekspresi Boolean, Pascal menentukan sebuah pernyataan
tambahan. Semua ekspresi bagian (subexpression) harus diletakkan didalam tanda
kurung kecuali jika diawali dengan NOT.
Misalnya, K, L, M, dan N didefinisikan sebagai variable–variable Boolean. Contoh
berikut adalah ekspresi Boolean :
BEGIN
5
Algoritma dan Pemograman
ClrScr;
Writeln ( ‘6 MOD 3 = ‘, 6 MOD 3 );
Writeln ( ‘7 MOD 3 = ‘, 7 MOD 3 );
Writeln ( ‘8 MOD 3 = ‘, 8 MOD 3 );
Writeln ( ‘9 MOD 3 = ‘, 9 MOD 3 );
END.
5. Program Prioritas
Program Prioritas;
{----------------------------------------------------------------------}
{Contoh untuk menunjukkan efek pemberian tanda }
{kurung pasa suatu ekspresi }
{----------------------------------------------------------------------}
USES WinCrt;
BEGIN
ClrScr;
Writeln ( 1 + 2 * 3 ) ;
Writeln ( (1 + 2) * 3 ) ;
END.
6. Program over
Program over;
{----------------------------------------------------------------------}
{ Contoh untuk menunjukkan terjadinya over }
{ }
{----------------------------------------------------------------------}
USES WinCrt;
VAR
TotalHarga : Integer ;
HargaSatuan : Integer ;
BEGIN
ClrScr;
HargaSatuan : = 32767 ;
TotalHarga : = 2 * HargaSatuan ;
Writeln ( ‘Total = ‘, TotalHarga) ;
END.
7. Buatlah Program untuk menghitung volume sebuah balok, dimana p=25 cm, l=10
cm dan t=15 cm.
6
Algoritma dan Pemograman
READ(A, B, C);
READLN(TAXRATE, GROSSINGCOME);
Jika WRITE digunakan secara berurutan, maka teks yang akan ditulis pada
baris yang sama. Penggunaan WRITELN akan memaksa teks berpindah ke awal baris
berikutnya, misalnya :
Program Konversi;
USES WINCRT;
TYPE
MENU = ‘A’..’D’ ;
VAR
METER, JAM, MNT, FEET, FAHRENHEIT, CELCIUS :REAL;
PILIHAN : MENU;
BEGIN
CLRSCR ;
WRITELN (‘MENU KONVERSI UKURAN’) ;
WRITELN ;
WRITELN (‘[A]. MENGHITUNG DARI MENIT---->JAM’) ;
WRITELN (‘[B]. MENGHITUNG DARI FEET---->METER’) ;
WRITELN (‘[C]. MENGHITUNG DARI FAHRENHEIT---->CELCIUS’) ;
WRITELN (‘[D]. QUIT’) ;
WRITELN (‘MASUKAN PILIHAN ANDA : ‘) ;READLN (PILIHAN)
CASE PILIHAN OF
‘A’, ‘a’ :
BEGIN
CLRSCR ;
WRITELN ; WRITELN ;
WRITELN (‘MENGHITUNG DARI MENIT KE JAM’) ;
WRITELN (‘--------------------------------------------------‘) ;
WRITELN (‘MASUKAN WAKTU DALAM MENIT =’) ;READLN (MNT) ;
JAM : = MNT / 60 ;
MNT : = FARC (JAM) * 60 ;
WRITELN ;
WRITELN (‘ ‘, MNT :4:2, ‘MENIT ADALAH :’) ;
WRITELN (‘ ‘, INT (JAM) :3:0, ‘JAM’, MNT : 2:0, ‘MENIT’) ;
8
Algoritma dan Pemograman
END ;
‘B’, ‘b’ :
BEGIN
CLRSCR ;
WRITELN ; WRITELN ;
WRITELN (‘MENGHITUNG DARI FEET KE METER’) ;
WRITELN (‘----------------------------------------------------‘) ;
WRITELN (‘MASUKAN UKURAN DALAM FEET :’) ; READLN
(FEET) ;
METER : = FEET*0.3048 ;
WRITELN (‘ ‘, FEET :4:2, ‘FEEY ADALAH =
‘, METER : 3 : 4) ; WRITELN ;
END ;
‘C’, ‘c’ :
BEGIN
CLRSCR ;
WRITELN ; WRITELN ;
WRITELN (‘MENGHITUNG DARI FAHRENHEIT KE CELCIUS’) ;
WRITELN (‘------------------------------------------------------------------‘) ;
WRITELN (‘MASUKAN DERAJAT DALAM FAHRENHEIT=’) ;
READLN (FAHRENHEIT) ;
CELCIUS :=5 / 9* (FAHRENHEIT – 32 ) ;
WRITE(‘ ‘, FAHRENHEIT : 4:2, ‘FAHRENHEIT ADALAH =’) ;
WRITELN (‘ ‘, CELCIUS :3:1, ‘CELCIUS’) ;
END ;
END ; { END CASE }
READLN ;
END.
‘D’, ‘d’ :begin
Clrscr ;
Writeln
2. Program Array 1
Program array_kesatu ;
Uses crt ;
Var
Nama_barang : array [1..10] of string [20] ;
Harga, jumlah, bayar : array [1..10] of integer ;
Total : real ;
Barang : integer ;
Begin
Clrscr ;
Write (‘banyaknya barang :’ ) ; readln (barang) ;
For i :=1 to barang do
Begin
Writeln (‘masukkan data ke ‘,i) ;
Write (‘nama barang :’) ; readln (nama_barang [ i ] ) ;
Write (‘Harga :’) ; readln (harga [ i ] ) ;
Write (‘jumlah :’) ; readln (jumlah [ i ] ) ;
End ;
Total :=0;
9
Algoritma dan Pemograman
10
Algoritma dan Pemograman
STRUKTUR KONTROL
Contoh
PROGRAM SUM25 ( INPUT, OUTPUT ) ;
(* PENJUMLAHAN DARI 25 INTEGER PERTAMA*)
VAR SUM, NUMBER : INTEGER;
BEGIN
SUM : = 0 ;
NUMBER : = 1 ;
REPEAT
SUM : = SUM + NUMBER;
NUMBER : = NUMBER + 1 ;
UNTIL NUMBER > 25;
WRITELN ( ‘JUMLAH DARI 25 INTEGER PERTAMA ADALAH’, SUM)
END.
NUMBER : = NUMBER +1
END ;
WRITELN ( ‘JUMLAH DARI 25 INTEGER PERTAMA ADALAH’,SUM)
END ;
SUM : = 0 ;
FOR I : = 1 TO N DO SUM := + 1;
12
Algoritma dan Pemograman
Contoh
PROGRAM SPELLMONTH ( INPUT, OUTPUT ) ;
VAR MONTH : INTEGER ;
BEGIN
WRITELN ( ‘KETIK BULAN DALAM ANGKA’ ) ;
13
Algoritma dan Pemograman
READLN (MONTH) ;
IF ( MONTH > 12 ) OR ( MONTH < 1 )
THEN WRITELN ( ‘TIDAK ADA BULAN YANG SEPERTI ITU’ )
ELSE
CASE MONTH OF
1 : WRITELN ( ‘JANUARY’ ) ;
2 : WRITELN ( ‘FEBRUARY’ ) ;
3 : WRITELN ( ‘MARCH’ ) ;
4 : WRITELN ( ‘APRIL’ ) ;
.
.
.
12 : WRITELN ( ‘DECEMBER’ ) ;
END ( *CASE* )
END . ( *SPELLMONTH* )
GOTO 100;
…
100: statement
GOTO 100 akan mengakibatkan dilaksanakannya pernyataan berlabel 100 sebagai
tindakan berikutnya.
14
Algoritma dan Pemograman
OPERASI MATEMATIKA
Keseluruhan operator yang tersedia pada Turbo Pascal dapat dilihat pada tabel
dibawah ini :
53
diperlukan ekspresi sebagai berikut :
5*5*5
X := x + 1;
Y := y – 2;
Pada contoh pertama, nilai x dinaikkan sebesar 1 terhadap nilai semula, pada contoh
kedua nilai Y diturunkan sebesar 2.
Bentuk seperti diatas dapat diwakili dengan pernyataan Inc atau Dec, kalau X ataupun
Y serta nilai penambahan atau pengurangan bertipe integer, bentuk pernyataan Inc :
Inc(Variabel)
Inc(Variabel,Nilai)
Pada Bentuk pertama, nilai Variabel akan dinaikkan sebesar satu. Bila menggunakan
bentuk kedua, bentuk pertama tersebut identik dengan :
Inc(Variabel,1)
Parameter Nilai menyatakan besarnya nilai yang akan ditambahkan terhadap isi
semula dari Variabel. Adapun bentuk pernyataan Dcr :
Dec(Variabel)
Dec(Variabel,Nilai) 15
Algoritma dan Pemograman
Pada bentuk pertama, nlai Variabel akan diturunkan sebesar satu. Bila menggunakan
bentuk kedua, bentuk pertama tersebut identik dengan :
Dec(Variabel,1)
Parameter Nilai menyatakan besarnya nilai untuk mengurangkan terhadap isi semula
dari Variabel.
Dengan demikian pernyataan :
X := x + 1;
Y := y – 2;
Beberapa fungsi lain yang berkaitan dengan bilangan dapat dilihat pada tabel berikut
ini :
Fungsi Keterangan
Odd(bil) Fungsi ini memberikan hasil berupa True kalau bil (bertipeLongInt) berupa
bilangan ganjil
Random( Fungsi ini memberikan hasil berupa bilangan acak (bertipe word) yang
bil) nilainya lebih besar atau sama dengan nol tetapi kurang dari bil. Dalam hal
ini, bil bertipe Word.
Random Fungsi ini memberikan hasil berupa bilangan acak yang lebih besar atau
sama dengan nol, tetapi kurang dari 1.
Beberapa persamaan matematika dan ekspresi Turbo Pascal dapat dilihat dibawah ini :
Dua fungsi yang tersedia pada Turbo Pascal untuk melakukan operasi eksponensial
dan logaritma adalah Exp dan Ln.
Exp(x),untuk memperoleh nilai ex (eksponensial dari x)
Ln(x),untuk memperoleh logaritma alami dari x (e Log x)
Berdasarkan fungsi Ln, kita dapat melakukan operasi logaritma berbasis sepuluh.
Penyelesaiannya :
10
Log x = eLog x / eLog 10
17
Algoritma dan Pemograman
51/3
Solusi persoalan diatas dapat dikerjakan melalui pengandaian :
Xn = y
Dengan y adalah hasilnya. Berdasarkan persamaan diatas, maka :
Ln xn = Ln y
Atau ;
n Ln Xn = Ln y
dari persamaan yang terakhir ini, y dapat dperoleh, yaitu melalui rumus :
y = e(n Ln x)
Y := exp (n * Ln(x));
Keempat fungsi ini merupakan fungsi trigonometri yang tersedia pada Turbo Pascal.
Kedua fungsi pertama meminta argumen berupa sudut. Jika sudut dalam satuan
derajat, sudut ini perlu dikonversi menjadi radius :
18
Algoritma dan Pemograman
1. Program Acak1;
{------------------------------------------------------------------------------------------}
{ Pembangkitan bilangan acak yang bersifat menetap }
{ (hasil selalu sama setiap kali program dijalankan) }
{-----------------------------------------------------------------------------------------}
USES Crt;
BEGIN
ClrScr;
RandSeed:= 6; {-- Nilai awal u/ pembangkitan acak --}
WriteLn(Random);
WriteLn(Random);
WriteLn(Random);
Write(‘ Tekan Enter ‘);
ReadLn;
End.
2. Program Acak2;
{------------------------------------------------------------------------------------------}
{ Pembangkitan bilangan acak yang bersifat }
{ selalu berubah dari waktu ke waktu }
{-----------------------------------------------------------------------------------------}
USES Crt;
BEGIN
ClrScr;
Randomize; {-- Nilai awal acak --}
WriteLn(Random);
WriteLn(Random);
WriteLn(Random);
Write(‘ Tekan Enter ‘);
ReadLn;
End.
3. Program Tebak;
{--------------------------------------------------------------------------------}
{ Contoh Pemakaian bilangan acak }
{ untuk membentuk permainan tebakan }
{--------------------------------------------------------------------------------}
USES Crt;
VAR
Acak, { -- Nilai acak dari komputer --}
Jawaban : Integer; { -- Nilai Jawaban Pemakai --}
Tombol : Char;
BEGIN
REPEAT
ClrScr;
WriteLn(‘Permainan Menebak Angka’);
WriteLn(‘Saya akan membangkitkan bilangan acak’);
WriteLn(‘Antara 1 sampai dengan 4’);
REPEAT
Acak := RANDOM(5);
UNTIL Acak <>0;
WriteLn(‘Sekarang cobalah untuk menebak’);
Write(‘Angka berapa ? ‘);
19
Algoritma dan Pemograman
ReadLn(Jawaban);
IF Acak = Jawaban THEN
WriteLn(‘Selamat ! Jawaban Anda Benar’);
ELSE
WtiteLn(‘Belum benar tuh. Jawabannya = ‘, Acak);
WriteLn;
WriteLn(‘Tekan T untuk mengakhiri’);
WriteLn(‘Atau tombol lain untuk mengulangi’);
Tombol:=ReadKey;
UNTIL (Tombol = ‘T’) OR (Tombol = ‘t’)
END.
4. Program Akar;
{------------------------------------------------------------------------------------}
{ Contoh Pemakaian Exp dan Ln }
{ untuk menghitung akar suatu nilai }
{-----------------------------------------------------------------------------------}
USES Crt;
BEGIN
ClrScr;
ReadLn;
END.
5. Program Peluru;
{---------------------------------------------------------------------------------------------------------
--------------}
{ Contoh Pemakaian fungsi SIN dan COS untuk
}
{ menghitung jarak jatuhnya peluru
}
(---------------------------------------------------------------------------------------------------------
-------------}
USES Crt;
CONST
GRAVITASI = 9.8;
VAR
Rad, Derajat, Kecepatan, Jarak : Real;
BEGIN
ClrScr;
WriteLn(‘Menghitung Jarak Jatuhnya Peluru’);
Write(‘Sudut penembakan (Derajat) : ‘);
ReadLn(Derajat);
Write(‘Kecepatan Tembak (m/detik) : ‘);
ReadLn(Kecepatan);
20
Algoritma dan Pemograman
Rad:=Derajat * Pi / 180;
Jarak := 2 * Sqr (Kecepatan) * Sin(Rad) * Cos(Rad) / GRAVITASI;
ReadLn;
END.
6. Program Menara;
{---------------------------------------------------------------------------------------------------------
--------------}
{ Contoh Pemakaian SIN dan COS untuk
}
{ menghitung tinggi menara
}
(---------------------------------------------------------------------------------------------------------
-------------}
USES Crt;
VAR
Jarak, Alfa, Rad, Tinggi : Real;
BEGIN
ClrScr;
WriteLn(‘Menghitung Tinggi Menara’);
Write(‘ Jarak dari titik pengukuran hingga menara = ‘);
ReadLn(Jarak);
Write(‘Sudut antara tanah dan titik puncak (derajat) = ‘);
ReadLn(Alfa);
21