Selasa, 08 Juli 2014

Java OOP (Object Oriented Programming )

Disini saya akan berbagi mengenai apa itu java OOP, dalam konteks ini saya akan membahas satu persatu materi java OOP. Pengertian JAVA adalah sebuah BAHASA PEMOGRAMAN  yang berorientasikan object, sedangkan OOP adalah suatu METODE PEMOGRAMAN yang berorientasi kepada objek. Jadi secara kasar lembutnya JAVA itu pasti menggunakan metode OOP,  tetapi OOP tidak hanya ada pada bahasa pemograman JAVA. Kenapa di adakannya OOP ? karena untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Dalam hal ini, sesuai dengan model kehidupan nyata, segala bagian dari suatu permasalahan adalah objek. Objek-objek tersebut juga dapat merupakan pengabungan - pengabungan dari beberapa objek  yang lebih kecil. Sebagai contohnya saya gunakan pada sebuah objek Mobil ( yang merupakan bagian dari objek di kehidupan nyata ) yang merupakan gabungan dari beberapa bagian objek yang fungsi, bentuknya yang sesuai dengan kebutuhan pada sebuah mobil , seperti : roda, jok,mesin,rangka mobil, dan lain sebagainya.

Sebagaimana bahasa yang memiliki konsep OOP memiliki karakteristik yang sangat terciri dengan sifat dari bahasa pemrograman berkonsep OOP pada pemrograman Java yang mendasar yaitu :

  1. CLASS yaitu sebuah pola dari model – model object. Atau bisa disebut dengan cetakan, kenapa saya sebut cetakan karena merupakan suatu prototipe dari variable – variable dan method – method secara umum. Misalnya saya analogikan class itu sebagai cetakan kue, dimana cetakan kue itu dapat membuat kue – keu yang beraneka ragam dan berbeda rasa, sama class juga dapat membuat object – object yang berbeda – beda sesuai dengan kebutuhan kita. Contoh kode java sebuah class dan di dalamnya terdapat object.
  2. OBJECT yaitu  merupakan hasil dari CLASS . contoh manusia, binatang dll.
  3. ABSTRACTION yaitu cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai suatu kumpulan subsistem (object) yang saling berinteraksi.
  4. MODULARITY sifat object adalah modular. Object dapat ditulis dan di mantain terpisah (independen) dari object lain sehingga terjadinya suatu interaksi dalam sebuah sistem program yang antara objek satu dengan yang lainnya dalam satu lingkup sistem program itu sendiri .
  5. ENCAPSULATION (Pengkapsulan) yaitu suatu penerapan yang menyembunyikan suatu proses dalam sistem. Agar tidak bisa terlihat yang bertujuan hanya memberikan hak akses kepada yang  dituju yang bertujuan menghindari interfensi dan menyederhanakan penggunaan sistem itu sendiri.
  6. INHERITANCE (Pewarisan) Merupakan sifat yang mengambarkan penurunan sifat dalam CLASS sehingga dapat membentuk hirarki CLASS  yang berupa penurunan atribut dan  method  kepada  CLASS  lain.
  7. CONSTRUCTOR yaitu method yang digunakan untuk memberikan nilai awal pada saat object diciptakan. Interface memungkinkan beberapa class berbagi method dan variabel standard tanpa perlunya sebuah class baru untuk digunakan sebagai superclass.
  8. POLYMORPHISME (Banyak Bentuk dan Rupa) yaitu suatu object dapat memiliki berbagi bentuk, sebagai object dari classnya sendiri atau object dari superclassnya.
  9. PACKAGE yaitu kumpulan dari beberapa CLASS file.
  10. INTERFACE yaitu untuk multiple inheritance.
Topik yang akan saya bahas pada konsep OOP ini adalah INHERITANCE (Pewarisan) dari CLASS manusia yang memilik subclass mubarok dan akan ditampilkan pada manusiaberaksi.
Java Inheritance I

Dalam gambar java inheritance I disini saya membuat CLASS Manusia sebagai Parent dari subclass yang lain dalam artian CLASS ini yang akan memberikan Pewaris kepada class yang lain.
dalam gambar ini juga ada void t_manusia dan void j_manusia yang berfungsi sebagai method dalam sebuah class manusia yang akan di panggil pada class ManusiaBeraksi. 



Java Inheritance II
Dalam gambar java inheritance II terdapat CLASS yang bernama mubarok tetapi ada Script extendsyang berfungsi sebagai pewaris dari CLASS Manusia.



Java Inheritance III





