Tutorial Dasar Turbo Pascal 7.0
Apa itu Turbo Pascal?
Pascal merupakan suatu bahasa komputer tingkat tinggi yang dibuat sekitar tahun
1970 oleh Niklaus Wirth dan digunakan untuk pendidikan komputer. Nama Pascal
diambil dari seorang ahli matematika yang bernama Blaise Pascal yang menemukan
mesin hitung pertama. Bahasa Pascal dirancang untuk menyelesaikan masalah dari
berbagai kalangan pemakai, mulai dari para mahasiswa, pendidik, dan ilmuwan.
Srtuktur Pascal
program ... ; { Program heading }
uses ... ; { Uses clause }
label ... ; { Labels }
const ... ; { Constants }
type ... ; { Types }
var ... ; { Variables }
procedure ... ; { Procedures }
function ... ; { Functions }
begin
statement; { Statements }
...
end.
Program abenk;
Uses crt;
Writeln(‘halo namaku abenk’);
Readln;
End.
Type variable Pascal yang di sediakan:
1. Ordinal type
Type data yang mempunyai urutan pasti. Dan di bagi menjadi:
-Integer
Type variable yang beguna untuk pengolahan data yang bulat, type ini masih terbagi
atas berberapa menurut jangkauan data dan ukurannya :
Tipe variable integer:
Type | Jangkuan | Ukuran |
Shortint | -128..127 | 8 bit |
Word | 0..65535 | 16 biT |
Integer | -32768..32767 | 16 bit |
Longint | -2147483648..2147483647 | 32 bit |
Byte | 0..255 | 8 bit |
- Char
Type variabel yang berguna untuk pengolahan character ASCII, type character ini
penulisannya ditandai dengan dua buah petik tunggal seperti : 'A', '3','*',#7 untuk
menyatakan ' harus ditulis ''''
- Boolean
Type varibale yang berguna untuk pengolahan hal yang hanya mempunyai dua
ketentuan yaitu benar(TRUE) dan salah(FALSE) saja.
2.Real types
Type variable yang beguna untuk pengolahan data yang tidak bulat, untuk type real
ini juga terbagi atas beberapa :
Type | Jangkauan | Ketelitian | Ukuran |
Real | 2.9e-39..1.7e38 | 11-12 digit | 6 bit |
Single | 1.5e-45..3.4e38 ³ 7-8 | 7-8 digit | 4 bit |
Double | 5.0e-324..1.7e308 | 15-16 digit | 8 bit |
Extended | 3.4e-4932..1.1e4932 | 19-20 digit | 10 bit |
Comp | -9.2e18..9.2e18 | 19-20 digit | 8 bit |
Untuk pengolahan type variabel diatas di sediakan berbagai jenis operator antara lain:
Operator | Integer type | Real type |
+ | Penjumlahan | Penjumlahan |
- | Pengurangan | Pengurangan |
* | Perkalian | Perkalian |
/ | Pembagian | Pembagian |
DIV | Hasil bagi | |
MOD | Sisa Bagi |
Operator | Type | Boolean type |
NOT | Bitwise Negation | Logical Negation |
AND | Bitwise AND | Logical AND |
OR | Bitwise inclusive OR | Logical inclusive OR |
XOR | Bitwise exclusive OR | Logical exclusive OR |
SHR | Bitwise shift-left | |
SHL | Bitwise shift-right |
Operator relasi yang mengembalikan hasil Boolean
Operator | Fungsi |
:= | Menyatakan nilai |
= | Sama dengan |
<> | Tidak sama dengan |
< | Lebih kecil |
> | Lebih besar |
<= | Lebih kecil atau sama dengan |
>= | Lebih besar atau sama dengan |
Cara menggunakan variable di dalam pascal
Program abenk;
Uses crt;
Var name: string;
Umur: byte;
Begin
Clrscr;
Write(‘masukkan nama: ‘); readln(name);
Write(‘masukkan umur: ‘); readln(umur);
Write(‘hai nama saya ‘,name);
Write(‘saya berumur ‘,umur);
Readln;
End.
Cara membatasi jumlah karakter pada variable
Program abenk;
Uses crt;
Var name: string[20]; {dibatasi sebanyak 20 karakter}
Umur: byte[3]; {dibatasi sebanyak 3 karakter}
Begin
Clrscr;
Write(‘masukkan nama: ‘); readln(name);
Write(‘masukkan umur: ‘); readln(umur);
Write(‘hai nama saya ‘,name);
Write(‘saya berumur ‘,umur);
Readln;
End.
Program penghitungan matematika pada pascal
Program abenk;
Uses crt;
Var a,b,c,d,e,f : real
Begin
Clrscr;
a:=60;
b:=6;
c:=a+b;
d:=a-b;
e:=a*b;
f:=a/b; {pembagian hanya dapat dengan variable real}
writeln(‘hasil penjumlahan ‘,c:2:2); {“:2:2” berguna untuk membatasi tempat decimal}
readln;
writeln(‘hasil pengurangan ‘,d:2:2);
readln;
writeln(‘hasil perkalian ‘,e:2:2);
readln;
writeln(‘hasil pembagian ‘,f:2:2);
end.
Menggunakan posisi kursor
Program abenk;
Begin
Clrscr;
Gotoxy(5,6);
Writeln(‘saya sedang belajar’); readln;
Gotoxy(9,10);
Writeln(‘turbo’); readln;
Gotoxy(10,18);
Writeln(‘pascal 7.0’); readln;
End.
Konvensi Penjumlah (+), Pengurangan (-), dan Perkalian (*) :
integer dengan integer = integer
integer dengan real = real
real dengan real = real
Konvensi Pembagian (/) :
Selalu menghasilkan real.
Pembagian bulat dengan Div :
Menghasilkan Integer.
Menggunakan if_else
Program abenk;
Uses crt;
Var angka1,angka2 : longint;
Begin
Clrscr;
Write(‘angka pertama: ‘); readln(angka1);
Write(‘angka kedua: ‘); readln(angka2);
Begin
Writeln(‘==========================’);
Writeln(‘perbandingan angka antara: ‘,angka1, ‘dan ‘,angka2);
If angka1 < angka2 then
Writeln(‘angka yang lebih besar adalah: ‘,angka2)
Else writeln(‘angka yang lebih besar adalah: ‘,angka1);
Readln;
End;
End.
Apa yang disebut looping?
Secara sederhana looping diartikan sebagai proses berulang terhadap statement
maupun serangkaian statement lebih dari satu kali.
Contoh program looping
a. for
Program abenk;
Uses crt;
Var i: integer;
Begin
Clrscr;
For i:= 1 to 5 do
write(‘ini yang ke ‘,i);
readln;
end.
b. While
Program abenk;
Uses crt;
Var i: integer;
Lagi: char;
Begin
Lagi:= (‘y’);
While (‘lagi = ‘y’) or (lagi = ‘y’) do
begin
Clrscr;
for i:= 10 downto 1 do
writeln(ini yang ke ‘,i);
readln;
write(‘mau hitung lagi apa tidak (y/t)’);
readln(lagi);
end;
end.
c. Case
Program abenk;
Var pilih : char;
Begin
Clrscr;
Write(‘pilih 1 atau 2: ‘); readln(pilih);
Case pilih of
‘1’: write(‘anda memilih 1’);
‘2’: write(‘anda memilih 2’);
Else write(‘anda memilih yang lain’);
End;
Readln;
End.
d. Procedure dan Repeat
program abenk;
uses crt;
var pilih : integer;
{ini adalah procedure}
procedure penjumlahan;
var a,b,c : integer;
begin
writeln(‘penjumlahan’);
write(‘nilai 1: ‘); readln(a);
write(‘nilai 2: ‘); readln(b);
write(‘hasil: ‘,a+b); readln;
end;
procedure pengurangan;
var a,b,c: integer;
begin
writeln(‘pengurangan’);
write(‘nilai 1: ‘); readln(a);
write(‘nilai 2: ‘); readln(b);
write(‘hasil: ‘,a-b); readln;
end;
procedure perkalian;
var a,b,c: integer;
begin
writeln(‘perkalian’);
write(‘nilai q: ‘); readln(a);
write(‘nilai 2: ‘); readln(b);
write(‘hasil: ‘,a*b); readln;
end;
procedure pembagian;
var a,b,c: real;
begin
writeln(‘pembagian’);
write(’nilai 1: ‘); readln(a);
write(‘nilai 2: ‘); readln(b);
write(‘hasil: ‘,a/b); readln;
end;
{ini adlah bagian utama}
begin
repeat
clrscr;
writeln(‘PILHAN’);
writeln(‘______________________________’);
writeln(‘1. Penjumlahan’);
writeln(‘2. Pengurangan’);
writeln(‘3. Perkalian’);
writeln(‘4. Pembagian’);
writeln(‘5. Exit’);
writeln(‘______________________________’);
writeln;
write(‘silahkan anda memilih angka’);
readln(pilih);
{ini bagian pemanggilan procedure}
1 : penjumlahan;
2 : pengurangan;
3 : perkalian;
4 : pembagian;
End;
Until pilih = 5;
End.
Random dan randomize
Kedua berfungsi menghasilkan bilangan random, bilangan random sering digunakan
untuk mensimulasikan dunia nyata yang penuh dengan ketidakpastian. Kita tidak akan
mendiskusikan hal ini, tetapi pemakaian kedua perintah tersebut.
Randomize digunakan untuk menginisialisasi suatu bibit random secara acak yang
cukup dipanggil sekali saja.
Random digunakan untuk mendapatkan bilangan random(bilangan), yang akan
menghasilkan bilangan 0 s/d bilangan-1. Misalnya num:=random(50); berarti variabel
num mungkin berisi salah satu bilangan 0 s/d 49.
Cobalah contoh berikut :
Program abenk;
Uses crt;
Var i : byte;
Begin
Clrscr;
randomize;
for i:=1 to 10 do
write(random(30),' ');
end.
Coba hilangkan "randomize", dan jalankan beberapa kali, bagaimana dengan bilangan
yang dihasilkan apakah sama pada setiap percobaan ?
Jadi, selalu gunakan "randomize" untuk menjamin kerandoman bilangan yang
dihasilkan pada setiap run.
Menentukan luas dan keliling segitigasiku-siku
Peghitungan keliling segitiga siku-siku identik dengan Pythagoras kan? Lihat contoh dibawah ini!
Program abenk;
Var a,t,p,L,K : real;
Begin
Clrscr;
Writeln(‘MENGHITUNG LUAS DAN KELILING SEGITIGA SIKU-SIKU’);
Write(‘===============================================’);
Write(‘masukkan alas: ‘); readln(a);
Write(‘masukkan tinggi: ‘); readln(t);
Begin
P:=sqrt(sqr(a)+sqr(t));
L:=a*t;
K:=a+t+p;
Writeln(‘luas ‘,L:2:2);
Writeln(‘keliling ‘,K:2:2);
Readln;
End;
End.
Pada penghitunga sisi miring menggunakan sqrt untuk akar pangkat 2 dan sqr untuk pangkat 2.
Menentukan bilangan ganjil genap
Program abenk;
var bil: longint;
begin
writeln('MENENTUKAN JENIS BILANGAN');
writeln('-------------------------');
write('Masukkan angka: ');readln(bil);
if ((bil=2) or (bil=3) or (bil=5) or (bil=7)) then
write('bilangan prima')
else if ((bil mod 2 <> 0) and (bil mod 3 <> 0) and
(bil mod 5 <> 0) and (bil mod 7 <> 0)) then
write('bilangan prima')
else write('bukan bilangan prima');
if bil mod 2 = 0 then
writeln(' dan genap')
else
writeln(' dan ganjil');
readln;
end.
bintang segitiga
Setelah sebelumnya kita bermain dengan if, sekarang ke for. Program di bawah ini akan memunculkan output berupa sekumpulan bintang yang membentuk tangga
Program abenk;
const akhir=18;
var baris, kolom: integer;
begin
for baris:=1 to akhir do
begin
for kolom:=1 to baris do
write('*');
writeln;
end;
readln;
end.
Coba dech dijalankan, gimana hasilnya? menarik bukan?. Sekarang kita coba menampilkan sekumpulan bintang yang membentuk kubus.
Membuat bintang kubus
Program abenk;
uses crt;
Var i, j, x, y:integer;
Begin
clrscr;
Write('Masukkan Dimensi Kubus: ');Readln(x);
y:=0;
For i:=1 to x do
Begin
for j:=1 to x do
Begin
y:=y+1;
write(y:4);
if y mod x=0 then
Writeln;
End;
End;
readkey;
End.
Gimana? baguskan? Sekarang tugas kamu membuat sekumpulan bintang berbentuk piramida dan berbentuk tangga terbalik (seperti program pertama di atas tetapi terbalik)
Membuat daftar di toko
Di pelajaran sebelumnya telah dijelaskan cara penggunaan array dan record. Sekarang kita akan menggabungkan array dan record tersebut. Perhatikan program di bawah ini:
Program abenk;
type dmhs=record
nrp:string[10];
nama:string[25];
alamat:string[50];
end;
var data:array[1..3] of dmhs;
i:integer;
begin
for i:=1 to 3 do
begin
write('nrp : ');readln(data[i].nrp);
write('nama : ');readln(data[i].nama);
write('alamat : ');readln(data[i].alamat);
end;
writeln;
writeln('Data ditampilkan');
for i:=1 to 3 do
begin
writeln('nrp : ', data[i].nrp);
writeln('nama : ', data[i].nama);
writeln('alamat : ', data[i].alamat);
end;
readln;
end.
Apa yang dimaksud array?
Array itu adalah tipe data terstuktur yang berguna untuk menyimpan sejumlah data yang bertipe sama.
Program abenk;
Uses crt;
Var buah: array [1..3] of string;
i : integer;
begin
clrscr;
for i:= 1 to 3 do
begin
write(‘masukkan buah-buahan ke ‘,I,’:’); readln(buah[i]);
end;
writeln; writeln;(‘isi buah-buahan tadi : ‘);
for i:= 1 to 3 do
writeln(‘buah ke ‘,I,’:’ ,buah[i]);
readln;
end.
Dengan hanya menggunakan satu nama variabel yaitu buah, kita bisa menyimpan 3 nilai yang berbeda. Misalkan yang kita masukkan adalah melon, duku dan mangga. maka buah[1] bernilai melon, buah[2] bernilai duku dan buah[3] bernilai mangga.
Apa yang disebut record;
Program abenk;
type buah = record
nama: string;
harga: longint;
end;
var data:buah;
Begin
write('nama buah: ');readln(data.nama);
write('harga buah: ');readln(data.harga);
write('ditampilkan');
write('nama');readln(data.nama);
writeln('harga');readln(data.harga);
End.
Apa yang bisa kamu ambil kesimpulan dari program di atas? Bingung? Jadi gini, dengan menggunakan record (di sini bernama buah) kita bisa membuat tipe data yang berisi beberapa data yang berlainan tipe (nama dengan jenis string, dan harga dengan jenis long integer) yang ini disebut field.
Perhatikan baris ke 6, di situ dideklarasikan bahwa variabel data bertipe buah. Otomatis yang dimiliki buah (nama dan harga) dimiliki juga oleh data. Setelah itu lihat baris ke 8 dan 9. Nama buah disimpan dalam field nama dan harga buah disimpan di dalam field harga. Untuk bisa menyimpan data di field, urutannya harus variabel.field (contohnya di sini data.nama atau data.harga). Begitu juga bila kita ingin menampilkan isi field tersebut.
Tipe data seperti ini sangat berguna kedepannya loohh... Apalagi jika digabungkan dengan array.
Penggunaan fungsi
Program abenk;
Uses crt;
Var hasil: integer;
Function itung(a,b:integer); integer;
Begin
Itung:=a+b;
End;
Begin
Clrscr;
Hasil:=itung(7,9);
Writeln(‘hasil 7+9 sama dengan ‘,hasil);
Readln;
End.
Mencari bilangan prima
Program abenk;
Uses crt;
Var prima: array[1..11] of integer;
I,j: integer;
Bil: integer;
Begin
Clrscr;
For i:= 2 to 11 do
Begin
Prima[i]:=I;
For j:= 2 to i-1 do
Begin
Bil:= (I mod j);
If bil= 0 then prima[i]:=0;
End;
If prima[i] <> 0 then write(prima[i],’ ‘);
End;
Readln;
End.
Terima Kasih atas kunjungan Anda, Semoga bermanfaat dan Sukses
By_abenk'07
0 komentar:
Posting Komentar