Sabtu, 28 April 2012

Antara Janda, Keperawanan, dan Partai Politik

Seorang "Janda" yang sudah 3 kali kawin-cerai periksa di dokter kandungan. Waktu dokter mau periksa dalam, terjadi percakapan.

Janda : "Hati-hati periksanya ya dok, saya masih 'perawan' lho ...!"

Dokter: "Lho? Katanya ibu sudah kawin-cerai 3 kali, mana bisa masih perawan ...?"

Janda : "Gini lho dok, eks suami saya yang pertama ternyata impoten."

Dokter: "Oh gitu, tapi suami ibu yang ke-2 gak impoten kan?"

Janda : "Betul dok, cuma dia gay, jadi saya gak diapa-apain sama dia."

Dokter: "Lalu suami ibu yang ke-3 gak impoten dan bukan gay kan?"

Janda : "Betul dok, tapi ternyata dia itu orang 'partai politik'...."

Dokter: "Lalu apa hubungannya dengan keperawanan ibu ...?"

Janda : "Dia cuma janji-janji saja dok, 'gak pernah direalisasikan!!!"

Dokter: "?!?!?!?!????"

Sumber : m.ketawa.com/detail.php?id=6037

Cara Meletakkan Tangan (Humor)

Di sebuah pengadilan, seorang terdakwa selalu meletakkan tangannya ke dalam kantong celananya. Pak hakim berulang-ulang mengingatkan sang terdakwa harus menunjukkan sikap sopan-santun.

Dengan tak sabar terdakwa nyeletuk: "Aku sungguh-sungguh tak tahu apa yang harus kuperbuat! Tangan kuletakkan ke dalam kantong orang, kalian menangkap dan menghukum diriku tanpa ampun, sekarang tangan kumasukkan ke dalam kantongku sendiri, kalian mengatakan aku tak tahu sopan santun! Habis, di mana harus kuletakkan tanganku?"

sumber : m.ketawa.com/detail.php?id=7485

Kamis, 19 April 2012

INHERITANCE DAN POLIMORFISME

INHERITANCE DAN POLIMORFISME


Ahmad Septisumargi
Jonmun Putra Siregar http://www.jonmunputra.blogspot.com/
  Pengertian Inheritance (Pewarisan) adalah salah satu bentuk penggunaan kembali perangkat lunak dimana suatu kelas baru dibuat dari kelas yang sudah ada dengan memakai variabel data fungsi (method) dari kelas yang sudah ada tersebut serta menambah atribut/pelaku yang baru, kelas baru otomatis memiliki variabel atau fungsi yang dimiliki kelas asal.
  Sebagai manusia kita sebenarnya terbiasa untuk melihat objek yang berada disekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkkan cirri atau sifat dari class tersebut.
  Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga Anjing, kucing dan Monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.
  Inheritance (pewarisan) proses pewarisan data dan method dari suatu kelas kepada kelas lain. Pewarisan bersifat menyeluruh. Semua data dan method milik kelas asalnya diturunkan ke kelas baru. Kelas yang mewariskan Super Class atau Kelas Induk. Kelas yang diwariskan Sub Class atau Kelas Anak.

Contoh program Inheritance :
class Induk {
private String var1; //hak akses private berarti tidak dapat diakses oleh kls
anak
public int var2; //hak akses public berarti dapat diakses oleh kls anak
//konstruktor
Induk (){
}
//method
public void cetakData() {
}
}
class Anak extends Induk{
private String dataAnak; //variabel
//konstruktor
Anak () {
}
public void cetak() {
cetakData();//method milik Induk
// ada jg yang memanggil dgn super.cetakData()
}
}
class DemoPewarisan {
public static void main(String args[]) {
Anak anak = new Anak();
anak.cetak();
anak.cetakData();
System.out.println("Demo Pewarisan");
System.out.println("isi var 2="+anak.var2);
}
}

