Kamis, 19 April 2012

Pewarisan / Inheritance & Polimorfisme


Pada kesempatan kali ini kami akan membahas mengenai pengertian pewarisan/inheritance dan polimorfisme beserta contoh program. Tujuan kami agar pembaca dapat memahami apa itu inheritance dan polimorfisme dalam java dan dapat membedakannya. Mari kita mulai membahasnya.
Pengertian inheritance

-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


Misal :
kelas B adalah kelas anak dari kelas A, maka sifat sifat dari kelas A
otomatis akan dimiliki juga oleh kelas B.
Jika kelas induk merupakan turunan dari kelas lain, maka data dan method
yang berasal dari kelas tersebut akan ikut diwariskan pula kepada kelas
anaknya.
Contoh :
o Kelas C adalah kelas anak dari kelas B
o Kelas B merupakan kelas anak dari kelas A.
o Maka sifat sifat yang diwariskan kelas A ke kelas B juga akan
diwariskan ke kelas C.
Keyword untuk pewarisan : extends


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);
}
}


Output :
C:\Documents and Settings\suherman\My Documents>javac
DemoPewarisan.java
C:\Documents and Settings\suherman\My Documents>java DemoPewarisan
Demo Pewarisan
isi var 2=0




Logika :
Pada logika 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.
Yang pertama adalah class Induk { itu digunakan untuk mennjukan kelas yang akan dipakai pada program tersebut.lalu private String var1; dan public int var2; digunakan untuk memberikan suatu ruan 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 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 :
Contoh Program
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() { //overriding method
System.out.println("guk guk guk....");
}
}
class Kucing extends Hewan {
Kucing(String jenis, int kaki) {
super(jenis, kaki);
}
public void bersuara() { //overriding method
super.bersuara();
System.out.println( miaowwww....");
}
}
class DemoPoli {
public static void main(String args[]) {
Anjing doggy = new Anjing();
Kucing tom = new Kucing("Kucing", 4);
doggy.bersuara();
tom.bersuara();
}}



Output :

C:\Documents and Settings\suherman\My Documents>javac DemoPoli.java
C:\Documents and Settings\suherman\My Documents>java DemoPoli
guk guk guk....
suara hewan Kucing berkaki 4 miaowwww....




Logika :
Kata kunci 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.

Demikian penjelasan kami,,, semoga bermanfaat :)

Jumat, 13 April 2012

ENKAPSULASI


Kamis, 12 April 2012



ENKAPSULASI

Nama : Steven (56410693)
Teman Sekelompok :  Dewi Yulia Ningsih (51410916)
Link :http://dewiyulianingsih.blogspot.com/
Kelas : 2ia07
Tugas : PBO

Pada kesempatan kali ini kita membahas mengenai enkapsulasi dan menambahkan sdikit contoh programnya. Enkapsulasi adalah pelindung program dan data yang sedang diolah. Enkapsulasi mendefinisikan perilaku dan melindungi program dan data agar tidak diakses secara sembarangan oleh program lain ketika ada sesuatu akan merubah informasi yang bersangkutan, sesuatu itu harus melewati jalur yang di tentukan. Yang bertujuan kepada maintainability  dan extensibility. Dalam Java, dasar enkapsulasi adalah class.
Tipe akses class atau method:
1.     Public : dapat diakses oleh sembarang class.
2.    Private : hanya dapat diakses dari dalam objek class itu sendiri (tidak dapat diakses oleh class lain).
3.    Protected : hanya dapat diakses dari dalam objek class tersebut dan objek kelas turunannya.

Contoh program :
Buatlah sebuah kelas baru dan simpanlah dengan nama mahasiswa.java, berikut contoh syntaxnya yang disimpan dengan nama file gunadarma.java :

class gunadarma {
public String DYN;
public gunadarma (String n){
this.DYN = n;
}
public String tampilkanDYN(){
return DYN;
}
public void kelas(){
System.out.println("2IA07");
}
public void jurusan(){
System.out.println("teknik informatika ");
}
public void tingkat(){
System.out.println("dua");
}
}

class DYN {
public static void main(String arg[]){
gunadarma kelas= new gunadarma("DYN");
System.out.println("Nama saya : "+ kelas.tampilkanDYN());
kelas.kelas();
kelas.jurusan();
kelas.tingkat();
}
}

Screenshoot


Output

Refrensi :

Kamis, 05 April 2012

Pemrograman Berbasis Objek dan Pemrograman Terstruktur


Selasa, 03 April 2012

Pemrograman Berbasis Objek dan Pemrograman Terstruktur

