Kamis, 19 April 2012

Inheritance dan Polimorfisme

          Pada postingan saya kali ini, saya akan melanjutkan pembahasan konsep-konsep pada pemrograman berbasis objek. Yang postingan saya sebelumnya telah membahas tentang Enkapsulasi, kali ini tentang sifat Inheritance dan Polimorfisme yang akan saya bahas. Berikut penjabarannya :

Pengertian

 # Inheritance

 Inheritance atau dalam bahasa indonesianya adalah pewarisan, ini adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data atau atribut dan metode dari induknya langsung. Secara default inheritance bersifat menyeluruh sehingga semua data dan method diturunkan kepada class yang baru. Kelas yang mewariskan disebut dengan super class sedangkan class turunan disebut dengan sub class. 


#Polimorfisme

 Polimorfisme yaitu konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. Misalnya kita mempunyai class "persegi" dan "lingkaran" , dimana class-class tersebut merupakan turunan dari class "bangun 2D". Jika kita ingin memperbesar ukuran dari persegi kita harus memperbesar sisinya, sedangkan pada lingkaran kita harus memperbesar jari-jarinya. Inilah yang dimaksud dari konsepnya sama-sama ingin memperbesar ukuran namun cara/ perilaku yang digunakan berbeda.



Berikut contoh programnyaa :
 Pertama kita buat class orang

 class Orang { protected String name; protected String address;

 / ** konstruktor tanpa parameter **/
 public Orang() {
 System.out.println("konstruktor dalam kelas Orang");
 name = ""; address = ""; }

 /** konstruktor dengan parameter nama, address **/
 public Orang(String name, String address) {
 this.name = name;
 this.address = address;
 }

 /** method accessor **/
 public String getAddress() {
 return address;
 }
 public void setAddress(String address) {
 this.address = address;
 }
 public String getName() {
 System.out.println("Nama orang : " + name);
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }}

 Lalu kita buat lagi subclass dari class orang yaitu dengan keyword extends

 class Manager extends Orang {
 Manager(String name, String address) {
 super(name, address);
 }

 public String getName() {
 System.out.println("Nama Manager : " + name);
 return name;
 } }

 class Direktur extends Orang {
 Direktur(String name, String address) {
 super(name, address);
 }
 public String getName(){
 System.out.println("Nama Direktur : " + name);
 return name;
 } }

 Setelah itu kita buat main programnya :
 public class TestApp {
 public static void main(String[] args) {
 Orang ref;
 Manager objManager = new Manager("Bambang", "Rudi");
 Direktur objDirektur = new Direktur("Sudibyo", "Ramli");

 /** class orang merujuk kepada objek manager **/
 ref = objManager;
 ref.getName();

 /** class orang merujuk kepada objek direktur **/
 ref = objDirektur; ref.getName();
 } }

 Setelah itu save, lalu setelah dicompile dan kemudian di running, maka outputnya seperti dibawah ini : 






Program diatas adalah program yang berisi tentang konsep polimerfisme, yang dimana setiap program polimerfisme juga terdapat konsep Inheritance atau pewarisan yang ditandai dengan extends.

 Sekiiann :D

 My Partner : Mateus Eko Prasetyo 


Sumber : http://e12a.wordpress.com/2008/12/30/polimorfisme-dalam-java/            http://7seasons.wordpress.com/2010/10/09/inheritance-dalam-java/

Kamis, 12 April 2012

Enkapsulasi pada OOP


Apaa kabar sahabat blogger ?? Baik dong pastinya ?haha :D
Pada kesempatan kali ini saya akan membahas tentang Enkapsulasi pada OOP. Mulai dari pengertiannya, jenis-jenisnya, manfaatnya, dan pasti contoh programnya pastinya :)
Okee langsung ajah yaa. Cekidot :)
#Pengertian Enkapsulasi
Enkapsulasi adalah
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class.
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.
#Jenis Enkapsulasi
1. Public : Jika kita menggunakan public maka segala akses bisa digunakan oleh siapapun, semua method,class,variabel. Jadi program tersebut belum di enkapsulasi
2.Private : Jika kita meenggunakan private maka segala hak akses tidak bisa dipakai sembarang class. Maka ini bisa dibilang sudah ada enkapsulasi di dalam program tersebut.
#Manfaat Enkapsulasi
1. Information Hiding : Untuk menyembunyikan informasi serta method yang digunakan dalam sebuah objek atau prgram untuk menjaga program tersebut
2. Modularitas : Kode sumber dari sebuah objek dapat dikelola secara independen dari  kode sumber objek yang lain.
#Contoh Program Enkapsulasi
class mhsiswa {
public static void main(String[] args) {
Mahasiswa2 eko = new Mahasiswa2("Mateus Eko Prasetyo", "54410257");
System.out.println("Nama \t: " + eko.tampilkanNama());
System.out.println("NPM \t : " + eko.tampilkanNpm());
eko.kelas();
System.out.println();
Mahasiswa2 rina = new Mahasiswa2("Rina Ravela Susantika", "55410971");
System.out.println("Nama \t: " + rina.tampilkanNama());
System.out.println("NPM \t : " + rina.tampilkanNpm());
rina.kelas();
System.out.println();
}
}
//lalu buat file baru lagi dengan nama class mahasiswa2
public class Mahasiswa2 {
private String nama;
private String npm;
public Mahasiswa2(String n, String npm) {
this.nama = n;
this.npm = npm;
}
public String tampilkanNama() {
return nama;
}
public String tampilkanNpm() {
return npm;
}
public void kelas() {
System.out.println("2IA07");
}
}
#Logika Program
Pada file/kelas yang bernama "mhsiswa" itu merupakan program utama dari program enkapsulasi ini,
Mahasiswa2 eko = new Mahasiswa2("Mateus Eko Prasetyo", "54410257");
System.out.println("Nama \t: " + eko.tampilkanNama());
System.out.println("NPM \t : " + eko.tampilkanNpm());
eko.kelas();
Pada baris pertama dipenggalan program diatas merupakan sebuah pembuatan panggilan baru sebuah objek yang dimana objek tersebut masih ada kaitannya dengan class mahasiswa2 jadi syntaksnya mahasiswa2 eko = new mahasiswa2() . Nah pada baris selanjutnya itu merupakan syntaks untuk mencetak output yang dimana data untuk hasil output diambil dari hasil inputan pada saat dibagian pembuatan panggilan baru untuk objek atau yang ada didalam kurung Mahasiswa2 eko = new Mahasiswa2("Mateus Eko Prasetyo", "54410257");  
Untuk yang class Mahasiswa2 berikut logikanya :
private String nama;
private String npm;
public Mahasiswa2(String n, String npm) {
this.nama = n;
this.npm = npm;
Diatas ditulis private karena kita ingin membatasi hak akses dari class lain atau objek lain terhadap variabel nama dan npm sehingga kita beri atribut private. Lalu untuk baris selanjutnya merupakan pendeklarasian dari kelas mahasiswa2 tersebut memiliki 2data bertipe string yaitu n dan npm dimana n = nama , dan npm = npm.
public String tampilkanNama() {
return nama;
}
public String tampilkanNpm() {
return npm;
}
public void kelas() {
System.out.println("2IA07");
}
Lalu maksud dari tampilkanNama() return nama dan tampilkanNpm() return npm adalah sebagai method untuk menampilkan nama dan npm dengan mengambil nilainya dari variabel nama dan npm. Selanjutnya untuk  public void kelas() { System.out.println("2IA07"); maksudnya adalah kita membuat method kelas yang dimana jika kita panggil pada class mhsiswa akan mencetak output "2ia07"
Jadi kedua kelas tersebut saling berhubungan satu sama lain,maka pada class mahasiswa2 banyak syntaks yang mencantumkan ".tampilkanNama() , .kelas , dll " itu adalah untuk memanggil atau mengabil data dari class mhsiswa. Sekian penjelasannya ,maaf jika ada kesalahan, maklum masih belajar :p
#Output Program
My Partner : Mateus Eko Prasetyo
Sumber :

Selasa, 03 April 2012

Myspace



Kelanjutan Myspace


Yang saya tau, jarang yang memiliki myspace punya di Indonesia. Sedangkan  myspace sangat laku di kalangan musisi indie Indonesia. Karena ada fitur profile khusus band, maka Myspace digemari oleh
musisi indie indonesia, bahkan banyak band indonesia dan luar negeri yang terkenal lewat myspace.

            Kekurangan myspace =
1.    Tidak terlalu laku di Indonesia (bukan sepenuhnya kekurangan sih)
2.    Loading suka lama
3.    banyak spam
4.    informasi profile nya sedikit 
5.       Banyak orang yang membuat Profile band yang tidak official, dan tidak ada hubungannya dengan band tersebut (seperti fans yang membuat myspace band yang disukainya tanpa ijin) sehingga profile tersebut menjadi sampah dan tidak berguna
Kelebihan myspace =
6.        Profile bisa diedit habis habisan (dari mulai putih biasa, sampai warna warni tak terkira)
7.        Top Friendsnya bisa mencapai leih dari 30 user
8.       Ada profile untuk band, sehingga memudah kan untuk promosi, dan di profile untuk band ini, terdapat Aplikasi untuk mengu-upload musik sehingga pengunjung profile tersebut dapat mendengarkan musiknya
9.       dapat mengetahui teman yang online sehingga bisa chatting via myspace secara tidak langsung (chatting lewat comment)
10.    Profile untuk band, Pelawak, pelukis, dan sebagainya dipisah sehingga memudah kan
11.   untuk mencarinya dan juga memudahkan untuk mengetahui siapa kah orang tersebut
 Mendunia
12.    Membuat kita dapat mengenal orang luar negri (seperti facebook)
13.    Ada fitur Myspacetv, yaitu website myspace yang seperti youtube, namun berbasis di
14.   myspace dan video dari myspace tv dapat di add ke profile kita.

             Penggunaan CSS/HTML

MySpace memungkinkan pengguna untuk menyesuaikan halaman profil pengguna dengan memasukkan ke bagian-bagian. Video dan konten berbasis flash bisa dimasukkan dengan cara ini. Pengguna juga memiliki pilihan untuk menambahkan ke halaman profil mereka melalui MySpace Music, sebuah layanan yang memungkinkan - untuk memasang lagu mereka di MySpace.
Seorang pengguna juga dapat mengubah penampilan umum halamannya dengan memasukkan CSS (dalam elemen <style> ... </style>) ke salah satu bidang untuk menimpa gaya default halaman lembar tersebut menggunakan editor MySpace. Hal ini sering digunakan untuk pemilihan font dan warna. Ada beberapa situs web independen yang menawarkan fungsi mendesain tata letak MySpace yang memungkinkan pengguna untuk memilih dan meninjau seperti apa halaman mereka akan terlihat dengan bantuan desain tersebut. Pada tahun 2008, MySpace meluncurkan Profile 2.0 baru sebagai generasi berikutnya dari profil MySpace. Profile 2.0 memiliki antarmuka yang bersih serta kemampuan untuk menyembunyikan atau menampilkan modul profil, bersama dengan menyesuaikan posisi modul pada profil. Susunan tata letak Profile 2.0 dirilis di internet secara langsung dalam waktu cepat karena penggunaan tata letak MySpace klasik tidak bekerja dengan Profile 2.0.
Profile 2.0 dikritik karena tidak mempertimbangkan hak ketika mencoba untuk menambahkan kustom CSS. Untuk menambahkan kustom CSS, tema asli akan dibuang dan membuat banyak MySpace tweak tidak fungsional dalam tata letak Profile 2.0. Pada tahun 2010, MySpace meninggalkan tata letak Profile 1.0 dan menjadikan Profile 2.0 sebagai fitur standar profil. Keunggulannya adalah antarmuka yang bersih dan banyaknya tema yang dikemas dengan customizer, juga dengan membuat tema kustom menggunakan berbagai parameter pengeditan profil. Aplikasi digunakan untuk Dekorasi. Sementara Profile 2.0 adalah standar tata letak, suatu profil baru mulai diluncurkan sebagai peningkatan mutu yang bersifat opsional. Profil baru ini diluncurkan untuk mengikuti tren dari antarmuka profil modern dan memberikan suatu desain yang lebih dewasa dan sederhana. Profile 3.0 memungkinkan pengguna menggunakan kustomisasi yang lebih lebih fleksibel dan membangun tema dengan lebih sederhana, namun tidak jauh berbeda dari antarmuka Profile 2.0
            Tentang Keamanannya
  • Ketiklah sendiri  alamat situs  jejaring sosial anda. Jangan mengeklik alamat situs dari alamat email,  pesan, dan hati-hati dengan cara pemberian  alamt situs lainnya. Pemberian alamat situs terkadang membawa anda kedalam situs spam dengan layout (tampilan ) yang sama persis dengan halaman jejaring sosial yang anda gunakan. Istilah ini sering disebut dengan “typo site”.
  • Lindungi info pribadi Anda. Pada email, pesan teks, atau pesan instan, jangan memberi informasi pribadi yang dapat menunjukkan lokasi fisik Anda kepada orang selain teman atau keluarga yang dipercaya. Jaga baik-baik kata sandi, nomer ponsel, dan ID Yahoo! Anda. Sangat berhati-hatilah dalam menggunakan kamera ponsel. Berpikirlah dua kali sebelum mengirim foto, karena foto tersebut dapat dikirim ulang dan digunakan dengan cara yang tidak Anda inginkan. Contohnya, foto dapat tersebar secara luas dalam pesan teks atau terposting di halaman web yang dapat diakses oleh siapa pun yang terhubung ke Internet, termasuk pelaku pelecehan dan orang asing.
  • Kendalikan pelecehan. Jika orang asing mendapatkan nomer ponsel atau ID Yahoo! Anda, atau jika pelaku pelecehan menggunakan informasi tersebut, kemungkinan Anda menjadi target bahasa kotor, bernuansa seksual atau melecehkan. Pertimbangkan baik-baik dengan siapa Anda berkomunikasi dan siapa yang harus diabaikan. Yahoo! Mail dan Yahoo! Messenger memungkinkan Anda memblokir orang lain. Jika Anda mendapatkan banyak pesan teks yang tidak diinginkan, baca buku petunjuk ponsel atau hubungi perusahaan ponsel Anda tentang cara mematikan sementara pesan teks. Dalam situasi yang ekstrem, Anda dapat mengganti nomer ponsel.                                
Pengembangan di Masa Depan

Jika ditinjau dari ilmu pemasaran, strategi ini sangat baik karena jelas value dari layanan baik MySpace maupun Skype meningkat. Sehingga hal ini tidak hanya akan meningkatkan pengguna yang saat ini aktif, melainkan juga merupakan kesempatan akan perolehan pangsa pasar yang baru. Yaitu pengguna yang selama ini tidak pernah menggunakan kedua layanan, namun setelah aliansi strategis ini mereka menjadi pengguna. Kemudian melalui kerjasama ini, maka kedua pihak akan mendapatkan keuntungan pemasaran. Karena keduanya sama-sama saling memasarkan, maka aktivitas pemasaran menjadi lebih mudah.




Referensi :    1.      wikipeda.co.id
                     2.      indonesiaindonesia.com
                     3.      dailyjoshua.blogspot.com


PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR

Soal : Jelaskan perbedaan pemograman Terstruktur dan berbasis obyek?
Pengertian Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini di jelaskan dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. (wikipeda.co.id)
Pengertian Pemrograman Terstruktur
Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Selain itu 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  atau langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya atau kembali ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).

PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR


Pengertian Pemrograman Berorientasi Objek
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:
    Visual Foxpro
    Java
    C++
    Pascal (bahasa pemrograman)
    Visual Basic.NET
    SIMULA
    Smalltalk
    Ruby
    Python
    PHP
    C#
    Delphi
    Eiffel
    Perl
    Adobe Flash AS 3.0

Pengertian Pemrograman Terstruktur
Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Selain pengertian diatas 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:
    Cobol Turbo Prolog
    C
    Pascal
    Delphi
    Borland Delphi

Setelah mengetahu pengertiannya?

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

berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program ).

Sementara itu 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.

jadi, sangat jelas sekal bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.

permodelan yang mana yang lebh bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran, serta mudah digunakan, dimengerti dan dipelihara

Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur,  menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur

Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:

object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula  halnya dengan “message” pada OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.

Persamaan kedua pemrogaman

adalah keduanya termasuk ke dalam pemodelan pemrograman yang digunakan dewasa ini.

Mana yang lebih baik

tidak ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka menggunakan yang berorientasikan pada objek maupun pemrograman yang terstruktur.

Kapan sama2 baik

Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethii code.

Pemrograman berorientasikan objek dikatakan lebih baik apabila Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Referensi :

    1.      wikipeda.co.id
    2.      darkdevil4bloodyvenus.wordpress.com
    3.      myblogar.blogspot.com
    4.      www.ms-room.com

Link blog teman saya : Mateus Eko