Pengertian
  Pada progam inheritance dan polimorfisme ini kita dapat menemukan perbedaan pada masing - masing program. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
  Pada class Induk { itu digunakan untuk menunjukan kelas yang akan dipakai pada program tersebut.lalu private String var1; dan public int var2; digunakan untuk memberikan suatu ruang public dalam kelas di dalam suatu variabel. Selanjutnya class Anak extends Induk yang digunakan untuk membedakan suatu program yang terdapat di inheritance. Dan pada program inheritance dapat ditemukan suatu keuntungan jika memakai program tersebut.

Keuntungan Pewarisan :
  • Bersifat reusable
  • Tidak harus menyalin semua data dan method dari suatu kelas jika akan menggunakannya lagi
  • Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama.
  • Untuk memodifikasi suatu data atau method untuk semua subkelas / kelas anak, maka tidak perlu melakukan perubahan di masing-masing kelas anak melainkan hanya pada kelas induk saja.



Pengertian Polimorfisme
  Polimorfisme atau Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.
  Polimorfisme sesuatu yang memiliki banyak bentuk. Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda sehingga listing code implementasinya juga berbeda.

Contoh program polimorfisme :



class Hewan {
private String jenis;
private int kaki;
Hewan (){
}
Hewan (String jenis, int kaki){
this.jenis = jenis;
this.kaki = kaki;
}
public void bersuara() {
System.out.print("suara hewan "+jenis+"berkaki "+kaki);
}
}
class Anjing extends Hewan {
Anjing() {
super();
}
public void bersuara() {
System.out.println("Guk.. Gukk.. Guk..");
}
}
class Kucing extends Hewan {
Kucing (String jenis, int kaki) {
super(jenis, kaki);
}
public void bersuara() {
super.suara ();
System.out.println("Meooongggg");
}
}
class DemoPoli {
public static void main(String args []) {
Anjing doggy = new Anjing ();
Kucing tom = new Kucing("Kucing", 4);
doggy.berusara();
tom.bersuara();
}
}


Pada program Polimorfisme adalah munculnya method – method yang terdapat pada program. Untuk mencegah suatu method agar tidak dapat di override oleh kelas – kelas turunan. Contohnya pada method public void bersuara() { //overriding method. Method – method semacam ini biasanya bersifat pasti. Artinya, kelas turunan sudah tidak perlu mengimplementasikan lagi isi dari method tersebut.

Kamis, 12 April 2012

Enkapsulasi Pada Java dan Program

Enkapsulasi Pada Java dan Program


Ahmad Septisumargi dan
Jonmun Putra Siregar http://www.jonmunputra.blogspot.com/


  Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. atau pengertian lainnya Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :

• Information hiding.
  Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.

• Interface to access data.
  Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

  Konsep Enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut. Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.
  Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.

Contoh program :

Listing Program - Mahasiswa.java

public class Mahasiswa{
private String nama;
private String npm;
public Mahasiswa(String n, String npm) {
this.nama = n;
this.npm = npm;
}
public String tampilkanNama() {
return nama;
}
public String tampilkanNpm() {
return npm;
}
public void JK() {
System.out.println("Jenis Kelamin : Laki-laki");
}
public void kelas() {
System.out.println("Kelas : 2IA07");
}
public void MK() {
System.out.println("Mata Kuliah : Pemrograman Berbasis Objek");
}
public void Kampus() {
System.out.println(" Universitas Gunadarma ");
}
}





Listing Program - main.java

public class main{
public static void main(String[] args) {
Mahasiswa sumargi = new Mahasiswa("sumargi", "50410420");
System.out.println("Nama \t : " + sumargi.tampilkanNama());
System.out.println("NPM \t : " + sumargi.tampilkanNpm());
sumargi.JK();
sumargi.kelas();
sumargi.MK();
sumargi.Kampus();
System.out.println();
Mahasiswa jonmun = new Mahasiswa("jonmun", "53410786");
System.out.println("Nama \t : " + jonmun.tampilkanNama());
System.out.println("NIM \t : " + jonmun.tampilkanNpm());
jonmun.JK();
jonmun.kelas();
jonmun.MK();
jonmun.Kampus();
System.out.println();
System.out.println("======Terima kasih=====");
}
}




Compile Mahasiswa.java dan main.java lalu run main.java





Logika Program

Bisa dikatakan juga program ini adalah sebuah program sederhana mengenai cara kerja enkapsulasi pada bahasa pemrograman java. Mahasiswa class berisi atribut yang mempunyai modifier public(+), sehingga main sebagai test program mempunyai akses langsung terhadap atribut pada Mahasiswa. Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari class sebagai private. private String nama; private String npm; Namun, ada kalanya dimana kita menginginkan object lain untuk dapat mengakses data private.

Kita lihat pada output kita menginisialisasi isi dari Mahasiswa sumargi = new Mahasiswa("sumargi", "50410420"); Mahasiswa jonmun = new Mahasiswa("jonmun", "53410786");

Outputnya




Rabu, 04 April 2012

Perbedaan Pemrog Terstruktur dengan Pemrog Berorientasi Objek



Perbedaan Pemrograman terstruktur dengan Pemrograman Berorientasi Objek


Ahmad Septisumargi dan
Jonmun Putra Siregar http://www.jonmunputra.blogspot.com/


Pemrograman berorientasi objek (Object-Oriented Programming atau OOP) merupakan pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalamnya ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Sedangkan untuk Pemrograman Terstruktur adalah kebalikan dari pemrograman berorientasi objek yaitu sebuah cara pemrosesan data yang terstruktur dalam analisa, cara dan penulisan pemrograman. Dikarenakan harus terstruktur sehingga dalam pembuatannya antara satu line pemrograman dengan yang lainnya berhubungan.

Konsep utama dari Pemrograman Berbasis Objek terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah kesatuan modular.
Untuk program yang simpel/sederhana biasanya menggunakan pemrograman terstruktur karena masih mudah dan tidak banyak dilakukan perubahan yang berarti, sedangkan untuk line lebih dari 100 atau bisa dikatakan rumit, maka digunakan pemrograman berorientasi objek. Pemrograman Terstruktur terdiri dari pemecahan masalah yang besar menjadi masalah yang lebih kecil dan seterusnya, sedangkan untuk pemrograman berorientasi objek terdiri dari pengkelompokan kode dengan data yang mana setiap objek berfungsi secara independen sehingga untuk setiap perubahan kode tidak tergantung pada kode yang lainnya, atau lebih dikenal dengan modular. Terdapat juga perbedaan secara spesifik antara Pemrograman Berorientasi Objek dengan Pemrograman Terstruktur, yaitu pada kelas dan objek. Pada Pemrograman Terstruktur tidak terdapat kelas dan objek.

Sifat-sifat dari Pemrograman Terstruktur dapat diuraikan sebagai berikut :

  • Biaya pengujian program relatif rendah
  • Tidak menggunakan perintah GOTO
  • Program disusun dengan logika yang mudah dipahami
  • Memuat algoritma yang efisien, efektif dan sederhana
  • Memuat teknik pemecahan masalah yang logis dan sistematis
  • Memiliki dokumentasi yang baik
  • Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah

Berbeda dengan OOP. Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :
  • Encapsulation (pembungkusan)
adalah mekanisme pemrograman yang membungkus kode dan data yang dimanipulasi dan menjaganya supaya terhindar dari interferensi dan penggunaan yang tidak perlu. Salah satu caranya dengan membentuk objek.
  • Polymorphism (polimorfisme –perbedaan bentuk)


Polymorphisme artinya mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic, bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku-perilaku yang berbeda

  • Inheritance (pewarisan)


Inheritance memungkinkan programer meletakkan member yang sama dalam satu class dan class-class lain dapat mewarisi member tersebut. Class yang mengandung member yang sama dari beberapa class lain dinamakan superclass atau parent class. Class yang mewarisi dinamakan subclass atau child class. Inheritance menghasilkan class hierarchy.




Bisa dikatakan pada pemrograman berorientasi objek, dapat dilakukan sebuah programming terhadap code yang lebih baik daripada pemrograman terstruktur, itu juga untuk skala rumit atau besar. Sedangkan untuk coding yang skala kecil lebih mudah menggunakan pemrograman terstruktur dikarenakan lebih singkat dan mudah tanpa banyak perubahan yang penting.