Minggu, 15 Mei 2016
Senin, 21 Desember 2015
Program procedure Dan Function
Procedure dan Fungsi pada Pascal
Baik kali ini kita masuk kebagian procedure dan fungsi di pascal.
tapi sebelum membahas lebih jauh kita kenali dulu kira-kira apa sih perbedaan procedure dan fungsi di pascal.
perbedaannya yaitu.
1. Prosedur diawali dengan dengan kata procedure untuk mendeklarasikannya
contoh : procedure hitung_angka;
kalau fungsi di awali dengan kata function
function hitung_bilangan: integer;
2. Procedure tidak mengembalikan nilai ke program utama, sedangkan fungsi akan mengembalikan nilai ke program utama, itu sebabnya fungsi harus ada tipe datanya (integer, char atau string).
tapi sebelum membahas lebih jauh kita kenali dulu kira-kira apa sih perbedaan procedure dan fungsi di pascal.
perbedaannya yaitu.
1. Prosedur diawali dengan dengan kata procedure untuk mendeklarasikannya
contoh : procedure hitung_angka;
kalau fungsi di awali dengan kata function
function hitung_bilangan: integer;
2. Procedure tidak mengembalikan nilai ke program utama, sedangkan fungsi akan mengembalikan nilai ke program utama, itu sebabnya fungsi harus ada tipe datanya (integer, char atau string).
3. Procedure outputnya diletakkan di dalam procedure, kalau fungsi outputnya di letakkan di program utama.
4. Prosedur di panggil diprogram utama dengan menuliskan nama procedure tersebut di program utama. contoh :hitung_bilangan;
Fungsi di panggil dengan memasukkan ke suatu variabel. atau bisa juga dengan langsung menuliskannya di program utama.
contoh. hasil:= hitung_bilangan(a,b);
atau write(‘hasilnya adalah ‘, hitng_bilangan(a,b));
4. Prosedur di panggil diprogram utama dengan menuliskan nama procedure tersebut di program utama. contoh :hitung_bilangan;
Fungsi di panggil dengan memasukkan ke suatu variabel. atau bisa juga dengan langsung menuliskannya di program utama.
contoh. hasil:= hitung_bilangan(a,b);
atau write(‘hasilnya adalah ‘, hitng_bilangan(a,b));
baik langsung saja ke contoh..
</pre> <blockquote>program aritha_pascal; uses wincrt; procedure nama; var nm: string; begin write('masukkan nama anda '); readln(nm); write('haloo ', nm); end; begin writeln('-======Program Procedure Input Nama======-'); nama; end.</blockquote> <pre>
Procedure dengan parameter Input dan parameter Output
kalau kita lihat contoh program sebelumnya perintah input read(nama); dan output write(nama); berada di procedure yang sama. nah bagai mana caranya apabila kita membaca input di procedure a. kemudian menampilkannya di procedure b.
untuk melakukan itu kita membutuhkan yang namanya parameter. parameter ada 2 parameter input yang berfungsi sebagai inputan untuk procedure tesebut. dan yang kedua adalah parameter output. yang berufngsi untuk memberikan output pada variabel yang di parameterkan.
untuk melakukan itu kita membutuhkan yang namanya parameter. parameter ada 2 parameter input yang berfungsi sebagai inputan untuk procedure tesebut. dan yang kedua adalah parameter output. yang berufngsi untuk memberikan output pada variabel yang di parameterkan.
</pre> <blockquote>program widy_pascal; uses wincrt; procedure inputnama <span style="color: red;" color="red">(var nm:string)</span>; begin write('masukkan nama anda '); readln(nm); end; procedure tampilnama <span style="color: blue;" color="blue">(nm:string)</span>; begin write('haloo ',nm); end; var nama:string; begin writeln('-======Program Procedure Input Nama======-'); inputnama(nama); tampilnama(nama); end.</blockquote> <pre>
pada prosedur inputnama tulisan yang berwana merah (var nm:string) adalah parameter output (parameter by reference). dimana nama yang di inputkan di dalam procedur akan menjadi output pada program utama sehingga di program utama nama yang telah di inpukan tadi bisa digunakan. ciri2 parameter output adalah dengan adanya var pada (var nm:string)
sedangkan untuk parameter input tidak menggunakan var. lihat coding di procedure tampilnama yang berwana biru (nm:string) nah in adalah contoh parameter input (parameter by value)
contoh lain
</pre> <blockquote>program aritha_pascal; uses wincrt; procedure inputan(alas: integer; tinggi:integer; var luas:real); begin write('masukkan nilai alas : '); readln(alas); write('masukkan nilai tinggi : '); readln(tinggi); luas:= alas*tinggi/2; end; var a,t:integer; luas : real; begin writeln('-======Program Procedure Luas segitiga======-'); writeln; inputan(a,t,luas); write('luas segitiga adalah : ', luas:0:2); end.</blockquote> <blockquote>
Fungsi
</pre> <blockquote>program aritha_pascal; uses wincrt; function luassegitiga(alas: integer; tinggi:integer) : real; var luas:real; begin luas:= alas*tinggi/2; luassegitiga:= luas; end; var a,t:integer; luas : real; begin writeln('-======Program Fungsi Luas segitiga======-'); writeln; write('masukkan nilai alas : '); readln(a); write('masukkan nilai tinggi : '); readln(t); write('luas segitiga adalah : ', <span style="color: red;" color="red">luassegitiga(a,t):0:2</span>); end.</blockquote> <pre>
tulisan yang berwarna merah adalah pemanggilan fungsi yang memberikan nilai luas dari segitiga.
kayaknya segitu aja deh ya contoh buat fungsi dan procedure. semoga bermanfaat :)
SHARE THIS:
Program array 3x3 matrik
program matriks_identitas_3x3;
uses wincrt;
var matrik:array[1..3,1..3] of integer;
i,j:byte;
begin
writeln('Matriks identitas 3x3 :');
matrik[1,1] := 1;
matrik[1,2] := 0;
matrik[1,3] := 0;
matrik[2,1] := 0;
matrik[2,2] := 1;
matrik[2,3] := 0;
matrik[3,1] := 0;
matrik[3,2] := 0;
matrik[3,3] := 1;
for i:= 1 to 3 do
begin
for j:=1 to 3 do
write (matrik[i,j]:5);
writeln;
end;
end.
Program pascal array 1dimensi & 2 dimensi part2
Array 1 Dimensi Pascal
Contoh array yang telah kita pelajari pada tutorial sebelumnya adalah array 1 dimensi, dimana setiap element array hanya terdiri satu ‘lapis’, seperti contoh berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| program tipe_array; uses crt; var nilai: array [ 0..2 ] of integer ; begin clrscr; nilai[ 0 ]:= 10 ; nilai[ 1 ]:= 20 ; nilai[ 2 ]:= 30 ; writeln ( 'nilai1: ' ,nilai[ 0 ]); writeln ( 'nilai2: ' ,nilai[ 1 ]); writeln ( 'nilai3: ' ,nilai[ 2 ]); readln; end . |
Maksud dari 1 dimensi disini adalah, setiap element array dibahas dengan 1 index, sepertinilai[0], nilai[1] dan nilai[2].
Array 2 Dimensi Pascal
Untuk penggunaan yang lebih rumit, array 1 dimensi tidak cocok lagi. Sebagai contoh, di dalam matematika kita menggunakan grafik/diagram kartesius yang titik koordinatnya menggunakan komposisi sumbu x dan sumbu y. Sebagai contoh A(3,4) berarti titik A berada di posisi 3 pada sumbu x, dan 4 pada sumbu y.
Untuk mempermudah dalam pembuatan program yang melibatkan 2 sumbu atau 2 dimensi ini, kita bisa menggunakan array 2 dimensi.
Cara penulisan array 2 dimensi adalah dengan menuliskan dua angka (dua jangkauan) sewaktu deklarasi array. Berikut contohnya:
1
2
| var nilai: array [ 0..1 , 0..2 ] of integer ; |
Kode diatas berarti saya membuat variabel ‘nilai’ sebagai array 2 dimensi. Dimana untuk dimensi pertama berisi 0 dan 1, sedangkan di dimensi kedua berisi 0, 1 dan 2. Total, variabel ‘nilai’ berisi 6 element (hasil dari 2 * 3).
Cara mengakses element pada array 2 dimensi ini menggunakan tanda koma sebagai pemisah, seperti: nilai[0,2] atau nilai[1,1].
Contoh berikut akan memperjelas cara penggunaanya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| program tipe_array; uses crt; var nilai: array [ 0..1 , 0..2 ] of integer ; begin clrscr; nilai[ 0 , 0 ]:= 1 ; nilai[ 0 , 1 ]:= 2 ; nilai[ 0 , 2 ]:= 3 ; nilai[ 1 , 0 ]:= 4 ; nilai[ 1 , 1 ]:= 5 ; nilai[ 1 , 2 ]:= 6 ; writeln ( 'nilai0,0: ' ,nilai[ 0 , 0 ]); writeln ( 'nilai0,1: ' ,nilai[ 0 , 1 ]); writeln ( 'nilai0,2: ' ,nilai[ 0 , 2 ]); writeln ( 'nilai1,0: ' ,nilai[ 1 , 0 ]); writeln ( 'nilai1,1: ' ,nilai[ 1 , 1 ]); writeln ( 'nilai1,2: ' ,nilai[ 1 , 2 ]); readln; end . |
Silahkan anda pelajari sejenak kode diatas, baik cara pembuatan array 2 dimensi maupun cara mengakses tiap-tiap elemennya. Menggunakan array 2 dimensi ini akan memudahkan kita untuk membuat kode program yang lebih kompleks.
Contoh lain yang sering menggunakan array 2 dimensi adalah untuk membuat struktur matriks. Berikut contohnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| program tipe_array; uses crt; var nilai: array [ 0..1 , 0..1 ] of integer ; begin clrscr; nilai[ 0 , 0 ]:= 1 ; nilai[ 0 , 1 ]:= 2 ; nilai[ 1 , 0 ]:= 4 ; nilai[ 1 , 1 ]:= 5 ; write (nilai[ 0 , 0 ], ' ' ); writeln (nilai[ 0 , 1 ]); write (nilai[ 1 , 0 ], ' ' ); writeln (nilai[ 1 , 1 ]); readln; end . |
Contoh kali ini hampir mirip dengan contoh kode program pascal sebelumnya, tapi saya membatasi dengan element 2×2 (perhatikan cara pendeklarasikan variabel ‘nilai’). Ketika menampilkan hasil array, saya menyusunnya agar sesuai dengan bentuk matriks 2×2. Ini didapat dengan perpaduan perintah write dan writeln.
Sebagai latihan, dapatkah anda membuat struktur matriks 3×3?
Array 3 Dimensi Pascal
Secara teori, dimensi untuk array di dalam pascal tidak terbatas. Kita juga bisa membuat array 3 dimensi. Ini diperlukan jika koordinat cartesius terdiri dari sumbu x, sumbu y, dan sumbu z. Cara pembuatannya juga hampir sama.
Sebagai contoh, jika saya ingin membuat array 3 dimensi 2x3x4 bisa ditulis sebagai:
1
2
| var nilai: array [ 0..1 , 0..2 , 0..3 ] of integer ; |
Sampai disini, saya yakin anda sudah paham maksud kode diatas. Cara pengaksesannya pun cukup dengan menambahkan dimensi ketiga di nomor index, seperti nilai[1,2,3] atau nilai[0,0,1]. Berikut contohnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| program tipe_array; uses crt; var nilai: array [ 0..1 , 0..2 , 0..3 ] of integer ; begin clrscr; nilai[ 0 , 0 , 2 ]:= 2 ; writeln (nilai[ 0 , 0 , 2 ]); nilai[ 1 , 2 , 3 ]:= 999 ; writeln (nilai[ 1 , 2 , 3 ]); readln; end . |
Setelah mempelajari cara pembuatan array 2 dimensi (dan 3 dimensi), dalam tutorial pascal berikutnya saya akan membahas cara pembuatan array dinamis (Dynamic Arrays).