RSS

Bahasa Turbo Pascal

01 Jun
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.
Contoh program Pascal sederhana
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
 
Tinggalkan komentar

Ditulis oleh pada Juni 1, 2012 in PEMPROGRAMAN

 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: