Perbedaan Abstract Class dan Interface

Perbedaan Abstract Class dan Interface

 

  • Abstrak class

Abstract Class merupakan Class yang khusus dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class ini ialah untuk membuat definisi umum bagi class-class yang akan menjadi turunan darinya.

Abstract Class tidak bisa diinstansiasi. Abstract method tidak mempunyai implementasi, sehingga penulisannya dilakukan hanya dengan mengikutkan semikolon, bukan blok method {} seperti biasanya. Abstract method ini bisa digunakan oleh Class turunannya dengan melakukan override.

Abstract class hanya bisa digunakan sebagai super class, tapi juga bisa diturunkan dari class abstract lainnya. Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract, [abstract] class [class_name] Sebuah abstract class pada dasarnya tidak hauh beda dengan class lainnya, yakni juga berisi method yang menggambarkan carakteristik dari kelas abstract tersebut, bedanya yakni sebuah abstract class bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body, methid seperti ini disebut method abstract.

 

class ChildBasis : ClassBasis

{

public override void method2(ref string s)
{

s = “this is a child implement method”;

}

}

 

Kegunaan Class Abstract

• Class Abstract berisi beberapa method dan beberapa method  abstract. Class Abstract berisi sebagian implementasi, dan subclass yang melengkapi implementasinya. Dengan kata lain Class Abstract memiliki beberapa kesamaan (Bagian yang  diimplementasikan oleh subclass) dan memiliki perbedaan (method yang dimiliki sendiri olehclass abstract)

• Deklarasikan method abstract, jika ada satu atau lebih subclass yang diharapkan mempunyai fungsionalitas yang sama tapi implementasi berbeda.

• Gunakan class abstract untuk mendefinisikan behavior secara umum sebagai superclass, sedangkan subclass menyediakan implementasi detail.

• Jika class abstract semua method merupakan method abstract,  sebaiknya class abstract tersebut diganti menjadi Interface

 

ContohClassAbstract ContohClass Abstract

• Kita dapat menggambar lingkaran, persegipanjang garis, kurva Bezier dan object object graphic lainnya Object tersebut Bezier danobject-object graphic lainnya. Object tersebut mempunyai state tertentu (seperti: position, orientation, line color,  fill color) dan behaviour secara umum(contoh: moveTo, rotate, resize, draw).Beberapastatedanbehaviorini samauntuksemua resize, draw). Beberapastate danbehavior ini sama untuk semua object graphic contoh: position, fill color, and moveTo. Implementasi yang berbeda sebagai contoh resize or draw. Semua Object Graphic harus mengetahui bagaimana cara draw dan resize

 

 

  • Interface

Sedangkan interface secara filosofis lebih berfungsi sebagai antarmka yang membentuk komunikasi dengan code lain. Misalnya membentuk hubungan antara sebuah object dengan object yang lain atau hubungan antara object sebagai penyedia dengan code pengguna. Karena itulah interface ini banyak digunakan dalam dunia design pattern. Sebab kebanyakan dari design pattern ini menekankan hubungan antar object.

Interface adalah jenis khusus dari blok yang hanya berisi method signature (atau constant).  Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface

 

Abstract Class Interface
Bisa berisi abstract dan non-abstract method. Hanya boleh berisi abstract method.
Kita harus menuliskan sendiri modifiernya. Kita tidak perlu susah2 menulis public abstract di depan nama method. Karena secara implisit, modifier untuk method di interface adalah public danabstract.
Bisa mendeklarasikan constant dan instance variable. Hanya bisa mendeklarasikan constant.  Secara implisit variable yang dideklarasikan di interface bersifatpublic, static dan final.
Method boleh bersifat static. Method tidak boleh bersifat static.
Method boleh bersifat final. Method tidak boleh bersifat final.
Suatu abstact class hanya bisa meng-extend satu abstract class lainnya. Suatu interface bisa meng-extend  satu atau lebih interface lainnya.
Suatu abstract class hanya bisa meng-extend satu abstract class dan meng-implement beberapa interface. Suatu interface hanya bisa meng-extend interface lainnya.  Dan tidak bisa meng-implement class atau interface lainnya.

 

 

PERBEDAAN KELAS DAN OBJEK

PERBEDAAN KELAS DAN OBJEK

 

Kelas merupakan konsep pokok di bahasa pemograman berorientasi object, demikian juga di Java. Kelas merupakan bentuk logis yang menjadi landasan bangun seluruh bahasa pemograman berorientasi object. Kelas mendefinisikan bentuk dan perilaku object. Kelas sungguh sangat penting di Java. Sembarang konsep/abstraksi yang diimplementasikan di Java harus di kapsulkan di kelas. Kelas adalah tipe data abstrak yang dilengkapi implementasi parsial atau total. Kelas mendeskripsikan kelompok object dengan properti-properti (atribut-atribut) serupa, perilaku (operasi-operasi) yang common, keterhubungan terhadap himpunan object-object lain dan semantik yang common. Kelas (class) merupakan contoh abstrak dari sebuah object yang telah terbentuk dari proses penyederhanaan. Dengan

Di pemrograman berorientasi objek, objek adalah entitas dasar saat runtime. pada saat kode program dieksekusi, objek berinteraksi satu sama lain tanpa harus mengetahui detil data atau kodenya. interaksi antar objek ini dilakukan menggunakan suatu message. objek memiliki suatu siklus hidup, yaitu diciptakan, dimanipulasi, dan di hancurkan

 

Perbedaan antara objek dengan class

Objek :

  • Secara sederhana, objek merupakan segala sesuatu yang dapat dibedakan satu sama lainnya. Segala sesuatu yang ada di alam semesta ini adalah objek. Contohnya: manusia, mobil, hewan, tumbuhan, tempat, atau bahkan yang tidak bersifat fisik seperti kejadian atau konsep-konsep. Sehingga bisa disimpulkan bahwa objek tidak harus bersifat fisik, karena jika dikaitkan dengan OOP objek akan menjadi bentuk logis.Suatu entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada status objeknya.
  • Objek dalam konsep OOP masih memiliki keadaan dan sifat seperti halnya objek di dunia nyata, karena pada dasarnya objek dalam OOP merupakan representasi dari dunia nyata. Objek dalam OOP merepresentasikan keadaan melalui variabel, sedangkan sifatnya direpresentasikan menjadi method. Method merupakan suatu fungsi (sub-routine) yang berhubungan dengan objek.
  • Dalam konteks OOP, objek adalah instansiasi (yang dibentuk secara seketika) dari kelas pada saat eksekusi (seperti halnya deklerasi variabel pada pemograman prosedural).
  • Jadi semua objek adalah instan dari kelas.
  • Obyek merupakan hasil instansiasi dari suatu kelas.
  • Sehingga kelas digunakan untuk menciptakan banyak objek
  • Proses pembentukan obyek dari suatu class disebut dengan instantiation.
  • Obyek disebut juga instances.

 

Karakteristik objek :

  • Setiap obyek memiliki atribut sebagai status
  •  Setiap obyek memiliki tingkah laku (behavior)

Contoh: obyek sepeda

–          Memiliki atribut (state) : pedal, roda, jeruji, warna, jumlah roda.

–          Memiliki tingkah laku (behavior) : kecepatanya menaik, kecepatannya menurun, perpindahan gigi sepeda

Class :

  • class merupakan suatu konsep yang lebih tinggi lagi hierarkinya dari objek yang dihasilkan dari proses generalisasi objek-objek yang memiliki beberapa ciri yang sama. Dalam OOP, kelas merupakan suatu hasil pemodelan fakta-fakta dari suatu objek yang berguna bagi suatu aplikasi yang diprogram. Proses pemodelan fakta-fakta tersebut disebut dengan abstraksi.
  • Dalam suatu sistem, sering kali ditemui beberapa obyek sejenis
  • Beberapa obyek sejenis dapat di-identifikasi sebagai suatu kelas (class)
  • Kelas mendefinisikan bentuk dan perilaku objek
  • Kelas adalah  template/ prototype yang mendefinisikan Type objek
  • Merupakan sarana pengkapsulan kumpulan data danmetode-metode yang beroperasi pada kumpulan data
  • Kelas merupakan “cetakan” (blueprint) dari suatu obyek
  • Dari suatu kelas kita dapat membuat obyek-obyek baru yang masing-masing dapat memiliki keadaan yang berbeda-beda.
  • Dalam suatu sistem, sering kali ditemui beberapa obyek sejenis
  • Beberapa obyek sejenis dapat di-identifikasi sebagai suatu kelas (class)
  • Kelas mendefinisikan bentuk dan perilaku objek
  • Kelas adalah  template/ prototype yang mendefinisikan Type objek
  • Merupakan sarana pengkapsulan kumpulan data danmetode-metode yang beroperasi pada kumpulan data.
  •  Kelas merupakan “cetakan” (blueprint) dari suatu obyek
  • Dari suatu kelas kita dapat membuat obyek-obyek baru yang masing-masing dapat memiliki keadaan yang berbeda-beda

 

 

Perhatikan table dibawah ini untuk perbedaan kelas dan object dalam OOP.

Kelas (class)

Objek (object)

class merupakan rancangan (design) Object merupakan perwujudan suatu class
class bersifat abstract Object bersifat konkrit

f

 

 

Daftar rujukan :

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch04s07.html

http://agiptek.com/index.php/java/172-java-class.html

Mengenal Inheritance

  • Pengertian Inheritance

Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.

Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Contoh dari hierarki class :

d

  • Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
  • Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.

Variabel super digunakan dalam kelas turunan. Variabel super mengacu pada objek di mana method tersebut berada, akan tetapi ia merupakan bagian dari kelas super dari objek tersebut. Suatu kelas bisa ditambah atau dimodifikasi dari kelas turunannya. Variabel super  hanya mengacu pada bagian objek sebelum ia ditambah atau dimodifikasi, atau dengan kata lain bentuk aslinya sebelum dia diturunkan, yang dalam hal ini sama dengan kelas supernya.
Misalnya kita akan menulis suatu kelas, dan kelas tersebut memiliki method instansi bernama suatuMethod(). Pernyataan super.suatuMethod() berarti menjalankan suatuMethod() pada kelas supernya. Jika tidak ada metode suatuMethod() pada kelas supernya, Java akan menampilkan pesan kesalahan sintaks.

Alasan mengapa Java memiliki variabel super  adalah karena banyak hal yang mungkin tersembunyi pada kelas turunan. Misalnya karena kita mengimplementasikan fungsi lain pada kelas turunan dengan nama yang sama (dalam kaitannya dengan polimorfisme, misalkan).
Ketika kita membuat method baru pada kelas turunan yang memiliki nama dan jenis parameter yang sama dengan method pada kelas supernya, method dari kelas super akan disembunyukan. Dalam bahasa pemrograman, method ini menimpa (override) method dari kelas supernya. Variabel super bisa digunakan untuk mengakses method aslinya yang didefinisikan di kelas supernya.
Kegunaan utama dari super biasanya untuk memperluas kegunaan method yang sudah ada, bukan menggantinya secara keseluuruhan. Method baru bisa menggunakan super untuk menjalankan instruksi pada kelas supernya, kemudian menambahkan instruksi lain pada kelas turunannya.

Terkadang dalam suatu method kita ingin menunjuk ke objek di mana method ini berada. Untuk itu kita menggunakan keyword this. Perhatikan Contoh berikut.
class Manusia{
String nama;
void setNama(String nama){
this.nama = nama;
}
}

Apabila kata kunci static kita tempatkan pada pendeklarasian member (variabel dan method) dari suatu class, maka member class tersebut dapat diakses tanpa harus menciptakan objek class tersebut. Untuk lebih jelasnya perhatikan contoh berikut ini.

class Manusia{
  static String nama;
  static String jenkel;
 
  static void cetak(){
   System.out.println("Nama : "+nama);
   System.out.println("Jenis Kelamin : "+jenkel +"\n");
  }
}
 