Kali ini kita akan membahas mengenai pemrograman berbasis objek dan pemrograman terstruktur. Penjelasan dibawah ini mungkin dapat membantu anda untuk memahami apa itu pemrograman berbasis objek dan pemrograman terstruktur dan dapat membedakan dari keduanya.

OOP (Object-Oriented Programming)
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Bahasa pemrograman yang mendukung OOP antara lain:
1.             Visual Foxpro
2.             Java
3.             C++
4.             Pascal (bahasa pemrograman)
5.             Visual Basic.NET
6.             SIMULA
7.             Smalltalk
8.             Ruby
9.             Python
10.           PHP
11.           C#
12.           Delphi
13.           Eiffel
14.           Perl
15.           Adobe Flash AS 3.0

Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:
Kelas => kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu.

Objek => membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputerobjek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

Abstraksi => Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan.

Enkapsulasi => Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. 
Polimorfisme => melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim.

Pemrograman berorientasi objek memliki beberapa keuntungan seperti :
1. Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.

2. Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.

3. Dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.

Pemrograman Terstruktur
Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).
Bahasa pemrograman yang mendukung pemrograman terstruktur:
1.             Cobol Turbo Prolog
2.             C
3.             Pascal
4.             Delphi
5.             Borland Delphi
Dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah

Kelebihan dan Kekurangan antara Pemrograman Berbasis Objek dan Pemrograman Terstruktur

Berikut adalah Kelebihan dan Kekurangan Kedua Metode Tersebut
Perancangan Terstruktur (Structured Analisys and Design / SSAD). Perancangan Berbasis Objek (Object-oriented Analysis and Design / OOAD).

METODE BERORIENTASI OBYEK
Kelebihan
·  Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan sistem
·  Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD (Sommerville, 2000).
·  Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem.
·  Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformliasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi.
·  Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain (Sommerville, 2000).
·  Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks (Booch, 2007).
·  Encapsliation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
·  OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.
·  Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara.

Kekurangan
·  Pada awal desain OOAD, sistem mungkin akan sangat simple.
·  Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD.
·  Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD.
·  Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem.
·  Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis    terhadap fungsional siste, sementara metode OOAD tidak berbasis pada fungsional sistem.
·  OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih lama untuk berpindah ke OOAD, karena mereka sudah menggunakan SSAD dalam waktu yang lama ( Hantos, 2005).
·  Metodologi pengembangan sistem dengan OOAD menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).

METODE TERSTRUKTUR

Kelebihan
·  Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek
·  SSAD merupakan pendekatan visual, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer.
·  Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD menjadikan bagus untuk digunakan.
·  SSAD merupakan metode yang diketahui secara umum pada berbagai industry.
·  SSAD sudah diterapkan begitu lama sehingga metode ini sudah matang dan layak untuk digunakan.
·  SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan
·  SSAD relatif simpel dan mudah dimengerti.

Kekurangan
·  SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional.
·  Sedikit sekali manajemen langsung terkait dengan SSAD
·  Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses.
·  Interaksi antara analisis atau pengguna tidak komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan (kebutuhan-kebutuhan baru).
·  Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sliit bagi pengguna untuk melakukan evaluasi.
·  Pada SAAD sliit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan mliai membuat sistem.
·  SSAD tidak selalu memenuhi kebutuhan pengguna.
·  SSAD tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek (Jadalowen, 2002).

UML adalah contoh salah satu bahasa pemrograman yang berkonsepkan OOP, sedangkan DFD dan ERD adalah contoh bahasa pemrograman yang berkonsepkan pemrograman secara terstruktur.


Refrensi :


Selasa, 03 April 2012

Social Networking "Twiiter"

Tulisan ini lanjutan dari tulisan sebelumnya yang membahas mengenai sejarah mengenai twitter.
Dan sekarang saya akan membahas lebih jauh lagi mengenai social networking "TWITTER".