Dalam java inheritance III dimana didalam CLASS ManusiaBeraksi berisi mengenai pemanggilan - pemanggilan dari class mubarok dan class manusia.
dan pada script class ManusiaBeraksi itu ada mubarok orang = new mubarok(); yang berfungsi sebagai mubarok pertama itu CLASS nya mubarok, orang itu sebagai object dan mubarok yang kedua sebagai CONSTRUCTOR nya.
ketika CLASS ManusiaBeraksi dijalankan maka akan menampilkan method - method dari class - class yang bersangkutan, ini tampilannya.
Java Inheritance IV

Ini adalah contoh dari program sederhana java inheritance,mudah - mudahan bisa bermanfaat bagi para pembaca, dan saya menyadari bahwa dalam proses pembuatan artikel ini masih jauh dari kesempurnaan baik materinya maupun dari tulisannya. Namun demikian, saya telah berupaya dengan segala pengetahuan yang dimiliki. saya dengan redah hati dan dengan tangan terbuka menerima masukan, saran dan usul guna menyempurnakan artikel ini. 
mungkin untuk materi yang lainnya saya akan bahas pada session berikutnya. terima kasih..



Minggu, 29 Juni 2014

Mengenal Konsep OOP




KONSEP DASAR OOP
Apa sih OOP?

OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.
a.      Apa sih Objek (Object)
Setiap objek memiliki dua karakteristik yaitu Attribute (State) dan Behavior.Attribute (State) merupakan identitas atau informasi objek itu sendiri atau disebut juga sebagai variable, sedangkan Behavior adalah tingkah laku atau apa yang dapat dilakukan oleh objek itu atau disebut juga sebagai method.
Sebagai contoh Attribute (State) dari pesawat adalah nama pesawat, tipe, warna, tahun produksi, roda, dll. Sedangkan Behavior dari pesawat adalah cara menghidupkan mesin, cara menerbangkan pesawat (take off), cara menurunkan pesawat (landing), dll.
Contoh :
-          Titik
Titik merupakan sebuah objek yang terdiri dari posisi x dan posisi y
-          Persegipanjang
Persegipanjang merupakan objek yang mempunyai panjang dan lebar

b. Apa sih Kelas (Class)
Kelas merupakan cetakan atau blueprint atau prototype, hasil dari cetakan itu disebut objek. Contoh pesawat Boeing 737 dibuat dengan rancangan yang sama, rancangan pesawat ini disebut kelas. Hasil rancangan itu menjadi pesawat Boeing 737 yang disebut objek. Pesawat-pesawat hasil rancangan tadi bisa memiliki warna, nama yang berbeda-beda tergantung perusahaan penerbangannya. Disini jelas bahwa objek memiliki sifat independen. Objek adalah instance dari kelas, satu kelas bisa memiliki beberapa objek.
c.        Instan (Instance)
Kelas yang telah terdefinisi dapat dijalankan (run-time) dalam bentuk instan di memori.
Contoh :
PersegiPanjang pp = new PersegiPanjang();
Maksud dari perintah di atas adalah sebagai berikut :
-          Instan pp merupakan sebuah objek kelas PersegiPanjang dimana pp dibentuk oleh konstruktor Persegipanjang();
-          Konstruktor (Constructor) merupakan sebuah method dimana nama method tersebut sama dengan nama kelas. Konstruktor tidak mengembalikan nilai tetapi dapat dilewati atau diberikan parameter.
-          Instan pp berjalan pada memory komputer.

d.  Method

Method atau fungsi atau operasi atau behaviour merupakan perintah-perintah prosedural yang ditempatkan pada kelas untuk mendapat hasil dari perintah-perintah tersebut.
e. Pengiriman Pesan (Message Passing)

Setiap objek dapat menerima atau mengirimkan pesan. Pesan-pesan tersebut bukan hanya berbentuk primitif variable (integer, double, dll), tetapi pesan-pesan tersebut dapat berupa objek lainnya.
Contoh :
pp.setPanjang(10);
Maksud perintah diatas adalah sebagai berikut :
pp diberikan nilai panjan sebesar 10
KONSEP-KONSEP OOP PADA JAVA
1. Kelas Abstrak (Class Abstraksi)
2. Enkapsulasi (encapsulation)
3. Pewarisan (Inheritance)
4. Polimorfisme (polymorphism)
Penjelasan :
1. Kelas Abstrak (Class Abstraksi)
·                     Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari sekumpulan data.
·                     Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau prototipe yang digunakan untuk menciptakan objek.
·                     Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan operasi pada data dalam suatu unit tunggal.
·                     Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data field), prosedur atau fungsi (method), dan sifat kelas (property).
2. Enkapsulasi (encapsulation)
·                     Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi.
·                     Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci.
·                     Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu.
·                     Contoh: kelas mobil menyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan kalor yang diperlukan untuk proses tersebut. Contoh penggunaannya antara lain :
Private
Variabel atau method hanya dapat diakses oleh objek itu saja.
 Public