class DemoManusia{
 public static void main(String args[]){
  Manusia.nama = "Hendro";
  Manusia.jenkel = "Laki - laki";
  Manusia.cetak();
 }
}
 

Berbeda dengan overloading. Kalo overloading, kita boleh menuliskan method yang sama namun dengan jumlah parameter yang berbeda dan nilai kembalian harus sama. Nah, kalau overriding konsepnya sama dengan overloading yaitu menulis kembali method. Namun, caranya overriding menulis kembali method sama persis. Sama mulai dari nama method dan isinya dan mengimplementasi kembali di sub classnya. Overriding dipakai saat kita menggunakan method yang sama tapi berbeda implementasinya. Jadi overriding method mempunyai nama method yang sama, jumlah parameter dan tipe parameter serta nilai kembalian (return) method yang di override. Jika method memiliki modifier akses public, method overridenya juga harus public.

  • Override method merupakan method yang sama persis dengan method yang sudah ada di super kelasnya, biasanya perbedaannya adalah pada implementasi (program body)
  • Overidding tidak bisa dilakukan dalam kelas itu sendiri

 

 

refrensi :

http://andra-ulatbulu.blogspot.com/2009/11/inheritance-dan-contoh-program-dalam.html

http://roberto.blog.binusian.org/2010/08/31/keyword-super/

http://sinau-java.blogspot.com/2008/05/penggunaan-keyword-this.html

http://bernazlionk.wordpress.com/2009/01/23/overriding/

Enkapsulasi

  • Pengertian encapsulation

Pengertian dasar dari encapsulation  adalah penyembunyian data dengan membungkus seluruh member dari class tersebut sehingga nilainya tidak dapat diubah menjadi apa yang tidak diinginkan atau menyelipkan sebuah proses bisnis didalamnya. Pengertian lainnya adalah sebuah proses dalam menyatukan data yang kita kelola menjadi sebuah kelompok tertentu dimana pembentukannya terjadi secara abstrak.

Ecapsulation yaitu merupakan sebuah proses pengelompokan property & method serta memberikan hak akses kepada propertymethod yang menyebabkan property hanya dapat diakses melalui method accessor dan tidak dapat di rubah tanpa melalui prosedur yang seharusnya yang diatur pada method mutator.

Di dalam OOP encapsulation berbentuk class yang terdiri dari property & method yang mempunyai hak akses tertentu terhadapenvironment/lingkungannya, yang biasa disebut Acces Modifier. Encapsulation biasa dilambangkan dengan penggunaan accessor danmutator atau disebut juga dengan metode get dan set. Dinamakan accessor (get) karena metode ini hanya mengambil tanpa mengubahstate dari member tersebut, dan dinamakan mutator (set) karena metode ini juga mengubah state dari member tersebut. Method-methodini dideklarasikan sebagai public, sedangkan variable dideklarasikan sebagai private.

Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. 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.

Manfaat enkapsulasi :

  1. Modularitas
    Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.
    2. Information Hiding
    Penyembunyian informasi yang tidak perlu diketahui objek lain.

Berikut ini keuntungan dari prinsip encapsulation :

  • Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
  • Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
  • Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya. Sehingga dapat mengurangi kemungkinan bug.

refrensi :

http://www.agiptek.com/index.php/java/180-java-capsul.html

Mengenal Internet

APA ITU INTERNET ???

Internet kependekan dari “Interconnected-Networking” adalah rangkaian komputer yang terhubung di dalam beberapa rangkaian. Internet merupakan sistem komputer umum, yang berhubung secara global dan menggunakan TCP/IP sebagai protokol pertukaran paket (packet switching communication protocol). Dengan internet kita bisa berbagi informasi dan sumberdaya antara satu komputer dengan komputer yang lain. Internet juga memungkinkan komunikasi antar 2 orang atau lebih yang berbeda tempat bahkan antar negara dengan menggunakan program pengirim pesan instant seperti Camfrog, Pidgin (Gaim), Trilian, Kopete, Yahoo! Messenger, MSN Messenger Windows Live Messenger, Twitter.
Selain itu dengan internet juga memungkinkan bagi sekelompok orang untuk membangun suatu komunitas, Baik itu melalui situs jejaring social seperti facebook dan twitter ataupun melalui forum-forum. Bahkan internet juga bisa digunakan sebagai sarana bisnis. Ada banyak sekali aktifitas bisnis yang bisa dilakukan melalui media internet diantaranya berjualan barang secara online.

