Thursday, 20 October 2011

Prosedur dan Fungsi

Sebuah program yang baik adalah program yang membagi permasalahan utama menjadi bagian-bagian kecil dimana setiap bagian kecil ditangani oleh sebuah subprogram, cara ini disebut dengan modular programming (pemrograman terbagi/terpecah).


Cara ini termasuk pemrograman terstruktur dan sangat didukungoleh bahasa Pascal. Untuk itu, Pascal telah menyediakan dua jenis subprogram, yaitu procedure dan function (prosedur dan fungsi).

Dengan modular programming, program lebih mudah dibaca dan dimengerti.

Selain itu, pembenahan program dan penelusuran jalannya program (debugging) menjadi lebih mudah sebab dapat langsung diketahui subprogram mana yang berjalan tidak sesuai dengan yang diharapkan.

Prosecure adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). 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 diruliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waltu bila diperlukan.
Prosedur adalah subprogram yang menerima masukan tetapi tidak mempunyai keluaran secara langsung. Cara mendeklarasikan sebuah prosedur adalah sebagai berikut :
procedure A; { nama prosedur adalah A }
begin
{ statement }
end;
Pendeklarasian prosedur di atas adalah untuk prosedur yang tidak memerlukan parameter. Parameter adalah data masukan untuk subprogram yang nantinya akan diproses lebih lanjut dalam subprogram tersebut. 

Dalam Pascal, dikenal dua macam parameter yaitu :
  1. parameter nilai (value parameter), dan
  2. parameter referensi (reference parameter).
Cara mendeklarasikan parameter tersebut adalah sebagai berikut :
procedure B(X : integer; var Y : integer);
begin
{ statement }
end;
Pada deklarasi prosedur di atas, parameter X adalah parameter nilai sedang parameter Y adalah parameter referensi. Jadi, pendeklarasian parameter referensi didahului oleh reserved word var. Parameter referensi ini nantinya dapat dijadikan sebagai variable keluaran dari prosedur.

Fungsi hampir sama dengan prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe tersebut ditulis pada akhir deklarasi fungsi yang didahului dengn titik koma. 

Fungsi adalah subprogram yang menerima masukan dan mempunyai keluaran secara langsung. Cara mendeklarasikan sebuah fungsi adalah sebagai berikut :
function A : integer; { nama fungsi adalah A dengan }
begin { tipe data keluaran adalah integer }
{ statement }
A := 3; { nilai yang dikeluarkan fungsi }
end;
Sebagaimana dalam prosedur, fungsi juga dapat diberikan parameter. Cara mendeklarasikan fungsi dengan parameter juga tidak jauh berbeda dengan pendeklarasian parameter pada prosedur.
function B(X : integer) : integer;
begin
{ statement }
B := X * 2;
end;
Perbedaan utama antara prosedur dan fungsi adalah dalam menghasilkan keluaran.

Walaupun prosedur bisa menghasilkan nilai keluaran, tetapi nilai tersebut tidak dapat diambil secara langsung, melainkan harus diambil melalui parameter referensi. 

Sedangkan keluaran dari fungsi dapat diambil langsung dari fungsi tersebut

Saturday, 15 October 2011

Relasi Kelas Pada C++

Jenis relasi antar kelas terdiri dari pewarisan, agregasi, asosiasi. Pewarisan merupakan hubungan antar satu kelas dengan kelas lain dalam suatu hirarki kelas induk dan kelas turunan. Superclass (“kelas dasar” atau “kelas induk”) merupakan kelas yang lebih general dalam relasi “is-a”. subclass (“kelas turunan” atau “kelas anak”) merupakan kelas ang lebih sepesifik dalam relasi “is-a”. Objek yang dikelompokan dalam sub kelas memiliki atribut dan perilaku kelas induk, dan juga atribut dan perilaku tambahan. Kita mengatakan subcalass “mewarisi” suatu superclass (atau juga bisa dikatakan sebuah subclass “turunan dari” suatu superclass).

Agregasi merupakan hubungan antar kelas yang menyatakan sutau kelas merupakan bagian dari kelas yang lain atu hubungan antar kelas yang menyatakan suatu kelas memiliki kelas lain sebagai atribut. Agregasi merupakan relasi “has a”. contoh :
  • Mobil meiliki mesin
  • Fakultas terdiri dari jurusan
  • Rumah memiliki dapur
Mobil, Fakultas dan Rumah dinyatakan sebagi kelas agregat. Mesin, jurusan, dan dapur merupakan kelas penyusun.

Kardinalitas menyatakan jumlah objek penyususnan yang terlibat dalam pembentukan relasi agregasi. Suatu kelas agregat dibentuk dari beberapa (disimbolkan dengan*) objek kelas penyusun.

Asosiasi menggambarkan hubungan structural antar kelas. Setiap kelas memiliki kedudukan yang sama (tidak merupakan bagian dari kelas lain). Pada saat merancang relasi antar kelas, ada dua hal yang perlu diperhatikan yaitu berapa objek yang terlihat dari masing –masing kelas yang ber –relasi dan apakah relasi tersebut bersifat wajib (mandatory) atau opsional.