Variabel atau method dapat diakses oleh objek itu sendiri dan objek lainnya
 Protected
Variabel dan method dapat diakses oleh objek itu sendiri dan turunannya.
3. Pewarisan (Inheritance)
·                     Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada.
·                     Penurunan sifat ini bisa dilakukan secara bertingkattingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik.
·                     Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya.
·                     Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kodekode itu.
4. Polimorfisme (polymorphism)
·                     Polimorfisme merupakan kemampuan objekobjek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama.
·                     Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.
·                     Method overriding.
·                     Method name overloading.
Contoh :
PersegiPanjang pp = new PersegiPanjang
Titik ttk = pp;
Maksud pada 2 baris perintah diatas adalah
-          Instan pp merupakan objek kelas PersegiPanjang PersegiPanjang dimana pp dibentuk oleh konstruktor Persegipanjang();
-          Instan ttk merupakan objek kelas Titik
-          Instan ttk dibentuk dari instan pp yang merupakan turunan dari pp (Polimorphisme)
-          Nilai instan ttk sama dengan instan pp
-          Nilai instan pp yang dianggap pada instan ttk adalah x,y. Sedangkan panjang dan lebar diabaikan.
KARAKTERISTIK OOP
·                     Semua adalah objek.
·                     Komputasi dilakukan dengan komunikasi antar objek. Setiap objek berkomunikasi dengan objek yang lain melalui pengiriman dan penerimaan pesan.
·                     Sebuah pesan merupakan permintaan atas sekumpulan aksi dengan semua argumen yang diperlukan untuk menyelesaikan suatu tugas tertentu.
·                     Setiap objek memiliki memori sendiri, yang dapat terdiri dari objek-objek lainnya.
·                     Setiap objek adalah wakil atau representasi dari suatu kelas. Sebuah kelas dapat mewakili sekelompok objek yang sama.
·                     Kelas merupakan kumpulan tingkah laku yang berkaitan dengan suatu objek. Jadi, semua objek yang merupakan wakil dari kelas yang sama dapat melakukan aksi yang sama pula.
·                     Kelas-kelas diorganisasikan ke dalam struktur pohon yang berakar tunggal, yang dinamakan dengan jenjang pewarisan (inheritance hierarchy).
·                     Setiap objek pada umumnya memiliki tiga sifat, yaitu keadaan, operasi dan identitas objek.
·                     Operasi merupakan tindakan yang dapat dilakukan oleh sebuah objek.
·                     Keadaan objek merupakan koleksi dari seluruh informasi yang dimiliki oleh objek pada suatu saat.
·                     Informasi yang terkandung pada objek tersebut pada akhirnya memberikan identitas khusus yang membedakan suatu objek dengan objek lainnya.

Minggu, 23 Maret 2014

OOP vs Prosedural

Written by kiki confusedd88. Posted in Pemrograman
Pernah mendengar procedural programming?
Atau pernah mendengar Object Oriented Programming?
Procedural Programming ataupun Object Orienterd Programming (OOP) merupakan bentuk struktur data dari algoritma pemrograman. Object Oriented Programming (OOP) adalah suatu metode pemrograman yang berbasiskan pada objek, secara singkat pengertian dari OOP adalah koleksi objek yang saling berinteraksi dan saling memberikan informasi satu dengan yang lainnya. Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Jadi apa bedanya?
Procedural programming itu berorientasi pada aksi, berbanding terbalik dengan OOP yang berorientasi terhadap objek.

Nicklaus wirth, seorang ilmuwan komputer dari Swiss, yang telah merancang berbagai bahasa pemrograman, seperti Algol W, Pascal, Modula, Modula-2, dan Oberon, memberikan judul bukunya Algorithms + Data Structures = Programs. Dari judulnya, secara tidak langsung beliau mengatakan bahwa algoritma dahulu, struktur data kemudian.
Menurut Nicklaus wirth, pada awalnya pikirkan dahulu bagaimana memanipulasi data, baru kemudian menentukan struktur data apa yang tepat digunakan agar manipulasinya menjadi mudah. OOP membalik urutan tersebut dengan merancang struktur data diawal, baru kemudian mencari algoritma terbaik untuk memanipulasi data.
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.

Kalau di procedural ada "function", di OOP ada "method". Kalau di procedural ada "modules", di OOP ada "objects". Kalau di procedural ada "argument", di OOP ada "message". Begitu juga dengan "variabel" yang ada di prosedural, di OOP lebih dikenal dengan nama "atribut".