Kelebihan Twitter
1. Twitter adalah sebuah layanan gratis dan sederhana untuk menyiarkan status singkat melalui Internet. Karena singkat, status Twitter dapat dikirim melalui e-mail, SMS, dan jejaring sosial.
2. Untuk menuliskan status Twitter, seseorang harus memiliki akun. Namun setelah memiliki akun, untuk menulis status atau tweet dapat melalui banyak program untuk berbagai perangkat, tidak harus melalui twitter.com. 
3. status Twitter dapat langsung diumumkan ke seluruh pemakai Twitter. Beda dengan status Facebook yang hanya dapat dilihat oleh pengguna yang sudah menjadi teman. Itulah sebabnya kini Twitter banyak dipakai oleh para politisi, perusahaan, bahkan pemerintah (tapi di negara lain lho). Mereka dapat mengumumkan berita-berita penting yang langsung dilihat oleh sesama pemakai Twitter. Untuk dapat melihat status orang atau pihak lain, seseorang harus mencari dulu pemakai Twitter.
4. Twitter juga menyediakan komunikasi langsung ke sesama pengguna Twitter, sehingga tidak terbaca pengguna lainnya.
5. Status Twitter dapat dihubungkan dengan aplikasi lain seperti Facebook, sehingga jaringan lebih luas lagi.
6. Mudah untuk mengupdate dan lebih banyak kesempatan untiuk mandapatkan jaringan yg lebih luas.
7. Siapa pun menjadi Follower orang lain kecuali diblokir.
8. Pure alat komunikasi, cepat tanggap
9. Anda tidak perlu harus log in untuk mendapatkan update; Anda bisa menggunakan aplikasi pembaca RSS.
10. Sangat interaktif, extensible messaging platform dengan API terbuka, banyak aplikasi lain yang sedang dikembangkan (Twitterific, Summize, Twhirl, dll)
11. Potensi menggunakan media ini untuk periklanan di masa mendatang .
12. Twitter mungkin lebih terukur dari Facebook, memberikan keuntungan biaya.

Kekurangan Twitter   
1. 21% dari account Twitter ternyata kosong. Ini merupakan persentase dari account Twitter yang belum pernah diposting satu Tweet. Mereka mungkin juga bisa terdaftar untuk terus menggunakan username terakhirnya, atau hanya account percobaan yang dibuat tetapi tidak pernah digunakan. 
2. Hampir 94% dari seluruh account Twitter hanya memiliki kurang dari 100 follower. Dalam mencari kemungkinan konsisten dengan tool bercorak baru serta fakta bahwa banyak orang mungkin saat ini dapat memiliki account untuk mulai mencoba dengan alat, Sysomos telah menemukan mayoritas pengguna Twitter memiliki followership sangat rendah. 
3. 150 follower merupakan angka ajaib. Terutama dalam menarik poin data dari survei, Sysomos menemukan bahwa pengguna Twitter cenderung "follow back" semua pengikut mereka sampai sekitar 150 koneksi. Maka pertukaran jatuh secara dramatis, yang seolah-olah menunjukkan bahwa jumlah ini mungkin merupakan titik penyeberangan di mana orang beralih dari penggunaan Twitter untuk lebih pribadi untuk menggunakan lebih pada pemikiran "lifecasting" dan tindakan menuju komunitas orang-orang yang mereka rasa memiliki berbagai tingkat untuk koneksi.
4. Separuh dari semua pengguna Twitter "tidak aktif." Jika Kita mengambil gambaran umum menjadi "aktif" di Twitter berarti bahwa Kita telah mengirim Tweet di beberapa titik dalam 7 hari terakhir (1 bulan), maka survei dapat mengetahui bahwa 50,4% dari seluruh pengguna Twitter sesuai dengan kategori ini. Jika ita keluarkan 21% dari point pertama, berarti ini sekitar 30% dari pengguna yang telah memiliki account dan telah melakukan tweet sebelumnya, tetapi yang akan terjadi justru sekarang tidak aktif.
5. batasan karakter posting box sebanyak 140 karakter merupakan salah satu kekurangan twitter. jika ternyata postingan blog yang akan di-twitter-kan memiliki jumlah karakter judul dan permalink yang melebihi 140 terpaksa harus menggunakan fasilitas url shortener gratisan yang banyak disediakan web untuk memperpendek jumlah karakter permalink.
6. Terbatas fungsionalitas misalnya dalam menemukan orang-orang, mengirim pesan singkat
7. Terlalu menekanan pada penghitungan pengikut
8. Mudah disalahgunakan untuk spam dan meningkatkan tingkat kebisingan jaringan.



Pemanfaatan dan pengembangan dimasa depan
Menurut saya social networking "Twiiter" itu sangat diminati oleh banyak orang didunia. Pemanfaatan twitter menurut saya bisa membantu banyak orang untuk berkomunikasi atau mengetahui keadaaan seseorang. Misalnya saja kita mengidolakan seseorang dan ingin mengetahui kegiatan sehari-hari dari idola kita. Kita dapat mem-follow akun twitter dari idola kita tersebut untuk mengetahui kegiatan-kegiatannya. Selain itu juga twitter juga bisa dijadikan untuk mempromosikan hasil karya kita atau yang berhubungan dengan bisnis atau yang lainnya agar teman-teman atau followers kita dapat mengetahuinya. Dan untuk pengembangannya sejauh ini twitter termasuk social networking yang diminati oleh banyak orang di Indonesia. Jadi keberadaan twitter di Indonesia banyak sekali manfaatnya




sumber tulisan : 
http://lovestoryofhesty.blogspot.com/2010/03/kelebihan-dan-kekurangan-twitter.html