procedure

Upload: yulia-nurmaindah-asih

Post on 31-Oct-2015

12 views

Category:

Documents


0 download

TRANSCRIPT

1. Procedure dan Function

Pada dasarnya procedure dan function merupakan sub-program yang memiliki bagian deklarasi dan (begin-end;) tersendiri layaknya suatu program pascal. Sedangkan tujuan pemakaian procedure maupun function adalah untuk memecah program kita menjadi kesatuan logika yang lebih kecil (sub-sub program). Selain itu, untuk menghindari perulangan pengetikan dan memudahkan pembacaan. Untuk lebih jelasnya kita bias lihat penjelasan dibawah ini.

Procedure

Procedure berguna untuk mengumpulkan statementstatement yang dapat dijalankan menjadi satu dalam suatu blok dan untuk menjalankannya kembali hanya dengan menuliskan nama procedure yang menampungnya. Selain itu procedure juga banyak dipakai untuk menampung barisbaris perintah yang sering dipakai dalam sebuah program.

Untuk mendeklarasikan procedure dapat dilakukan dengan dua cara, yaitu :

Header procedure tanpa parameter

Header procedure dengan parameter

Header procedure tanpa parameterBentuk umum :

Procedure ;

Contoh :

Procedure BuatKotak;

Procedure Input;

Procedure Output;

Header procedure dengan parameter Bentuk umum :

Procedure ();

Contoh :Procedure Hitung(a, b : byte ; c : real);

Procedure Lingkaran(x, y, jari : integer);

FunctionFunction tidak hanya dapat dipakai untuk mengelompokan barisbaris perintah seperti halnya procedure, tetapi function itu sendiri dapat menampung nilai yang disimpan pada nama function. Hal tersebut merupakan perbedaan utama antara fungsi dan prosedur.

Seperti procedure, penulisan header function pun dapat dilakukan dengan dua cara (sesuai dengan kebutuhan), yaitu :

Header function tanpa parameter

Header function dengan parameter

Header procedure tanpa parameterBentuk umum :

Function : TipeData;

Contoh :

Function Hitung : integer;

Function Nama : string;

Function Check : Boolean;

Header Function dengan ParameterBentuk umum :

Function () : TipeData;

Contoh :

Function Hitung(a, b : byte) : integer;

Function CheckPosisi(x, y : integer) : Boolean;

Perbedaan antara Function dan Procedure, sebagai berikut :

Jika membuat suatu procedure maka harus mendeklarasikan dengan reserved word Procedure, sedangkan jika ingin membuat suatu function maka harus mendeklarasikan dengan reserved word Function.

Function harus dideklarasikan dengan tipenya, sedangkan procedure tidak. Hal ini menunjukkan bahwa pada function itu sendiri dapat menampung nilai, sedangkan procedure tidak.Persamaan antara Function dan Procedure, terletak pada fungsinya, yaitu :Memecah sebuah program besar menjadi beberapa bagian (modul) sehingga memudahkan pembagian tugas jika program tersebut dibuat oleh lebih dari 1 orang. Selain itu juga mempermudah pengecekan kesalahan / error.

Jika terdapat perintahperintah yang sama yang akan dipakai dalam suatu program, maka sebaiknya perintahperintah tersebut dipisahkan dalam suatu modul program dengan menggunakan procedure, sehingga jika ingin memakainya hanya tinggal memanggil nama procedure tersebut.

Mempermudah proses dokumentasi.2. Array

Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalam memory computer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi (multi dimensi).

Array adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan serta bertipe data sama pula.

Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama. Array merupakan konsep yang penting dalam pemrograman, karena array memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks. Array menggunakan indeks integer untuk menentukan urutan elemen-elemennya, dimana elemen pertamanya dimulai dari indeks 0, elemen kedua memiliki indeks 1, dan seterusnya.Array juga merupakan suatu grup (entitas) yang beranggotakan elemen-elemen (variabel) yang bertipe data sama dan dapat diakses dengan memanggil nama array beserta indeks elemennya. Array dapat diakses berdasarkan indeksnya. Array umumnya dimulai dari 0 dan ada pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan (looping). array dapat di bedakan berdasarkn jumlah dimensinya. Dimensi satu.Array ini biasanya digunkan hanya untuk menyimpan nilai tunggal, seperti umur karyawan, atau semua tipe data yang tunggal. Sintaks : type pengenaltipe = array[tipe_index] of tipe_data

Var nama var : pengenal tipe;

Keterangan :

Pengenal adalah nama tipe data

Tipe_index adalah tipe data untuk nomor index serta menentukan banyaknya Komponen larik tersebut. Tipe adalah tipe data komponen Contoh:

type larik=array [1..100] of real;

