pemograman
dasar pascal - lesson 9
PERINTAH INPUT - OUTPUT
3. Perintah Output (write atau writeln )
Perintah digunakan untuk menyajikan data ke default output - key-board.
SYNTAX Write(x); atau writeln(x);
Contoh:
write('TES');
Perintah ini akan menampilkan teks string TES ke layar monitor pada posisi kursor
sebelum perintah write dilaksanakan. Setelah menyajikan ke layar,
kursor pindah ke ujung teks TES pada baris yang sama.
writeln('TES');
Perintah ini akan menampilkan teks TES ke layar monitor pada posisi kursor
sebelum perintah write dilaksanakan. Setelah menyajikan ke layar,
kursor pindah ke awal baris berikutnya.
program luas_PersegiPanjan_01;
{Program untuk menghitung luas bangun empat persegi panjang.
input dibaca dari keyboard dan output ditampilkan ke layar monitor }
uses wincrt;
var panjangPSP, lebarPSP, luasPSP : integer;
{ Mendeklarasikan variable panjang, lebar dan luas persegi panjang sebagai integer. }
BEGIN { Program MULAI }
{ Membaca dari data panjang dan lebar persegi panjang;
default input unit dan default format dengan memberikan pentunjuk ke pemakai tanpa ganti baris.
Setelah membaca data kursor pindah ke baris baru. }
write('Panjang = '); readln(panjangPSP);
write('Leabar = '); readln(lebarPSP); { Menghitung luas persegi panjang. }
luasPSP := panjangPSP * lebarPSP;
{ Menyajikan hasil hitungan luas persegi panjang ke unit default output dan default format.
Setelah menyajikan kursor pindah ke baris baru. }
writeln('Luas = ', luasPSP);
END. { Program SELESAI }
Catatan: Argumen perintah writeln boleh berupa ekspresi.
Contoh perintah penyajian writeln('Luas = ', luasPSP); bisa dikerjakan dengan perintah:
writeln('Luas = ', panjangPSP * lebarPSP);
Jumat, 13 Juli 2007
Dasar Bahasa Pascal - Lesson 8
pemograman
dasar pascal - lesson 8
PERINTAH INPUT - OUTPUT
1. Assignment
Komputer bisa mengolah dan menampilkan sesuatu yang ada di dalam memori.
Merupakan cara tersederhana untuk "menempatkan" (assign) data ke memori.
Contoh:
program luas_PersegiPanjan_00; {Program untuk menghitung luas bangun empat persegi panjang} uses wincrt;
var panjangPSP, lebarPSP, luasPSP : integer;
{Mendeklarasikan variable panjang, lebar dan luas persegi panjang sebagai integer}
BEGIN {Program MULAI}
panjangPSP := 25;
lebarPSP := 20;
luasPSP := panjangPSP * lebarPSP;
END. {Program SELESAI}
2. Perintah Input (read atau readln)
Perintah digunakan untuk membaca data dari default input - keyboard.
SYNTAX read(x); atau readln(x);
Contoh:
program luas_PersegiPanjang_00;
{ Program untuk menghitung luas bangun empat persegi panjang. }
uses wincrt;
var panjangPSP, lebarPSP, luasPSP :integer;
{ Mendeklarasikan variable panjang, lebar dan luas persegi panjang sebagai integer. }
BEGIN { Program MULAI }
{ Membaca dari data panjang dan lebar persegi panjang,
default input unit dan default format tanpa ganti baris}
read(panjangPSP);
readln(lebarPSP);(pengisian variabel pertama dan kedua dipisahkan dengan spasi)
luasPSP:=panjangPSP*lebarPSP;{Menghitung luas persegi panjang}
END. { Program SELESAI }
Perintah read atau readln dapat digunakan untuk membaca data
lebih dari satu sekaligus dengan berbagai format.
Contoh:
program bacaCampuran; { Membaca data sekaligus menggunakan perintah read }
uses wincrt;
var nimMHS : character;
umurMHS : integer;
statusMHS: boolean;
BEGIN
readln(nimMHS,umurMHS,statusMHS);
{setelah mengisi semua variabel , harus diikuti dengan Enter}
END.
dasar pascal - lesson 8
PERINTAH INPUT - OUTPUT
1. Assignment
Komputer bisa mengolah dan menampilkan sesuatu yang ada di dalam memori.
Merupakan cara tersederhana untuk "menempatkan" (assign) data ke memori.
Contoh:
program luas_PersegiPanjan_00; {Program untuk menghitung luas bangun empat persegi panjang} uses wincrt;
var panjangPSP, lebarPSP, luasPSP : integer;
{Mendeklarasikan variable panjang, lebar dan luas persegi panjang sebagai integer}
BEGIN {Program MULAI}
panjangPSP := 25;
lebarPSP := 20;
luasPSP := panjangPSP * lebarPSP;
END. {Program SELESAI}
2. Perintah Input (read atau readln)
Perintah digunakan untuk membaca data dari default input - keyboard.
SYNTAX read(x); atau readln(x);
Contoh:
program luas_PersegiPanjang_00;
{ Program untuk menghitung luas bangun empat persegi panjang. }
uses wincrt;
var panjangPSP, lebarPSP, luasPSP :integer;
{ Mendeklarasikan variable panjang, lebar dan luas persegi panjang sebagai integer. }
BEGIN { Program MULAI }
{ Membaca dari data panjang dan lebar persegi panjang,
default input unit dan default format tanpa ganti baris}
read(panjangPSP);
readln(lebarPSP);(pengisian variabel pertama dan kedua dipisahkan dengan spasi)
luasPSP:=panjangPSP*lebarPSP;{Menghitung luas persegi panjang}
END. { Program SELESAI }
Perintah read atau readln dapat digunakan untuk membaca data
lebih dari satu sekaligus dengan berbagai format.
Contoh:
program bacaCampuran; { Membaca data sekaligus menggunakan perintah read }
uses wincrt;
var nimMHS : character;
umurMHS : integer;
statusMHS: boolean;
BEGIN
readln(nimMHS,umurMHS,statusMHS);
{setelah mengisi semua variabel , harus diikuti dengan Enter}
END.
Dasar Bahasa Pascal - Lesson 7
pemograman
dasar pascal - lesson 7
4. Operator
Beberapa operator yang disediakan oleh PASCAL:
1. Aritmatika
2. Boolean
3. Relasional
4. Set
Tabel 2. Operator Aritmatika PASCAL
Operator Operasi Tipe Operand Tipe Hasil Operasi
+ Penjumlahan Integer, real Integer, real
- Pengurangan Integer, real Integer, real
* Perkalian Integer, real Integer, real
/ Pembagian Integer, real Integer, real
div Pembagian integer, integer integer
mod Sisa pembagian integer, integer integer
Contoh :
9 + 2 (hasil: 11)
9 - 2 (hasil: 7)
9 * 2 (hasil: 18) 9 / 2 (hasil: 4.5)
9 div 2 (hasil: 4)
9 mod 2 (hasil: 1)
Tabel 3. Operator Boolean PASCAL
Operator Operasi Tipe Operand Tipe Hasil Operasi
not negasi boolean boolean
and logika ‘and’ boolean boolean
or logika ‘or’ boolean boolean
xor logika ‘xor’ boolean boolean
Contoh:
A dan B suatu variabel boolean
A not (A)
TRUE FALSE
FALSE TRUE
A B A and B A or B A xor B
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE TRUE
FALSE TRUE FALSE TRUE TRUE
FALSE FALSE FALSE FALSE FALSE
Tabel 3. Operator Relasional
Operator Operasi Tipe Operand Tipe Hasil Operasi
= Sama dengan sederhana,string,pointer,set boolean
<> Tidak sama dengan sederhana,string,pointer,set boolean
< Lebih kecil dari sederhana,string boolean
> Lebih besar dari sederhana,string boolean
<= Lebih kecil atau = sederhana,string boolean
>= Lebih besar atau = sederhana,string boolean
Contoh:
Misal suatu variable A:=9 dan B:=2,
maka:
A = B (hasil: FALSE);
A <= B (hasil: FALSE) A <> B (hasil: TRUE);
A >= B (hasil: TRUE)
A < B (hasil: FALSE)
A > B (hasil: TRUE)
4. Operasi pada Set
a. Operasi Relasional pada Set
Ada empat perbandingan relasional yang diperkenankan pada set.
Tabel 4. Operator Relasional pada set
Operator Operasi Tipe Operand Tipe Hasil Operasi
= Sama dengan Set,set boolean
<> Tidak sama dengan Set,set boolean
<= Lebih kecil atau = Set, set boolean
>= Lebih besar atau = Set, set boolean
Misal
A dan B adalah merupakan dua buah set.
A = B : mempunyai hasil True jika A dan B memiliki anggota-anggota yang sama.
Contoh: [Sun, Tue, Fri] = [Tue, Fri, Sun].
A <> B: mempunyai hasil True jika A dan B memiliki anggota-anggota yang tidak sama.
A <= B : menunjukkan bahwa A adalah subset dari B.
Contoh: Jika A berisi [Sun, Mon, Tue] dan B berisi [Sun, Mon, Tue, Wed, Thu],
maka A adalah merupakan subset dari B dan ekspresi menghasilkan nilai True.
A >= B : menunjukkan bahwa A adalah superset dari B.
Contoh: Jika A berisi [Sun..Sat] dan B berisi [Mon..Fri],
maka A adalah merupakan superset dari B dan ekspresi menghasilkan nilai True.
b. Operasi Logika pada Set
Ada tiga operasi logika pada set.
Tabel 5. Operator Logika pada set
Operator Operasi Tipe Operand Tipe Hasil Operasi
+ Union Set Set
- Difference Set Set
* Intersection Set Set
Misal:
+ atau Union: [Sun, Mon, Tue, Wed] + [Mon, Thu, Fri]
menghasilkan [Sun, Mon, Tue, Wed, Thu, Fri].
- atau Difference: [Sun, Mon, Tue, Wed] - [Mon, Tue, Fri]
menghasilkan [Sun, Tue, Wed], yang merupakan anggota dari
set pertama yang bukan anggota set yang kedua.
* atau Intersection: [Sun, Mon, Tue, Wed] * [Mon, Tue, Fri] menghasilkan
[Mon,Tue], yang merupakan anggota kedua set.
5. Ekspresi
Merupakan kombinasi antara operator dan operand. Ekspresi matematik yang terjadi
dalam dunia nyata diterjemahkan kedalam bahasa Pascal dengan sedikit perubahan tanda.
Contoh:
Ekspresi matematika Ekspresi PASCAL
• a + b • a + b
• x ( y + z ) • x * ( y + z )
• b2 - 4ac • b * b - 4*a*c
Contoh: Bila dideklarasikan var i, j: integer; maka, i + j adalah ekspresi aritmatik
(menghasilkan suatu bilangan integer) i < j adalah ekspresi boolean
(menghasilkan logika TRUE atau FALSE)
6. Fungsi Matematik Standar dalam PASCAL
Tabel 6. Beberapa fungsi matematik standar yang disediakan oleh PASCAL
Nama Fungsi Deskripsi Tipe Argumen Tipe Hasil Operasi
abs absolute value real/integer real/integer
arctan arctan (radian) Real/integer real
cos cosine (radian) real/integer real
sin sin (radian) real/integer real
exp fungsi Perpangkatan e real/integer real
ln ln real/integer real
round Pembulatan terdekat real integer
sqr kuadrat real/integer real/integer
sqrt Akar kuadrat real/integer real
trunc Pembulatan ke bawah real/integer integer
Contoh :
Abs(-11) (hasil: 11)
Round(10.6) (hasil: 11)
Trunc(10.6) (hasil: 10)
Sqrt(4) (hasil: 2)
Sqr(4) (hasil: 16)
Untuk fungsi trigonometri:
x = sin phi menjadi x:=sin (3.1416);
dasar pascal - lesson 7
4. Operator
Beberapa operator yang disediakan oleh PASCAL:
1. Aritmatika
2. Boolean
3. Relasional
4. Set
Tabel 2. Operator Aritmatika PASCAL
Operator Operasi Tipe Operand Tipe Hasil Operasi
+ Penjumlahan Integer, real Integer, real
- Pengurangan Integer, real Integer, real
* Perkalian Integer, real Integer, real
/ Pembagian Integer, real Integer, real
div Pembagian integer, integer integer
mod Sisa pembagian integer, integer integer
Contoh :
9 + 2 (hasil: 11)
9 - 2 (hasil: 7)
9 * 2 (hasil: 18) 9 / 2 (hasil: 4.5)
9 div 2 (hasil: 4)
9 mod 2 (hasil: 1)
Tabel 3. Operator Boolean PASCAL
Operator Operasi Tipe Operand Tipe Hasil Operasi
not negasi boolean boolean
and logika ‘and’ boolean boolean
or logika ‘or’ boolean boolean
xor logika ‘xor’ boolean boolean
Contoh:
A dan B suatu variabel boolean
A not (A)
TRUE FALSE
FALSE TRUE
A B A and B A or B A xor B
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE TRUE
FALSE TRUE FALSE TRUE TRUE
FALSE FALSE FALSE FALSE FALSE
Tabel 3. Operator Relasional
Operator Operasi Tipe Operand Tipe Hasil Operasi
= Sama dengan sederhana,string,pointer,set boolean
<> Tidak sama dengan sederhana,string,pointer,set boolean
< Lebih kecil dari sederhana,string boolean
> Lebih besar dari sederhana,string boolean
<= Lebih kecil atau = sederhana,string boolean
>= Lebih besar atau = sederhana,string boolean
Contoh:
Misal suatu variable A:=9 dan B:=2,
maka:
A = B (hasil: FALSE);
A <= B (hasil: FALSE) A <> B (hasil: TRUE);
A >= B (hasil: TRUE)
A < B (hasil: FALSE)
A > B (hasil: TRUE)
4. Operasi pada Set
a. Operasi Relasional pada Set
Ada empat perbandingan relasional yang diperkenankan pada set.
Tabel 4. Operator Relasional pada set
Operator Operasi Tipe Operand Tipe Hasil Operasi
= Sama dengan Set,set boolean
<> Tidak sama dengan Set,set boolean
<= Lebih kecil atau = Set, set boolean
>= Lebih besar atau = Set, set boolean
Misal
A dan B adalah merupakan dua buah set.
A = B : mempunyai hasil True jika A dan B memiliki anggota-anggota yang sama.
Contoh: [Sun, Tue, Fri] = [Tue, Fri, Sun].
A <> B: mempunyai hasil True jika A dan B memiliki anggota-anggota yang tidak sama.
A <= B : menunjukkan bahwa A adalah subset dari B.
Contoh: Jika A berisi [Sun, Mon, Tue] dan B berisi [Sun, Mon, Tue, Wed, Thu],
maka A adalah merupakan subset dari B dan ekspresi menghasilkan nilai True.
A >= B : menunjukkan bahwa A adalah superset dari B.
Contoh: Jika A berisi [Sun..Sat] dan B berisi [Mon..Fri],
maka A adalah merupakan superset dari B dan ekspresi menghasilkan nilai True.
b. Operasi Logika pada Set
Ada tiga operasi logika pada set.
Tabel 5. Operator Logika pada set
Operator Operasi Tipe Operand Tipe Hasil Operasi
+ Union Set Set
- Difference Set Set
* Intersection Set Set
Misal:
+ atau Union: [Sun, Mon, Tue, Wed] + [Mon, Thu, Fri]
menghasilkan [Sun, Mon, Tue, Wed, Thu, Fri].
- atau Difference: [Sun, Mon, Tue, Wed] - [Mon, Tue, Fri]
menghasilkan [Sun, Tue, Wed], yang merupakan anggota dari
set pertama yang bukan anggota set yang kedua.
* atau Intersection: [Sun, Mon, Tue, Wed] * [Mon, Tue, Fri] menghasilkan
[Mon,Tue], yang merupakan anggota kedua set.
5. Ekspresi
Merupakan kombinasi antara operator dan operand. Ekspresi matematik yang terjadi
dalam dunia nyata diterjemahkan kedalam bahasa Pascal dengan sedikit perubahan tanda.
Contoh:
Ekspresi matematika Ekspresi PASCAL
• a + b • a + b
• x ( y + z ) • x * ( y + z )
• b2 - 4ac • b * b - 4*a*c
Contoh: Bila dideklarasikan var i, j: integer; maka, i + j adalah ekspresi aritmatik
(menghasilkan suatu bilangan integer) i < j adalah ekspresi boolean
(menghasilkan logika TRUE atau FALSE)
6. Fungsi Matematik Standar dalam PASCAL
Tabel 6. Beberapa fungsi matematik standar yang disediakan oleh PASCAL
Nama Fungsi Deskripsi Tipe Argumen Tipe Hasil Operasi
abs absolute value real/integer real/integer
arctan arctan (radian) Real/integer real
cos cosine (radian) real/integer real
sin sin (radian) real/integer real
exp fungsi Perpangkatan e real/integer real
ln ln real/integer real
round Pembulatan terdekat real integer
sqr kuadrat real/integer real/integer
sqrt Akar kuadrat real/integer real
trunc Pembulatan ke bawah real/integer integer
Contoh :
Abs(-11) (hasil: 11)
Round(10.6) (hasil: 11)
Trunc(10.6) (hasil: 10)
Sqrt(4) (hasil: 2)
Sqr(4) (hasil: 16)
Untuk fungsi trigonometri:
x = sin phi menjadi x:=sin (3.1416);
Dasar Bahasa Pascal - lesson 6
pemograman
dasar pascal - lesson 6
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.
-Tipe Data Pointer
pointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memory.
Suatu variabel yang points(menunjuk) ke sesuatu sehingga disebut pointer.
Ada dua macam pointer:
-typed(tertentu):
merupakan pointer yang menunjuk pada tipe data tertentu pada variable.
-generic(umum):
merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable.
Contoh deklarasi pointer:
var p : ^integer;
Contoh di atas merupakan deklarasi variabel p sebagai pointer dari integer.
Dengan menambahkan tanda caret (^) di depan nama tipe data variabel yang dideklarasikan:
contoh :
program contoh_pointer1;
uses wincrt;
var p : ^integer;
m, n : integer;
begin
m:=10;
n:=15;
p:=@m; { p sekarang menunjuk ke m }
p^:=12; { hal ini sama dengan m:=12; }
p:=@n; { p sekarang menunjuk ke n }
p^=m; { { hal ini sama dengan n:=m; }
writeln('m = ',m,', n = ',n); { m = 12, n = 12 }
end.
Ketika p menunjuk ke m ( p:=@m;), mengakses p^ sama dengan mengakses m.
Dalam membuat program, dalam penggunaan pointer kita memerlukan alokasi memori tertentu:
Ketika kita mendeklarasikan variabel pointer dalam "var" sehingga merupakan suatu static variable,
yang mana Static variable ini dibatasi oleh kapasitas 64KB untuk tiap module.
Yang berarti dalam program utama kita hanya bisa menggunakan hanya 64KB dan tiap unit Pascal
hanya bisa memakai 64KB. Sehingga kita perlu memecahkan program kebeberapa unit.
Salah satu teknik yang dipakai untuk mengatasi persoalan ini adalah seperti program berikut.
Program contoh_pointer2;
uses wincrt;
Type Pemployee = ^Temployee;
Temployee = record Name : string[10];
Position : char;
Salary : longint;
end;
var p : pemployee;
begin
new(p);
p^.name:='Saddam';
p^.position:='S';
p^.salary:=3000;
writeln(p^.name,' ',p^.position,' ',p^.salary);
dispose(p);
end.
Pada blok begin...end blok, kita bisa melihat meskipun p tidak menunjuk pada suatu variable
tetapi dapat diisi dengan nilai. Pernyataan new(p); tidak memerlukan alokasi memori.
Setelah itu kita bisa melakukan apapun pada variabel tersebut sampai kita membuangnya dari memori dengan
memakai perintah dispose(p);. Variable dengan cara ini dinamakan dengan dynamic variable.
Generic Pointer
adalah pointer tanpa tipe data tertentu.
Biasanya, pointer berkaitan dengan tipe data khusus, sedangkan generic pointer tidak.
Deklarasi:
Var P : pointer;
Dipergunakan sebagai buffer sementara (tidak permanen). Sehingga kita bisa melepasnya untuk suatu saat
tidak diperlukan. Untuk itu pointer sangat bagus karena sifatnya yang dinamis.
Tetapi, generic pointer tidak sama dengan typed pointer. Typed pointer menggunakan "new" untuk menampung memori
dan "dispose" untuk melepasnya. Generic pointer menggunakan "getmem" untuk mendapatkan memori dan "freemem"
untuk melepasnya. Pada pointer dengan tipe tertentu, program Pascal mengetahui ukuran dari memori yang harus
dilaokasikan, sedangkan tipe umum (generic pointer) Pascal tidak bisa, karena Pascal tidak mengetahui variabel
apa yang akan dipakai. Sehingga dengan getmem kita perlu untuk menentukan berapa besar memori yang akan kita
alokasikan. Ukuran terbesar adalah 65532 bytes (hampir 64K).
Program contoh_pointer2;
uses wincrt;
Var P : pointer;
Begin
Getmem(p,8192); { Reserve 8192 bytes }{ We use it then }
freemem(p,8192); { Release it, 8192 bytes }
end.
dasar pascal - lesson 6
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.
-Tipe Data Pointer
pointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memory.
Suatu variabel yang points(menunjuk) ke sesuatu sehingga disebut pointer.
Ada dua macam pointer:
-typed(tertentu):
merupakan pointer yang menunjuk pada tipe data tertentu pada variable.
-generic(umum):
merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable.
Contoh deklarasi pointer:
var p : ^integer;
Contoh di atas merupakan deklarasi variabel p sebagai pointer dari integer.
Dengan menambahkan tanda caret (^) di depan nama tipe data variabel yang dideklarasikan:
contoh :
program contoh_pointer1;
uses wincrt;
var p : ^integer;
m, n : integer;
begin
m:=10;
n:=15;
p:=@m; { p sekarang menunjuk ke m }
p^:=12; { hal ini sama dengan m:=12; }
p:=@n; { p sekarang menunjuk ke n }
p^=m; { { hal ini sama dengan n:=m; }
writeln('m = ',m,', n = ',n); { m = 12, n = 12 }
end.
Ketika p menunjuk ke m ( p:=@m;), mengakses p^ sama dengan mengakses m.
Dalam membuat program, dalam penggunaan pointer kita memerlukan alokasi memori tertentu:
Ketika kita mendeklarasikan variabel pointer dalam "var" sehingga merupakan suatu static variable,
yang mana Static variable ini dibatasi oleh kapasitas 64KB untuk tiap module.
Yang berarti dalam program utama kita hanya bisa menggunakan hanya 64KB dan tiap unit Pascal
hanya bisa memakai 64KB. Sehingga kita perlu memecahkan program kebeberapa unit.
Salah satu teknik yang dipakai untuk mengatasi persoalan ini adalah seperti program berikut.
Program contoh_pointer2;
uses wincrt;
Type Pemployee = ^Temployee;
Temployee = record Name : string[10];
Position : char;
Salary : longint;
end;
var p : pemployee;
begin
new(p);
p^.name:='Saddam';
p^.position:='S';
p^.salary:=3000;
writeln(p^.name,' ',p^.position,' ',p^.salary);
dispose(p);
end.
Pada blok begin...end blok, kita bisa melihat meskipun p tidak menunjuk pada suatu variable
tetapi dapat diisi dengan nilai. Pernyataan new(p); tidak memerlukan alokasi memori.
Setelah itu kita bisa melakukan apapun pada variabel tersebut sampai kita membuangnya dari memori dengan
memakai perintah dispose(p);. Variable dengan cara ini dinamakan dengan dynamic variable.
Generic Pointer
adalah pointer tanpa tipe data tertentu.
Biasanya, pointer berkaitan dengan tipe data khusus, sedangkan generic pointer tidak.
Deklarasi:
Var P : pointer;
Dipergunakan sebagai buffer sementara (tidak permanen). Sehingga kita bisa melepasnya untuk suatu saat
tidak diperlukan. Untuk itu pointer sangat bagus karena sifatnya yang dinamis.
Tetapi, generic pointer tidak sama dengan typed pointer. Typed pointer menggunakan "new" untuk menampung memori
dan "dispose" untuk melepasnya. Generic pointer menggunakan "getmem" untuk mendapatkan memori dan "freemem"
untuk melepasnya. Pada pointer dengan tipe tertentu, program Pascal mengetahui ukuran dari memori yang harus
dilaokasikan, sedangkan tipe umum (generic pointer) Pascal tidak bisa, karena Pascal tidak mengetahui variabel
apa yang akan dipakai. Sehingga dengan getmem kita perlu untuk menentukan berapa besar memori yang akan kita
alokasikan. Ukuran terbesar adalah 65532 bytes (hampir 64K).
Program contoh_pointer2;
uses wincrt;
Var P : pointer;
Begin
Getmem(p,8192); { Reserve 8192 bytes }{ We use it then }
freemem(p,8192); { Release it, 8192 bytes }
end.
Dasar Bahasa Pascal - Lesson 5
pemograman
dasar pascal - lesson 5
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.
b. Tipe Data Set
Sebuah set merupakan suatu himpunan yang berisi nilai (anggota). set merupakan Tipe data yang khusus untuk Pascal.
Set dalam pemrograman sangat mirip dengan himpunan dalam ilmu matematika,
contoh: A = { 1, 2, 3, 4, 5 }
Syntax: set of contoh:
type Digits = set of 0..9;
Letters = set of 'A'..'Z';
type Day = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);
CharSet = set of Char;
Digits = set of 0..9;
Days = set of Day;
const EvenDigits: Digits = [0, 2, 4, 6, 8];
Vowels: Letters = ['A', 'E', 'I', 'O', 'U', 'Y'];
Kita tidak bisa menulis atau membaca isi dari set, tetapi kita bisa melakukan operasi yang lain dengan data
yang ada pada set (mis. relasional).
Contoh:
Program contoh_set;
Uses wincrt;
type hari = (ahad, sen, sel, rab, kam,jum, Sab);
var semua_hari : set of hari;
hari_kerja : set of sen .. jum;
hari_ini : hari;
begin
hari_ini:=sen;
if hari_ini in hari_kerja then
writeln('HARI INI HARI KERJA')
else
writeln('HARI LIBUR');
end.
Salah satu manfaat dari penggunaan tipe data set adalah untuk mengecek apakah suatu nilai muncul dalam
suatu range tertentu. Misalnya, untuk mementukan apakah suatu karakter berupa lower case letter (huruf kecil),
mis. Ch adalah tipe Char, kita bisa menulis,
if (Ch >= 'a') and (Ch <= 'z') then Writeln( Ch,' merupakan huruf kecil.');
atau, dengan notasi set, kita bisa menulis ,
if Ch in ['a'..'z'] then Writeln( Ch,' merupakan huruf kecil.');
dasar pascal - lesson 5
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.
b. Tipe Data Set
Sebuah set merupakan suatu himpunan yang berisi nilai (anggota). set merupakan Tipe data yang khusus untuk Pascal.
Set dalam pemrograman sangat mirip dengan himpunan dalam ilmu matematika,
contoh: A = { 1, 2, 3, 4, 5 }
Syntax: set of contoh:
type Digits = set of 0..9;
Letters = set of 'A'..'Z';
type Day = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);
CharSet = set of Char;
Digits = set of 0..9;
Days = set of Day;
const EvenDigits: Digits = [0, 2, 4, 6, 8];
Vowels: Letters = ['A', 'E', 'I', 'O', 'U', 'Y'];
Kita tidak bisa menulis atau membaca isi dari set, tetapi kita bisa melakukan operasi yang lain dengan data
yang ada pada set (mis. relasional).
Contoh:
Program contoh_set;
Uses wincrt;
type hari = (ahad, sen, sel, rab, kam,jum, Sab);
var semua_hari : set of hari;
hari_kerja : set of sen .. jum;
hari_ini : hari;
begin
hari_ini:=sen;
if hari_ini in hari_kerja then
writeln('HARI INI HARI KERJA')
else
writeln('HARI LIBUR');
end.
Salah satu manfaat dari penggunaan tipe data set adalah untuk mengecek apakah suatu nilai muncul dalam
suatu range tertentu. Misalnya, untuk mementukan apakah suatu karakter berupa lower case letter (huruf kecil),
mis. Ch adalah tipe Char, kita bisa menulis,
if (Ch >= 'a') and (Ch <= 'z') then Writeln( Ch,' merupakan huruf kecil.');
atau, dengan notasi set, kita bisa menulis ,
if Ch in ['a'..'z'] then Writeln( Ch,' merupakan huruf kecil.');
Dasar Bahasa Pascal - Lesson 4
pemograman
dasar pascal - lesson 4
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 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).
routines pada Pascal untuk manipulasi string :
-Length : menghasilkan panjang string.
Syntax : length(s)
Contoh : n:=length(s);
Misal s:='pemrograman'; n akan sama dengan 11.
-Copy : mengkopi suatu ekstrak karakter dari sebuah string.
Syntax : copy(s,dari,banyaknya)
Contoh : st:=copy(s,5,3); mengekstrak 3 karakter dari s, dimulai dari karakter kelima.
Misal s:='Who are you ?'; st adalah 'are'.
catatan: bila indek lebih bear dari panjang string maka hasilnya akan kosong:
Contoh : st:=copy(s,15,4); { kosong} jika banyaknya string yang akan diekstrak lebih besar dari s,
maka hasilnya adalah bagian yang tersisa dari string.
Contoh : st:=copy(s,9,10); st hasilnya adalah 'you ?'
-Pos : menghasilkan posisi dari suatu substring dari suatu string.
Syntax : Pos(substr,s)
Contoh : n:=pos('are','Who are you ?'); { n:=5; }
Jika substring tidak ditemukan, maka hasilnya 0.
-Val : mengkonversi string ke numerik.
Syntax : val(strvar,numvar,errorcode)
strvar adalah variabel string yang akan dikonversi, numvar variabel numerik ( bisa integer atau real,
dan errorcode adalah variabel integer yang menyimpan error code (kode kesalahan).
Jika errorcode adalah 0, konversi berhasil. Sebaliknya, hal ini akan menunjukan posisi dimana pada
strvar yang menyebabkan kegagalan.
Contoh :
program konversiangka;
uses wincrt;
var s : string;
e : integer; r : real;
begin
write('masukkan angka : ');
readln(s);
val(s,r,e);
if e<>0 then writeln('salah pada posisi : ',e)
else writeln('itu adalah : ',r:4:3);
end.
-Str : mengkonversi numerik ke string.
Syntax : str(numvar,strvar)
Contoh :
program konversiangka_1;
uses wincrt;
var s : string;
i : integer;
begin
write('masukkan angka: ');
readln(i);
str(i,s);
writeln('itu adalah: ',s);
end.
-Concat : Menggabungkan dua atau lebih string.
Syntax : concat(s1,s2,...,sn)
Contoh : st:=concat(s1,s2); Jikas1='ABC' dan s2='DEF',
st akan menjadi 'ABCDEF' st:=concat('Borland ','Pascal ','ver. ','7.0');
akan menjadi 'Borland Pascal ver. 7.0'
-Insert : Menyisipkan suatu string ke dalam string yang lain.
Syntax : insert(asal,target,indek)
Contoh :
program sisip ;
uses wincrt;
var s1, s2 : string;
begin
s1:='tidak ';
s2:='saya bekerja';
insert(s1,s2,6);
writeln(s2); {saya tidak bekerja }
end.
Jika hasilnya lebih dari 255 maka akan terpotong menjadi 255.
-Delete : menghapus n karakter dari string s berawal dari indek i.
Syntax : delete(s,i,n);
Contoh :
program hapus;
uses wincrt;
var s : string;
begin
s:='saya seorang insinyur';
delete(s,6,3);
writeln(s); { 'saya sang insinyur'}
end.
-Fillchar : mengisi string s dengan karakter c sampai s sama dengan n-1 panjang karakternya.
Syntax : fillchar(s,n,c); Hati-hati : s[0] akan tertumpuki,
jangan lupa menambahkan s[0]:=chr(n-1); untuk menormalkannnya.
Contoh :
program isikarakter;
uses wincrt;
var s : string;
begin
fillchar(s,51,'=');
s[0]:=chr(50);
end.
dasar pascal - lesson 4
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 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).
routines pada Pascal untuk manipulasi string :
-Length : menghasilkan panjang string.
Syntax : length(s)
Contoh : n:=length(s);
Misal s:='pemrograman'; n akan sama dengan 11.
-Copy : mengkopi suatu ekstrak karakter dari sebuah string.
Syntax : copy(s,dari,banyaknya)
Contoh : st:=copy(s,5,3); mengekstrak 3 karakter dari s, dimulai dari karakter kelima.
Misal s:='Who are you ?'; st adalah 'are'.
catatan: bila indek lebih bear dari panjang string maka hasilnya akan kosong:
Contoh : st:=copy(s,15,4); { kosong} jika banyaknya string yang akan diekstrak lebih besar dari s,
maka hasilnya adalah bagian yang tersisa dari string.
Contoh : st:=copy(s,9,10); st hasilnya adalah 'you ?'
-Pos : menghasilkan posisi dari suatu substring dari suatu string.
Syntax : Pos(substr,s)
Contoh : n:=pos('are','Who are you ?'); { n:=5; }
Jika substring tidak ditemukan, maka hasilnya 0.
-Val : mengkonversi string ke numerik.
Syntax : val(strvar,numvar,errorcode)
strvar adalah variabel string yang akan dikonversi, numvar variabel numerik ( bisa integer atau real,
dan errorcode adalah variabel integer yang menyimpan error code (kode kesalahan).
Jika errorcode adalah 0, konversi berhasil. Sebaliknya, hal ini akan menunjukan posisi dimana pada
strvar yang menyebabkan kegagalan.
Contoh :
program konversiangka;
uses wincrt;
var s : string;
e : integer; r : real;
begin
write('masukkan angka : ');
readln(s);
val(s,r,e);
if e<>0 then writeln('salah pada posisi : ',e)
else writeln('itu adalah : ',r:4:3);
end.
-Str : mengkonversi numerik ke string.
Syntax : str(numvar,strvar)
Contoh :
program konversiangka_1;
uses wincrt;
var s : string;
i : integer;
begin
write('masukkan angka: ');
readln(i);
str(i,s);
writeln('itu adalah: ',s);
end.
-Concat : Menggabungkan dua atau lebih string.
Syntax : concat(s1,s2,...,sn)
Contoh : st:=concat(s1,s2); Jikas1='ABC' dan s2='DEF',
st akan menjadi 'ABCDEF' st:=concat('Borland ','Pascal ','ver. ','7.0');
akan menjadi 'Borland Pascal ver. 7.0'
-Insert : Menyisipkan suatu string ke dalam string yang lain.
Syntax : insert(asal,target,indek)
Contoh :
program sisip ;
uses wincrt;
var s1, s2 : string;
begin
s1:='tidak ';
s2:='saya bekerja';
insert(s1,s2,6);
writeln(s2); {saya tidak bekerja }
end.
Jika hasilnya lebih dari 255 maka akan terpotong menjadi 255.
-Delete : menghapus n karakter dari string s berawal dari indek i.
Syntax : delete(s,i,n);
Contoh :
program hapus;
uses wincrt;
var s : string;
begin
s:='saya seorang insinyur';
delete(s,6,3);
writeln(s); { 'saya sang insinyur'}
end.
-Fillchar : mengisi string s dengan karakter c sampai s sama dengan n-1 panjang karakternya.
Syntax : fillchar(s,n,c); Hati-hati : s[0] akan tertumpuki,
jangan lupa menambahkan s[0]:=chr(n-1); untuk menormalkannnya.
Contoh :
program isikarakter;
uses wincrt;
var s : string;
begin
fillchar(s,51,'=');
s[0]:=chr(50);
end.
Dasar Bahasa Pascal - Lesson 3
pemograman
Dasar Bahasa PASCAL - lesson 2
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 keterangan dibawah.
keterangan dibawah menunjukkan jenis data, ukuran dalam memori dan rentang nilainya.
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.
maka 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 keterangan dibawah.
keterangan dibawah mengenai 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.
keterangan mengenai bolean
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.
Dasar Bahasa PASCAL - lesson 2
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 keterangan dibawah.
keterangan dibawah menunjukkan jenis data, ukuran dalam memori dan rentang nilainya.
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.
maka 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 keterangan dibawah.
keterangan dibawah mengenai 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.
keterangan mengenai bolean
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.
Langganan:
Postingan (Atom)