Rangkaian pusat yang membentuk Internet diawali pada tahun 1969 sebagai ARPANET, yang dibangun oleh ARPA (United States Department of Defense Advanced Research Projects Agency). Beberapa penyelidikan awal yang disumbang oleh ARPANET termasuk kaedah rangkaian tanpa-pusat (decentralised network), teori queueing, dan kaedah pertukaran paket (packet switching).

Pada 1 Januari 1983, ARPANET menukar protokol rangkaian pusatnya, dari NCP ke TCP/IP. Ini merupakan awal dari Internet yang kita kenal saat ini. Pada sekitar 1990-an, Internet telah berkembang dan menyambungkan kebanyakan pengguna jaringan-jaringan komputer yang ada. Internet dijaga oleh perjanjian bi- atau multilateral dan spesifikasi teknikal (protokol yang menerangkan tentang perpindahan data antara rangkaian). Protokol-protokol ini dibentuk berdasarkan perbincangan Internet Engineering Task Force (IETF), yang terbuka kepada umum. Badan ini mengeluarkan dokumen yang dikenali sebagai RFC (Request for Comments). Sebagian dari RFC dijadikan Standar Internet (Internet Standard), oleh Badan Arsitektur Internet (Internet Architecture Board – IAB). Protokol-protokol internet yang sering digunakan adalah seperti, IP, TCP, UDP, DNS, PPP, SLIP, ICMP, POP3, IMAP, SMTP, HTTP, HTTPS, SSH, Telnet, FTP, LDAP, dan SSL.

Beberapa layanan populer di internet yang menggunakan protokol di atas, ialah email/surat elektronik, Usenet, Newsgroup, perkongsian file (File Sharing), WWW (World Wide Web), Gopher, akses sesi (Session Access), WAIS, finger, IRC, MUD, dan MUSH. Di antara semua ini, email/surat elektronik dan World Wide Web lebih kerap digunakan, dan lebih banyak servis yang dibangun berdasarkannya, seperti milis (Mailing List) dan Weblog. Internet memungkinkan adanya servis terkini (Real-time service), seperti web radio, dan webcast, yang dapat diakses di seluruh dunia. Selain itu melalui internet dimungkinkan untuk berkonikasi secara langsung antara dua pengguna atau lebih melalui program pengirim pesan instan seperti Camfrog, Pidgin (Gaim), Trilian, Kopete, Yahoo! Messenger, MSN Messenger dan Windows Live Messenger.

Beberapa servis Internet populer yang berdasarkan sistem Tertutup(?)(Proprietary System), adalah seperti IRC, ICQ, AIM, CDDB, dan Gnutella. Jumlah pengguna Internet yang besar dan semakin berkembang, telah mewujudkan budaya internet. Internet juga mempunyai pengaruh yang besar atas ilmu, dan pandangan dunia. Dengan hanya berpandukan mesin pencari seperti Google, pengguna di seluruh dunia mempunyai akses internet yang mudah atas bermacam-macam informasi. Dibanding dengan buku dan perpustakaan, Internet melambangkan penyebaran(decentralization) / pengetahuan (knowledge) informasi dan data secara ekstrim.

Perkembangan Internet juga telah mempengaruhi perkembangan ekonomi. Berbagai transaksi jual beli yang sebelumnya hanya bisa dilakukan dengan cara tatap muka (dan sebagian sangat kecil melalui pos atau telepon), kini sangat mudah dan sering dilakukan melalui Internet. Transaksi melalui Internet ini dikenal dengan nama e-commerce.

Sumber :

http://mig33purwakarta.forumotion.com/t803-internet-adalah