Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
TUGAS RESUME
DASAR PEMROGRAMAN
Yang dibina oleh Ika Atsari Dewi, STP.
Disusun :
Kelompok1
1. Dedy Iskandar (115100307113012)
2. Dhanis Ulan (115100307113018)
3. Endra Cahyono (115100307113011)
4. Ma’ruf Pambudi (115100307113021)
5. Reta Wahyu (115100307113023)
6. Selvi Putri S (115100301113002)
JURUSAN TEKNOLOGI INDUSTRI PERTANIAN
FAKULTAS TEKNOLOGI PERTANIAN
UNIVERSITAS BRAWIJAYA
2012
ARRAY
Array (larik) adalah sebuah variable yang dapat menyimpan lebih dari satu nilai sejenis (memiliki tipe data sama). Hal ini berbeda dengan variable biasa yang hanya mampu menampung satu buah nilai. Setiap nilai yang disimpan di dalam array disebut dengan elemen array, sedangkan nilai urut yang digunakan untuk mengakses elemennya disebut dengan indeks array.
1. Deklarasi Arraya. Format
NamaArray : array [IndeksAwal..IndeksAkhir] of tipe_data ;
b. Contoh :var
A : array[1..100] of integer;terendah, tertinggi : integer;
beginterendah : Low (A); {akan menghasilkan nilai 1}tertinggi : High (A); {akan menghasilkan nilai
100}end.
2. Mengakses Elemen ArrayLangkah awal yang harus dilakukan adalah mengisikan nilai ke dalam elemen-elemen array bersangkutan. Adapun bentuk umum untuk pengisian elemen array sebagai berikut :
NamaArray [indeks] := nilai;
Contoh : Kode 1
varA : array[1..100] of integer;
beginA [1] := 1; {mengisi elemen pertama dengan nilai 1}A [2] := 2; {mengisi elemen kedua dengan nilai 2}A [3] := 3; {mengisi elemen ketiga dengan nilai 3}……A [100] := 100; {mengisi elemen keseratus dengan nilai
100}end.
Kode 1 tersebut akan melakukan pengisian 100 elemen array dengan nilai 1 sampai 100 sehingga kode tersebut akan lebih sederhana apabila dituliskan dengan menggunakan struktur pengulangan pada kode 2 di bawah ini :
Kode 2var
A : array [1..100] of integer;i : integer;
beginfor i:=1 to 100 do
beginA [i] := i ;end;
end.
3. Array sebagai Tipe Data BentukanSama halnya dengan record, array juga digunakan sebagai tipe data bentukan, yaitu dengan cara mendeklarasikannya di bagian yang diawali dengan kata kunci type. Berikut ini contoh array yang didefinisikan sebagai tipe data :type
Bilangan = array [1..100] of integer;
Setelah mendefinisikan array tersebut, maka kita dapat menggunakannya untuk mendeklarasikan variable lain di dalam program. Berikut contoh pendeklarasian variable yang menggunakan tipe bentukan berupa array :var
X : Bilangan;
4. Array KonstanNilai yang terkandung di dalam sebuah array dapat bernilai konstan, artinya nilai-nilai tersebut tidak dapat diubah. Untuk melakukan hal tersebut, kita harus mendeklarasikan array bersangkutan degan kata kunci const. Berikut ini bentuk umum pendeklarasiannya :const
NamaArray : array [IndeksAwal..IndeksAkhir] of tipe_data = (nilai1, nilai2,…);
Misalnya :const
A : array [1..5] of char = (‘A’, ‘B’, ‘C’, ‘D’, ‘E’);
5. Array sebagai ParameterHal ini sering kita jumpai pada saat kita akan melakukan pencarian maupun pengurutan dari sekumpulan data. Berikut ini contoh penggunaan array di dalam sebuah prosedur :type
Bilangan = array [1..100] of integer;procedure InputArray ( A: Bilangan; N : integer);var
i : integer;begin
for I :=1 to N dowrite (‘Masukkan elemen array ke- ‘ , i);readln (A[i]);
end;
Penggunaan array yang tidak diperbolehkan :procedure InputaArray (A : array [1..100] of integer; N); {SALAH}
Perbaikan array dari kode di atas :procedure InputArray (A : array of integer; N);{BENAR}
6. Array Dimensi Satu
• Setiap elemen array dapat diakses melalui indeks.
• Indeks array secara default dimulai dari 0.
• Deklarasi Array
tipe nama_var[ukuran];
dimana:
tipe : jenis elemen array (ex. char, int)
ukuran : jumlah maksimal elemen array
Contoh :
int Nilai [5];
7. Array Dimensi Dua
• Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom.
• Bentuknya dapat berupa matriks atau tabel.
• Deklarasi array :
tipe_array nama_array[baris][kolom];
Contoh :
int X[3][4];
8. Array Dimensi Banyak
• Bentuk umum deklarasi array dimensi banyak : tipe_datanama_var[uk_1][uk_2]..
[uk_n];
dimana : uk_1, uk_2, uk_n adalah ukuran dari array.
Contoh deklarasi:
int nilai[4][2][7];
9. Array Tak Berukuran
• Array dapat dideklarasikan tanpa memberi ukuran (jumlah data dalam array).
Dengan syarat: Harus langsung diinisialisasi. Hanya elemen pertama yang boleh tidak berukuran. Contoh:
Contoh :int nilai[] = {32, 45, 67,21};
int nilai[][2]={{9,7},{4,2},{8,3}};
RECORD
Dalam Pascal terdapat tipe data yang berisi kumpulan data, tipe data ini dikenal dengan
nama Tipe Record (rekaman), perbedaan antara record dengan array adalah bahwa dalam larik
semua elemenya harus bertipe sama, tetapi dalam record setiap elemen bisa mempunyai tipe yang
berbeda antara satu sama lainnya. Data item yang merupakan elemen record biasanya disebut
dengan FIELD.
Beberapa contoh pemakaian misalnya rekaman data akademis mahasiswa, rekaman gaji
pegawai, persediaan barang dalam gudang dan lain-lain.
Rekaman dapat muncul dalam berbagai bentuk, misalnya informasi yang tertulis pada kartu
dan tersimpan dalam sebuah kotak; sebagai informasi yang diketikkan lewat terminal komputer dan
tersimpan dalam harddisk. Biasanya rekaman-rekaman dalam computer tersimpan dalam bentuk
berkas (file) yang tak gayut terhadap program yang menggunakannya.
Bentuk Umum penulisan Rekord
type
Pengenal = Record
Namafield_1 : Typedata;
Namafield_2 : Typedata;
............
Namafield_N : Typedata;
end;
Atau dapat juga dideklarasikan sebagai berikut:
var
Pengenal = Record
Namafield_1 : Typedata;
Namafield_2 : Typedata;
............
Namafield_N : Typedata;
end;
MEMPROSES VARIABEL BERJENIS RECORD
Perhatikan deklarasi variabel berikut :
type nilai : record;
Nilai1 : real;
Nilai2 : real;
end;
var x,y : nilai;
Untuk memproses variabel x dan / atau y dilakukan dengan cara menyebutkan field designatornya,
yg terdiri dari atas :
Nama_record.nama_field
Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah :
x.nilai1
x.nilai2
y.nilai1
y.nilai2
Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk statement-nya adalah :
READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);
uses wincrt; type wisatawan = Record Nama : string[30]; JenisKelamin : string[20]; Alamat : string[20]; Umur : real;
end; var Wstw:Wisatawan;
begin clrScr;
write ('Nama:');ReadLn(Wstw.Nama);
write ('Alamat:');Readln(Wstw.Alamat);
write ('Jenis Kelamin:');Readln(Wstw.JenisKelamin);
write ('Umur:');Readln(Wstw.Umur);
writeln; Writeln('Nama Anda:',Wstw.Nama);
writeln('Alamat Anda:',Wstw.Alamat);
writeln('Jenis Kelamin Anda:',Wstw.JenisKelamin);
writeln('Umur Anda:',Wstw.Umur:0:0);
end.
STATEMENT “WITH”
Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat digunakan statement
WITH.
Dengan statement ini penulisannya akan lebih sederhana.
Bentuk Umum penulisan statement WITH ini adalah :
with nama_record do statement
Perhatikan deklarasi dibawah ini :
TYPE x = RECORD
No : integer;
Kode : char;
Juml : integer;
Harga : real;
END;
VAR p,q : x;
Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITH bentuknya
menjadi:
WITH p,q DO read (no, kode, juml, harga);
Bandingkan jika digunakan cara sebelumnya :
Read (p.no,p.kode,p.juml,p.harga,q.no,q.kode,q.juml,q.harga);
CONTOH :
Pernyataan seperti :
Data.nim :=‘22297566’
Data.Nama:=‘Abdul Kadir’
Data.Fakultas:=‘Teknik’
Dapat diganti dengan :
WITH Data DO begin
nim :=‘22297566’
Nama:=‘Abdul Kadir’
Fakultas:=‘Teknik’
end;
Apabila di dalam pernyataan WITH terdapat lebih dari satu record, haruslah pada kedua record
tersebut tidak ada field dengan nama yang sama. Sebagai contoh :
Type
BarangX=RECORD
Batu:integer;
Kayu:real;
END;
BarangY=RECORD
Batu:string[10];
Kayu:char;
END;
var
brg_X:barangX;
brg_Y:barangY;
Karena kedua variabel record brg_X dan brg_Y memiliki nama field yang sama, Jika misalnya
kemudian dikenakan pernyataan :
WITH brg_X, brg_Y Do
begin
writeln(batu);
writeln(kayu);
end;
dapat menyebabkan hasil tidak seperti yang diharapkan.
Record yang Bervariasi
Yaitu suatu record dengan field yang bisa berubah pada saat program berjalan. Hal yang
perlu diperhatikan adalah bahwa beberapa field yang berada dalam record tidak pernah muncul
dalam serempak, hanya akan ada satu field yang terpakai dalam satu saat.
Record varian akan memberikan fasilitas untuk menentukan field yang diperlukan pada saat
program berjalan (RUN-TIME), berdasarkan keperluannya.
Bentuk umum Record Varian :
TYPE namarecord = RECORD
Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
nama_field_n : jenis;
Case Tagfield:jenis Of
nama_tagfield : (Nama_field:jenis);
nama_tagfield : (Nama_field_1, Nama_field_2:jenis);
……………………..
nama_tagfield : (Nama_field_n:jenis);
END;
Contoh : Type status=(T,P,J);
gaji=RECORD
napeg :string[25];
nopeg :string[10];
bagian :string[15];
CASE stat :status OF
T:(gaji:integer);
P:(gajiperjam,jmlmax:integer);
J:(upahperjam,lembur:integer);
end;
Perbedaan contoh program antara array tipe record dan array dalam record.
Array Tipe Record
type barang=RECORD
namabrg:string[20];
jmlbrg:byte;
hargabrg:real;
total:real;
end;
var jual:array [1..10] of barang
i,j:integer;
tot1:real;
begin
i:=1;
write(‘Nama barang :’);readln(jual[i].nmbrg);
Repeat
write(‘Jumlah barang :’);readln(jual[i].jmlbrg);
write(‘Harga barang :’);readln(jual[i].hrgbrg);
jual[i].total:=jual[i].jmlbrg* jual[i]. jual[i].hrg.brg;
inc (I);
write(‘Nama barang :’);readln(jual[i].nmbrg);
until (jual[i].nmbrg=‘0’) or (I=11);
dec(i);
clrscr;
writeln (‘-----------------------------------------------’);
writeln (‘No nama barang jumlah harga total’);
writeln (‘----------------------------------------------’);
for j:=1 to I do
begin
gotoxy(1,j+3);write (j);
gotoxy(5,j+3);write(jual[i].nmbrg);
gotoxy(26,j+3);write(jual[i].jmlbrg:10);
gotoxy(37,j+3);write(jual[i].hrgbrg:10:2);
gotoxy(48,j+3);write(jual[i].total:10:2);
tot1:=tot1 + jual[j].total ;
end;
writeln (‘------------------------------------------------’);
writeln(‘ Total :’,tot1:10:2’);
writeln (‘-------------------------------------------------’);
end.
Array dalam record
Type barang= RECORD
nmbrg:string[20];
jmlbrg:array[1..3]of byte;
hrgbrg:real;
total:real;
end;
var jual:barang;
tbarang, i:integer;
Begin
clrscr;
write(‘Nama Barang :’);readln(jual.nmbrg);
for i:=1to 3 do
begin
write(‘Jumlah barang ’,I,’ : ’);readln(jual.jmlbrg[i]);
tbarang:=tbarang+jual.jmlbrg[i];
end;
write(‘Harga barang :’);readln(jual.hrgbrg);
jual.total:=tbarang*jual.hrgbrg;
writeln(‘Total Harga Barang = ‘, jual.total:10:2);
end.
PROCEDURE DAN FUNCTION
Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi
sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses
sebagian dari pekerjaan program utama.
PROCEDURE
Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur.
Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul
prosedurnya.
Prosedur banyak digunakan pada program yang terstruktur, karena :
1. Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit
menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur
dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block. Perbedaan
bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :
PROCEDURE nama;
Atau
PROCEDURE nama (formal parameter : jenis);
Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus
dituliskan pada bagian deklarasi.
Contoh :
Misal akan dibuat suatu procedure untuk menentukan bilangan bulat terbesar diantara tiga bilangan
bulat, maka procedure tersebut adalah sebagai berikut :
1
2
3
4
5
6
7
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a > b THEN max := a ELSE max :=
b;
IF c > max THEN max := c;
WRITELN(max);
END.
Selanjutnya, di dalam suatu program, procedure ini dapat digunakan dengan bentuk penulisan
sebagai berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
PROGRAM contoh_1;
VAR a,b,c : integer;
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a>b THEN max := a ELSE max :=
b;
IF c>max THEN max := c; utama
WRITELN(max);
END;
BEGIN
READLN(a,b,c);
Maksimum
END.
1
2
3
4
5
6
7
8
9
10
11
12
13
PROGRAM CONTOH_2;
VAR p,l,t,vol,panj : real; PROCEDURE kotak; VAR v,pl : real; BEGIN v := p * l * t ; pl := p + 2.0 * t; writeln(v,pl); END;
BEGIN writeln(‘panjang’:10,’lebar’:10,’tinggi’ : 10); readln(p,l,t); kotak; END.
JANGKAUAN IDENTIFIER
Identifier yang dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana
identifier tersebut didefinisikan.
1
2
3
4
5
6
7
8
9
10
PROGRAM p; VAR x : real; PROCEDURE pl; VAR y : integer; begin
………………..; ………………..; end;
begin ………………..; ………………..; end. y → variabel global
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PROGRAM p; VAR x, y : real;
PROCEDURE pl; VAR y : integer;
begin end;
begin
x := ....... y := .......
end.
y (real) berlaku disemua blok program P, kecuali di P1, x (real) berlaku disemua blok P, kecuali di P2
hanya berlaku di P1 saja (lokal)
x dan y yang dimaksud adalah x dan y real (variabel global)
PROCEDURE DENGAN PARAMETER
Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat
digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada
modul atau unit program yang lainnya.
Contoh :
1
2
3
4
5
6
7
8
9
10
Prosedur Tanya_hitung; Var X,Y :real; Begin Write (‘Nilai X ?’); Readln(X); Y:=X * X; Writeln(‘Nilai Y = ‘,Y:6:2); End; Begin Tanya_Hitung; End. Hasilnya : Nilai X ? 5 Nilai Y = 25.00
Keterangan :
Variabel X dan Y sifatnya adalah lokal untuk prosedur Tanya_hitung, artinya hanya dapat digunakan
pada modul itu saja, Pada modul yang lain tidak dapat digunakan, contoh :
1
2
3
4
5
6
7
8
9
10
Prosedur Tanya_hitung; Var X,Y :real; Begin
Write (‘Nilai X ?’); Readln(X); Y:=X*X; End; Begin Tanya_Hitung; Writeln(‘Nilai Y = ‘,Y:6:2); End. Hasilnya : Error 31: Unknown identifier
Supaya nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara :
1. Dibuat bersifat global
Harus dideklarasikan di atas modul yang menggunakannya.
Pada contoh diatas, variabel A dab B bersifat global untuk prosedur kedua, ketiga dan
utama, tetapi tidak bersifat global untuk prosedur kesatu, sehingga prosedur kesatu tidak dapat
menggunakan variabel-variabel tersebut.
Var
A,B : real;
Procedure kesatu;
Begin
……
……
Var
A,B : word;
Procedure kedua;
Begin
……
……
End; (*akhir dari procedure kedua*)
Procedure ketiga;
Begin
Procedure kesatu;
Begin
…….
……..
Begin …… …… End. (*akhir dari modul utama*)
Pada contoh ini, variabel A dan B bersifat global untuk semua modul.
2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan
parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter.
2.1 Pengiriman parameter secara nilai
Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di
prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur.
Perhatikan procedure berikut :
Procedure konversi;
begin
f := (5/9) * c + 32; f dan c variabel global, c sebagai input
writeln(c,f); f sebagai output.
end;
Procedure di atas dapat dipanggil dengan variabel yang berbeda, tetapi penulisannya harus
diubah dengan menggunakan parameter sbb:
Procedure konversi (var f : real; c : real);
Begin disebut formal parameter
F := (5/9) * c + 32;
Writeln(c,f);
End;
Procedure kedua;
Begin
……
Procedure ketiga;
Begin
……
……
Selanjutnya procedure di atas dapat dipanggil dengan parameter lain, misalnya :
konversi (x,y) ;
actual parameter
x dan y disebut sebagai actual parameter.
Pada eksekusinya x akan menggantikan c dan y akan menggantikan f.
x dan y ini dapat berupa :
- konstanta
- variabel
- procedure, atau
- fungsi
Contoh :
Procedure Hitung(A,B : integer);
Var C : integer;
Begin
C := A + B;
Writeln(‘Nilai C = ‘,C)
End;
Var X,Y : integer;
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ?’);
Readln(Y);
Hitung(X,Y);
End.
Hasilnya :
Nilai X ? 2
Nilai Y ? 3
Nilai C = 5
2.2 Pengiriman parameter secara acuan
Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang
terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter .
Procedure hitung(Var A,B,C : integer);
Menunjukkan pengiriman parameter secara acuan.
Contoh :
Procedure Hitung(Var A,B,C : integer);
Begin
C := A + B;
End;
Var X,Y,Z : integer;
Begin
X := 2; Y:= 3;
Hitung(X,Y,Z);
Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.
Hasilnya :
X = 2 Y = 3 Z = 5
Acuan Forward
Digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya.
Contoh :
Procedure pro1(var I : integer); Forward;
Procedure pro2(var I : integer);
Begin
Writeln(‘prosedur pro’, I);
End;
Procedure pro1;
Begin
Writeln(‘prosedur pro’,I);
End;
Var I : integer;
Begin
I := 1; pro1(I);
I := 2; pro2(I);
End.
Hasilnya :
prosedur pro1
prosedur pro2
Prosedur Standar
Prosedur yang disediakan oleh Turbo Pascal :
1. Prosedur standar EXIT
Digunakan untuk keluar dari suatu blok.
2. Prosedur standar HALT
Digunakan untuk menghentikan proses program baik di program bagian maupun di program
utama.
3. Prosedur standar MOVE
Bentuk umum : MOVE (Var source,dest; count : word);
Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte
pertama source dan disalinkan ke byte pertama dest.
4. Prosedur standar FILLCHAR
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut
FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch
sebanyak count byte.
Function
Konsep fungsi dalam pascal hamper sama dengan konsep fungsi dalam matematika. Sebuah
fungsi digunakan untuk menghitung sebuah nilai berdasar satu atau beberapa nilai masukan. Dalam
pascal, fungsi akan membantu mewujudkan pemecahan masalah yang lebih sederhana, sehingga
program semakin mudah dibaca dan lebih mudah diubah atau dimodifikasi.
Pendeklarasian Function:
1. Function NamaFungsi(Parameter-Parameter) : Tipe Fungsi;2. Tipe Lokal3. Konstanta Lokal4. Variabel Lokal5. Sub Program Lokal (Fungsi/Prosedur)6. Begin7. Statement
8. End;
Parameter dalam fungsi
Parameter adalah Parameter adalah variabel dalam sebuah prosedur atau fungsi yang
gunanya untuk menampungnilai yang dikirimkan oleh program yang memanggil prosedur atau fungsi
tersebut.Parameter dideklarasikan setelah nama prosedur atau fungsi, diikuti dengan jenis
variabelnya.
Macam Parameter pada fungsi:
Parameter bersifat Lokal artinya bahwa nilai yang terdapat didalam suatu modul program hanya
dapat digunakan pada modul yang bersangkutan sehingga tidak dapat digunakan pada modul lain.
Parameter bersifat Global artinya bahwa nilai dapat digunakan pada semua modul maka nilai
tersebut harus dideklarasikan di atas modul yang akan menggunakannya
1. Function nilai dengan parameter
yaitu parameter dalam fungsi yang dikirim secara nilai.
Sintaks:
Function besar(a,b : real) : real;
2. Function dengan parameter acuan
Penulisan judul function dengan menggunakan parameter secara acuan adalah sama dengan
procedure yaitu ditambah Var pada deklarasi parameter. Dengan demikian nilai parameter
acuan ini dapat digunakan sebagai hasil balik.
Sintaks :
FUNCTION jumlah(var a,b : integer) : integer;
3. Function tanpa parameter
Suatu function tanpa parameter berarti nilai balik yang akan dihasilkan merupakan nilai yang
sudah pasti. Jika pada function dengan parameter, parameternya digunakan untuk input
pada function dan function akan memberikan hasil balik sesuai dengan parameter yang
diberikan sehingga bisa diatur dari program pemanggil. Sedang pada function tanpa
parameter hasil dari function tidak dapat diatur. Sehingga function tanpa parameter jarang
digunakan.
Tanpa parameter:
FUNCTION nama : jenis hasil;
begin
{statement};
end;
Fungsi Standard
Disamping jenis fungsi yang didefinisikan sendiri oleh pemakai, Pascal memiliki fungsi-fungsi
standard, antara lain :
1. Copy
Bentuk penulisan:
Copy(s:string;Integer;Index:integer;Count:Integer) :String;
Untuk menyalin sejumlah karakter (Count) mulai dari posisi yang ditunjuk (Index) dari nilai
string (s).
2. Concat
Bentuk penulisan:
Concat(s1 [,s2,s3…,sn];string):string;
Untuk merangkai beberapa nilai string yang ditunjukkan oleh nilai string s1,s2,s3,….,sn.
3. Pos
Bentuk penulisan :
Pos(Substr : string;s : string):Byte;
Untuk mencari posisi letak dari suatu nilai string (substr) yang ada di dalam nilai string yang
lain (S). Nilai yang dihasilkan adalah Byte.
4. Length
Bentuk penulisan:
Length(S : string):Integer;
Untuk menghitung panjang atau jumlah karakter yang ada di nilai string
Rekursi pada function
Rekursi adalah dimana suatu function memanggil dirinya sendiri.
Contoh :
Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n,
adalah sebagai berikut :
Function FAK (n : integer) : integer
1. If n := 0 then FAK := 1
2. Else FAK := n * FAK(n-1)
Pemanggilan Fungsi
Parameter dalam fungsi (idem dengan prosedur), yaitu dapat dilakukan pemanggilan secara nilai (by
Value) atau secara acuan (by reference)
1. Parameter Secara Nilai ( By Value )
Bersifat satu arah, jika terjadi perubahan pada subprogram, maka tidak akan mempengaruhi
program utama.
Sintaks:
Function besar(a,b : real) : real;
2. Parameter Secara Acuan ( By Reference )
Bersifat dua arah, jika terjadi perubahan pada subprogram, maka program utamanya akan ikut
berubah.
Sintaks :
FUNCTION jumlah(var a,b : integer) : integer;
Daftar Pustaka
http://mykumpulanalgoritma.blogspot.com/2011/04/tugas-pascal-tentang-variabel-global.html
http://belajar-program.ueuo.com/?p=166
http://blog.binadarma.ac.id/yantox_ska/wp-content/uploads/2011/10/P8_Sub_Program.pdf
http://www.google.co.id/tanya/thread?tid=4d0f2ceb737dbae8
http://dediramadhan8.blogspot.com/2012/05/function-dalam-pascal.html
pertemuan_3_sd.pdf (application/pdf Object)
Program array bertipe record « Catatan One
4-array-dan-record.pdf (application/pdf Object)
Lampiran
Foto kelompok 1 Dasar Pemrograman :