Kelebihan OOP
  • data dan fungsi dibungkus dalam kelas – kelas atau objek – objek

  • efektif digunakan untuk menyelesaikan masalah besar, karena OOP terdiri dari class-class yang memisahkan setiap code program menjadi kelompok-kelompok kecil, sesuai dengan fungsinya.

  • Fungsi-fungsi algoritma yang terbagi menjadi beberapa class dapat memudahkan kita dalam memahami program, begitu juga ketika ada bug pada program, kita bisa lebih mudah menemukan penyebab errornya dibanding ketika menggunakan prosedural programming.

  • object dan class dapat digunakan berkali-kali, sehingga dapat menghemat space memori.

Kekurangan OOP
  • programmer yang telah terbiasa membuat program dengan konsep prosedural sering merasa kesulitan ketika dihadapkan dengan OOP. Biasanya "mereka" bingung dengan banyaknya istilah-istilah dalam OOP.

Kelebihan Prosedural
  • efektif digunakan untuk menyelesaikan masalah kecil

  • memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana

Kekurangan Prosedural
  • Tidak cocok untuk menyelesaikkan masalah yang rumit, karena nantinya akan kesulitan menemukan solusi permasalahan ketika terjadi eror.

Pada dasarnya pemrograman berorientasi objek maupun prosedural 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. Tapi sebenarnya struktur pemrograman apapun yang digunakan, kembali lagi kepada programmernya sendiri. Ketika seorang programmer telah terbiasa dengan bahasa prosedural, ia tidak bisa dipaksa menggunakan OOP.

Sabtu, 22 Maret 2014

kiki nurohman

Pengertian Java

Java adalah bahasa pemrograman yang multi platform dan multi device. Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat menjalankannya hampir di semua komputer dan perangkat lain yang support Java, dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa dijalankan dengan Java Virtual Machine. Fungsionalitas dari Java ini dapat berjalan dengan platform sistem operasi yang berbeda karena sifatnya yang umum dan non-spesifik.
pengertian java
Slogan Java adalah “Tulis sekali, jalankan di manapun”. Sekarang ini Java menjadi sebuah bahasa pemrograman yang populer dan dimanfaatkan secara luas untuk pengembangan perangkat lunak. Kebanyakan perangkat lunak yang menggunakan Java adalah ponsel feature dan ponsel pintar atau smartphone.

Kelebihan dan kekurangan Java

Setelah membahas mengenai pengertian java, selanjutnya kita membahas mengenai kelebihan dan kekurangan java. Kelebihan Java yang pertama tentu saja multiplatform. Java dapat dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda. Hal ini sesuai dengan slogannya yangs udah dibahas sebelumnya. Yang kedua adalah OOP atau Object Oriented Programming. Java memiliki library yang lengkap. Library disini adalah sebuah kumpulan dari program yang disertakan dalam Java. Hal ini akan memudahkan pemrograman menjadi lebih mudah. Kelengkapan library semakin beragam jika ditambah dengan karya komunitas Java.
Setiap hal pasti memiliki kelebihan dan kekurangan. Kekurangan yang dimiliki oleh Java adalah pada satu slogannya, takni “Tulis sekali dan jalankan dimana saja” ternyata tidak sepenuhnya benar. Beberapa hal harus disesuaikan jika dijalankan pada platform yang berbeda. Misalnya untuk J2SE dengan platform SWT-AWT bridge tidak dapat berfungsi di Mac OS X. Kekurangan lainnya adalah kemudahan aplikasi Java didekompilasi. Dekompilasi adalah suatu proses membalikkan sebuah aplikasi menjadi kode sumbernya. Hal ini memungkinkan terjadi pada Java karena berupa bytecode yang menyimpan bahasa tingkat tinggi. Hal ini terjadi pula pada platform .NET dari Microsoft sehingga program yang dihasilkan mudah dibajak kodenya karena sulit untuk disembunyikan.
Kekurangan Java yang lain adalah penggunaan memori yang cukup banyak, lebih besar daripada bahasa tingkat tinggi sebelum generasi Java. Namun hal ini memang sesuai dengan fitur beragam yang dimiliki oleh Java. Masalah memori ini juga tidak dialami oleh semua pengguna aplikasi Java. Mereka yang sudah menggunakan perangkat keras dengan teknologi terbaru tidak merasakan kelambatan dan konsumsi memori Java yang tinggi. Lain halnya dengan mereka yang menggunakan teknologi lama atau komputer yang sudah berumur tua lebih dari empat tahun akan merasakan adanya kelambatan. Namun apapun kelemahan yang dimiliki Java, faktanya adalah Java merupakan bahasa pemrograman yang populer dan digunakan di seluruh dunia saat ini.