var nilai: larik; Dimensi dua. Adalah array yang berupa tabel, shg posisi data berada pada baris dan kolom. Array ini biasanya digunkan untuk mengakses tabel ataupun matriks pada matematika yang memerlukan 2 dimensi.Syntax: type namatipe= ARRAY [1..baris, 1..kolom] of tipe dataContoh:Type matrix= ARRAY [1..5, 1..7] of integer; var A,B, C: matrix; Multi dimensi.Array ini sangat jarang digunkan, karena sangat jarang ada program yang memerlukan penapungan data secara multi dimensi atau lebih dari 3 dimensi. Oleh karena itu array multi dimensi jarang digunakan pada hampir semua bahasa pemrograman pasti terdapat syntax untuk variable array yang dapat di akses. Karena array sangat membantu kita dalam menyelesaikan atau pembuatan program terutama pada penanganan kumpulan data atau statistika. contohnya: bila kita di suruh untuk membuat sebuah program untuk menyimpan nama-nama pegawai sebuah perusahaan yang nantinya akan di buatkan absensinya. bila kita tidak membuat dengan array maka kita akan memerlukan nama variable yang sangat banyak, tetapi bila kita menggunkan array kita hanya memerlukan 1 variabel saja yang memiliki banyak nomor index.

Array umumnya disimpan di memori computer secara kontigu (berurutan). Deklarasi dari array adalah sebagai berikut:int A[5]; artinya variabel A adalah kumpulan data sebanyak 5 bilangan bertipe integer.

Operasi terhadap elemen di array dilakukan dengan pengaksesan langsung. Nilai di masing-masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa melewati posisi-posisi lain.

Terdapat dua tipe operasi, yaitu:

1. Operasi terhadap satu elemen/posisi dari array

2. Operasi terhadap array sebagai keseluruhan

Dua operasi paling dasar terhadap satu elemen/posisi adalah

1. Penyimpanan nilai elemen ke posisi tertentu di array

2. Pengambilan nilai elemen dari posisi tertentu di array

Penyimpanan dan Pengambilan Nilai

Biasanya bahasa pemrograman menyediakan sintaks tertentu untuk penyimpanan

dan pengambilan nilai elemen pada posisi tertentu di array.

Contoh:

A[10] = 78, berarti penyimpanan nilai 78 ke posisi ke-10 dari array A

C = A[10], berarti pengambilan nilai elemen posisi ke-10 dari array A

Keunggulan dan Kelemahan Array

Keunggulan array adalah sebagai berikut:

1. Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu secara langsung tanpa melalui elemen-elemen lain.

2. Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-elemen tetangga, baik elemen pendahulu atau elemen penerus

3. Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga, maka penggunaan penyimpanannya sangat efisienKelemahan array adalah sebagai berikut:

Array mempunyai fleksibilitas rendah, karena array mempunyai batasan sebagai berikut:

1. Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemen adalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain

2. Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit diubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus, maka representasi statis

Tidak efisien dalam penggunaan memori

Menyiakan banyak waktu komputasi

Pada suatu aplikasi, representasi statis tidak dimungkinkan3. Rekursi dan Perulangan FORRekursif adalah konsep pengulangan yang penting dalam ilmu komputer. Konsep ini dapat digunakan untuk merumuskan solusi sederhana dalam sebuah permasalahan yang sulit untuk diselesaikan secara iteratif dengan menggunakan loop for, while do. Pada saat tertentu konsep ini dapat digunakan untuk mendefinisikan permasalahan dengan konsisten dan sederhana. Pada saat yang lain, rekursi dapat membantu untuk mengekspresikan algoritma dalam sebuah rumusan yang menjadikan tampilan algoritma tersebut mudah untuk dianalisa.

Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri. Dalam dunia pemrograman, rekursi diimplementasikan dalam sebuah fungsi yang memanggil dirinya sendiri.

Contoh Program Rekursif

Program Perpangkatanprogram pangkat;uses crt;var a,x,i,hasil:integer;beginwriteln(masukkan bilangan yang akan di pangkatkan);readln(A);writeln(masukkan bilangan pangkat);readln(x);hasil:=1;for i:=1 to x dohasil:=hasil*A;writeln(hasil dari ,A, pangkat ,x, adalah ,hasil);readln;end. Perbedaan dan Persamaan Rekursif dan Iteratif (FOR):Persamaan- Sama-sama merupakan bentuk perulangan.- Dilakukan pengecekan kondisi terlebih dahulu sebelum mengulang.Perbedaan- Iteratif menggunakan FOR, WHILE, DO-WHILE sedangkan rekursif hanya menggunakan IF. Fungsi Rekursif merupakan proses perulangan dengan cara memanggil dirinya sendiri. Sedangkan fungsi iteratif adalah proses perulangan dengan menggunakan fungsi for, while dan repeat-until (do-while).

- Iteratif dapat berjalan pada program yang terdiri dari prosedur (Tidak terdapat fungsi) sedangkan rekursif merupakan fungsiManfaat fungsi rekursif dan interatif serta perbandingannya dengan looping/perulangan:REKURSIFITERATIF

Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan aka terhenti

Kelebihan perulangan rekursif Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar Dapat melakukan perulangan dengan batasan fungsiKelebihan perulangan iteratif Mudah dipahami dan mudah dilakukan debuging ketika ada perulangan yang salah Dapat melakukan nested loop atau yang disebut dengan looping bersarang Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas

Kekurangan perulangan rekursif Tidak bisa melakukan nested loop atau looping bersarang Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum) Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpukKelemahan perulangan iterative Tidak dapat menggunakan batasan berupa fungsi Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri