Kamis, 02 Juni 2011

TENTANG PEMPROGAMAN TERSTRUKTUR

Pada era tahun 1950 –1960, kecepatan komputer sangat rendah dan disertai juga dengan
keterbatasan dari media penyimpan, sehingga tentunya berakibat juga dengan keterbatasan dalam
penulisan program-program komputer. Namun di era saat ini, dengan kecepatan komputer yang
cukup handal demikian juga ketersediaan dari media penyimpan yang cukup handal dan besar,
serta didukung juga dengan perkembangan bahasa pemrograman yang ada sehingga kita dapat
dengan mudah membuat suatu program. Permasalahan yang timbul dalam pembuatan program
tersebut adalah bagaimana kita dapat memahaminya, sehingga apabila terdapat perubahan yang
akan dilakukan kita dapat memperbaikinya secara mudah. Hal ini tentu saja harus kita perhatikan
terutama apabila kita melihat dari biaya yang harus dikeluarkan dalam pembuatan program
tersebut.
Istilah Pemrograman Terstruktur (Structured Programming) mengacu dari suatu
kumpulan tehnik yang dikemukan oleh Edsger Dijkstra. Dengan tehnik ini akan meningkatkan
produktifitas programmer, dengan mengurangi waktu yang dibutuhkan dalam penulisan (write),
pengujian (test), penelusuran kesalahan (debug) dan pemeliharan(maintain) suatu program. Pada
pembahasan berikut ini kita akan melihat bagaimana tehnik ini yang pendekatan yang dilakukan
secara modular, dapat membantu kita dalam membangun suatu program.
Pemrograman Secara Modular
Dalam pemrograman secara modular, suatu program akan dipilah kedalam sejumlah
modul, dimana setiap modul menjalankan fungsinya sendiri. Tentunya fungsi yang dijalankan
oleh setiap modul sangat terbatas sesuai dengan ruang lingkup yang akan dikerjakan. Dengan
adanya sejumlah modul program ini tentu saja kesalahan yang timbul dapat dikurangi.
Setiap program tentu akan memiliki program utamanya, yang kemudian akan memanggil
sejumlah modul-modul yang ada.
Implementasi dari pendekatan secara modular
Pemrograman secara modular ini dapat diimplementasikan dengan penggunaan
subroutine, suatu kelompok instruksi yang menjalankan suatu pengolahan yang sifatnya terbatas
seperti pencetakan, pembacaan untuk proses input atau untuk proses penghitungan.
………………………
………………………
………………………
………………………
CALL SUB
………………………
………………………
………………………
………………………
CALL SUB
………………………
………………………
………………………
SUB
………………….
………………….
………………….
………………….
RETURN
Gambaran dari proses transfer ke dan dari suatu subroutine
Keterangan :
Path dari pemanggilan pertama
Path dari pemanggilan kedua
Pemrograman Terstruktur Hal : 2
Subroutine dapat dikelompokkan menjadi internal subroutine dan external subroutine, berikut ini
penjelasannya:
Internal Subroutines
Adalah bagian dari suatu program yang digunakan. Dideklarasikan cukup sekali saja, untuk
sejumlah proses yang sama akan dilakukan oleh program tersebut. Program akan memanggil
subroutines tersebut jika diperlukan dan apabila telah selesai, kontrol selanjutnya dikembalikan
ke instruksi berikutnya.
Instruksi yang mengendalikan kontrol transfer ke suatu subroutine umumnya dikenal sebagai call
dan return.
External Subroutines
Diletakkan secara terpisah dari program yang menggunakan subroutine tersebut. Subroutine ini
dideklarasikan supaya bisa dipakai oleh program yang lain. Untuk menggunakannya tentu
seorang programmer harus mengetahui dimana ? , apa namanya ?, bagaimana pengiriman datanya
?, bagaimana jawaban yang akan diperoleh ?. Subroutine ini biasanya digunakan untuk
pemrosesan yang komplek, yang dibutuhkan oleh banyak user.
Masalah Yang dihadapi dalam Pendekatan Modular
Masalah yang timbul misalnya tidak mengetahui modul mana yang harus digunakan, data
apa yang harus dikirimkan dsb-nya. Hal ini dapat dimaklumi karena tugas seorang programmer
tentu akan berbeda dengan programmer yang lainnya. Oleh karena itu dalam tahap perencanaan
fungsi-fungsi dari suatu modul harus dapat dimengerti secara jelas, dan tentu saja harus mengikuti
suatu standar yang telah ditentukan.
TOP-DOWN PROGRAMMING
Pendekatan ini sangat berguna sekali dalam perencanaan suatu program bersifat modul.
Dalam pendekatan ini pertama-tama kita mendefinisikan modul untuk program utama, yang
merupakan program yang pertama kali dieksekusi, memanggil modul yang lain dan kemudian
menghentikan eksekusi program. Jika fungsi yang akan dikerjakan terlalu komplek, maka modul
ini harus dipecah kedalam sejumlah modul-modul yang ada dibawahnya.
Structure Charts
Digunakan sebagai alat bantu perencanaan dalam top-down programming. Sering juga
disebut sebagai hierarchy/hierarchical/chart/visual table of content (VTOC). Tidak ada standar
untuk structure chart dan digunakan untuk menggambarkan seluruh komponen yang ada.
Bujur sangkar menggambarkan modul dan diidentifikasikan dengan sebuah angka,
dimana angka nol untuk menandakan program utama (main program). Modul ini menggambarkan
keseluruhan program dan ditandai oleh level-0, sedangkan dibawah adalah level-1 dan seterusnya.
000
main program module
200
process transactions
100
load tables
300
print final cost
Level-0 module
Level-1 module
Pemrograman Terstruktur Hal :

KONSEP OOP

Object Oriented Programming merupakan konsep tentang asosiasi pemrograman terhadap benda yang kita temui setiap harinya. Misal asosiasi obyek pada OOP dengan kucing, sepeda, mobil dan rumah.
Dari masing-masing objek tersebut kita dapat menurunkan lagi menjadi objek-objek yang seperti objek induknya. Misal objek sepeda kita dapat menurunkannya menjadi sepeda balap, sepeda mini, sepeda gunung. Demikian juga misal pada mobil kita dapat menurunkannya menjadi mobil sedan, mobil kijang, mobil bus, mobil truk dan sebagainya.
Komponen dari dari suatu objek bisa beragam jenisnya, misalkan rumah. Rumah dibangun atas bahan bangunan semen, batu bata, pasir, air, kayu, genteng dsb. Rumah dibangun oleh tukang namun si tukang tidak mengetahui secara persis dibuat dari unsur apakah semen itu, atau apa zat yang terkandung dalam batu bata tersebut. Si Tukang tugasnya hanyalah membuatkan rumah saja tanpa harus tahu unsur apakah yang terkandung dalam bahan-bahan bangunan tersebut.
Tukang bangunan itu tidak mengetahui detil dari bahan bangunan yang dia pergunakan. Dia tidak mengerti detil obyek yang dia gunakan. Si tukang hanya tahu cara menggunakannya tapi sudah bisa membuatkan sebuah rumah yang indah buat kita. Dengan pemrograman OOP, kita kemungkinan besar akan melakukan hal yang sama dengan tukang bangunan itu. Kita akan mencari di Internet tentang berbagai obyek (ini nanti akan kita sebut class) dan inilah yang disebut class untuk membuat program jadi.
OOP dapat digambarkan sebagai realisasi nyata dari class jadi object adalah realisasi dari class. Kita kembali ke contoh sebelumnya yaitu pada mobil. Mobil balap sangat berbeda interior dan bodynya dengan mobil angkutan umum. Baik dari ban mobil, kaca mobil, stir mobil lampu dsb. Ban mobil, kaca mobil, stir mobil lampu itu adalah object dalam konsep OOP.
Jendela mobil balap berbeda baik dari ukuran maupun dari bahan yang dibuatnya. Classnya, adalah jendela. Sebuah kelas hanya mendefinisikan apa itu jendela dan bagaimana sifat-sifatnya. Class jendela dalam contoh ini tentu saja akan memiliki beberapa parameter yaitu berapa ukurannya, terbuat dari kaca apa, serta jenis kaca yang digunakan.
Misalnya kita ternyata perlu membuat definisi baru mengenai arah membuka jendelanya. Apakah ke samping, ka atas atau ke bawah. Hal-hal seperti itu bisa dilakukan dengan menggunakan sifat-sifat class( polymorphism, inheritance, dll).


Encapsulation (Enkapsulasi)

Encapsulation atau untuk gampang mengingat adalah kapsulnya. Kita pada saat minum obat dapat berbentuk kapsul. Fungsi encapsulation juga sama dengan kapsul itu, yaitu membungkus atau menyembunyikan obat di dalamnya. Dalam OOP tentu saja bukan obat yang disembunyikan tetapi kodenya.
Kita kembali ke contoh pembuatan jendela atau ban mobil. Terbuat dari bahan apakah kaca mobil balap tersebut atau terbuat dari apakah ban mobilnya dan seterusnya.

Pembungkusan atau penyembunyian informasi itulah kira-kira arti dari encapsulation atau enkapsulasi. Dalam pemrograman, tujuan encapsulation adalah menyembunyikan property dan method suatu objek. Tidak semua property atau method yang disembunyikan, beberapa dari mereka ada yang diinformasikan.


Property atau method yang ditampilkan pada objek disebut interface.

Encapsulation memiliki beberapa keuntungan:
Modularitas. Hal ini membuat objek dapat dikelola secara independen. Ban mobil, jendela dan stir mobil dibuat secara terpisah oleh masing-masing ahlinya, namun pada akhirnya dapat saling disatukan membentuk sebuah mobil.
Informasi yang tersembunyi. Hal ini akan memudahkan pengguna class, karena untuk setiap objek tentu sudah disediakan interface yang akan digunakan untuk berkomunikasi dengan objek lain, tanpa perlu tahu detil kode atau informasi yang tersembunyi di dalamnya.

cerita dikit nih tentang OOP yang aku tahu ..

OOP singkatan dari Object Oriented Programming, adalah sebuah paradigma pemrograman yang berorientasi terhadap Objek. Maksudnya disini adalah misalnya kita mempunya sebuah kasus maka kasus itu akan kita selesaikan dengan memecahkannya menjadi objek-objek. atau dapat pula dikatakan bahwa OOP adalah paradigma pemrograman yang memandang software sebagai kumpulan object-object yang saling berinteraksi di dalam suatu sistem. Didalam OOP kita akan mengenal yang namanya Object, class serta method2. Object dapat dikatakan adalah segala sesuatau yang ada di dunia nyata, sedangkan class adalah representasi dari object di code program (CMIIW, maklum juga belajar), sedangkan method adalah suatu alat yang mengkomunikasikan antar class, atauinterclass. Komunikasi antar object didalam OOP digunakan melalui pesan, yang biasa dikenal dkengan sebuatn message passing. Selain itu pula ada yang dinamakan Abstratksi. Abstraksi adalah teknik untuk menentukan ciri sifat atau informasi penting dari suatu objek, yang mana yang akan ditampilkan dan yang mana yang tidak.

Sekian penjelasan singkat tentang OOP yang saya coba rangkum dari buku karangan Ir.M. Farid azis, M.Kom yang berjudul OOP dengan PHP5 mohon maaf jika ada yang keliru, tujuan saya menulis ini memang agar dapat dikoresi sama orang lain tentang pemahaman saya mengenai OOP. Terimakasih ..

OOP

TENTANG OOP
Apa sih OOP itu

OOP singkatan dari Object Oriented Programing, yaitu suatu pemrograman yang berbasis kepada obyek.

Pada pemrogaman ini kita memandang obyek sebagai komponen yang kita modelkan sebagai benda-benda dalam dunia nyata.

Banyak sekali kita kenal dari jenis-jenis obyek diantaranya hewan, mobil, televisi, sepeda dan masih banyak yang lain.

Dari sekian banyak obyek yang kita kenal pasti akan memiliki karakteristik yang melekat pada dirinya, seperti warna, jenis, ukuran dan lain sebagainya. Karakteristik itulah yang disebut dengan attribute.

Selain dari itu obyek juga memiliki tingkah laku yang disebut behavior atau method.
Adapun contoh dari method adalah hewan dapat berjalan, mobil dapat merubah gigi, televisi dapat dinyalakan dsb.

Pembuatan obyek dalam OOP sangat erat hubungannya dengan pembuatan class.
Perhatikan contoh dibawah ini.


Atribut :
> warna merah
> mempunyi 2 roda
> mempunyai 2 spion
> merk dukati

Method :
> nyalakan mesin
> ubah gigi
> belok kanan

Contoh diatas adalah sebuah class sepeda motor dengan obyek sepeda motorku yang memiliki atribut dan method seperti yang terinci diatas.

Berikut ini salah satu bentuk class, object, attribute dan method dalam baris-baris pemrograman yang berbasis object dalam bahasa java.

// Sepedamotor . java
class Sepedamotor
{
String merk ; // attribute dari class Sepedamotor
String warna ;
int off = 1;

// method dari class sepedamotor

void cetakAttribute ()
{
System.Out.println ( "Merk sepedamotor :" + merk ) ;
System.Out.println ( " Warna sepedamotor :" + warna ) ;
}

void hidupkanmesin ()
{
System.Out.println ( "Mesin hidup") ;
off =0 ; // tanda bahwa mesin hidup
}

void matikanmesin ()
{
System.Out.println ( "Mesin mati ) ;
off = 1 ; // tanda bahwa mesin mati
}
}

Pada contoh di atas semua attribute dan method terbungkus dalam suatu class, selanjutnya kita dapat membuat sebuah object baru dengan menggunakan attribute dan method dari class tersebut. Sebagai contoh file SepedamotorBeraksi . java

// SepedamotorBeraksi . java
public class SepedamotorBeraksi
{
public static void main ( String [ ] args )
{
// membuat object terlebih dahulu
Sepedamotor sepedamotorku = new Sepedamotor () ;

// memanggil attribute dan memberi input nilai
sepedamotorku . merk = "Dukati" ;
sepedamotorku . warna = "merah" ;

// panggil method dari class Sepedamotor
sepedamotorku . cetakAttribute () ;
sepedamotorku. hidupkanmesin () ;
sepedamotorku . matikanmesin ();
}
}

KARAKTERISTIK OOP

OOP memilik3 karakteristik, diantaranya:

1. Encapsualation ( Pembungkusan )
Attribute dan method perlu dibungkus dalam suatu kelas supaya untuk mempermudah
hak pengaksesannya.

2. Inheritance ( Pewarisan )
Suatu class dapat mewariskan attribute dan methodnya terhadap class lain.
Class yang mewarisi disebut superclass, dan class pewaris disebut subclass.
Sebuah subclass bisa mewariskan atau sebagai superclass yang lain yang disebut
multilevel inheritance.

3. Polymorphism ( Penyamaran bentuk )
Perumusan atau pengfungsian yang bisa dilakukan lebih dari satu macam bentuk