Minggu, 12 Januari 2014

Pemrograman Berorientasi Object

Paradigma 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.


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.


Konsep dari object oriented programming (OOP) adalah lebih dari sekedar sebuah konsep pemrograman, Object oriented programming adalah cara berpikir tentang aplikasi yang mempelajari untuk berpikir bahwa aplikasi bukan sekedar prosedur melainkan sebagai object. Object yang dimaksud disini memiliki pengertian suatu modul yang mengkombinasikan antara data dan kode program yang bekerja sama dalam program dengan melewatkan proses satu sama lain. Jadi object oriented programming merupakan cara yang paling efisien untuk menulis program komputer yang sangat mudah untuk di kombinasikan dan untuk dipergunakan kembali.


Object oriented programming lebih memfokuskan kepada manipulasi object. Kenapa seorang programmer harus mempelajari object oriented programming bahkan seorang programmer yang tidak pernah bekerja dengan object oriented programing pun harus mempelajarinya juga. Hal ini dikarenakan pada suatu hari nanti semua bahasa pemrograman akan menambahkan kemampuan object oriented programming pada bahasanya.


· Class Adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object


· Objek Adalah membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah programkomputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.


· Abstraksi Adalah 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. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.


· Polimorphism kemampuan suatu method untuk bekerja dengan lebih dari satu tipe argumen.


· Inheritance merupakan konsep dalam pemrograman berorientasi objek yang memungkinkan untuk membuat suatu kelas dengan didasari pada kelas yang sudah ada sehingga mewarisi semua metode dan variabelnya, sehingga tidak perlu menuliskan kode dari awal.

Membedakan Class dan Objek


Class adalah konsep object oriented yang mencapsulasi/membungkus data dan abstraksi prosedural yang diperlukan untuk menggambarkan isi dan tingkah laku berbagai entitas. Class juga merupakan deskripsi tergeneralisir (misal template, pola, blueprint) yang menggambarkan kumpulan object yang sama. Class merupakan suatu konsep yang lebih tinggi lagi hierarkinya dari object yang dihasilkan dari proses generalisasi object-object yang memiliki beberapa ciri yang sama. Dalam OOP, class merupakan suatu hasil pemodelan fakta-fakta dari suatu object yang berguna bagi suatu aplikasi yang diprogram. Proses pemodelan fakta-fakta tersebut disebut dengan abstraksi.
Class memiliki tiga area pokok:
- Nama (dan stereotype)
- Atribut
- Method

Object mempresentasikan sebuah entitas, baik secara fisik, konsep. Definisi formal dari object adalah sebuah konsep, abstraksi atau sesuatu yang diberi batasan jelas dan dimaksudkan untuk sebuah aplikasi. Sebuah object adalah sesuatu yang mempunyai keadaan, prilaku, dan identitas.

Setelah melalui penjelasan tentang object dan kelas di atas, kita bisa simpulkan perbedaan antara keduanya, yaitu class adalah sesuatu yang menjelaskan ciri-ciri secara umum dari suatu object, termasuk apa-apa yang bisa dilakukan object tersebut. Sedangkan object adalah keadaan tertentu dari suatu class, atau sering juga disebut dengan instans dari class.

Attribute merupakan nilai data yang terdapat pada suatu object di dalam class. Attribute mempunyai karakterisitik yang membedakan object yang satu dengan object yang lainya.

Method Adalah membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah programkomputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

Dalam bahasa pemrograman juga memiliki acces modifier: public, package, protected, dan private. Berikut penjelasan masing- masing :

Public Adalah bahwa siapapun yang menjalankan program dapat mengakses member ini baik code yang terdapat di dalam class itu sendiri maupun code yang terdapat di luar class tersebut.

Private Anggota yang telah dideklarasikan sebagai class private hanya dapat digunakan oleh pihak dalam/ internal member dari class tersebut saja. Tidak ada yang diperbolehkan member dari class lain yang dapat mengakses/ mengubah dari member di dalam class yang sudah dideklarasikan sebahai class private.

Protected Anggota spesifikasi ini sebenarnya memiliki hubungan erat dengan kegunaan dari fungsi package dalam konsep pewarisan.

Package Adalah sarana/cara pengelompokkan dan pengorganisasian kelas-kelas dan interface yang sekelompok menjadi suatu unit tunggal dalam library.

Menentukan Atribute dan method
Attribute merupakan nilai data yang terdapat pada suatu object di dalam class. Attribute mempunyai karakterisitik yang membedakan object yang satu dengan object yang lainya.
Konstanta adalah adalah sebuah variabel yang nilainya tetap dan tidak bisa dirubah lagi. Konstanta digunakan untuk menyimpan data yang tidak akan kita ubah.
Method Adalah membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah programkomputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek
a. Implementator à Digunakan oleh class lain, contoh class          calculator + add (int bil1, int bil2). Ciri- cirinya adalah :    public – math.random
b. Acces Method à Method yag khusus digunakan untuk mengatur        acces keatribut.
c. Manager Method à Bertanggung jawab terhadap bagian objek          terbentuk/ ketika objek akan dihapus dari memorinya.
constructor adalah suatu method , yang namanya menyerupai nama class yg ditempati oleh constructor itu sendiri. guna nya , untuk menginisialisasi jika class tersebut dijadikan object


Access modifier merupakan keyword yang digunakan untuk menentukan spesifikasi tingkat akses suatu vaiable atau method (anggota kelas). Peng-aksesan yang dimaksud bisa berupa pengaksesan dalam kelas yang sama, turunan maupun dari luar kelas di mana variable dan method dideklarasikan.


A. protected
Access modifier protected menspesifikasikan atau menentukan anggota kelas (class member) yang hanya bisa diakses oleh method-methodyang ada di dalam kelas yang sama dan juga dapat diakses oleh subclass (kelas turunan) dari kelas tersebut.


B. private
Access modifier private merupakan tingkatan akses yang sangat terbatas. Kemudian seperti modifier-modifier lain, modifier private menspesifikasikan anggota kelas (class member) yang hanya bisa diakses oleh kelas dimana anggota-anggota kelas tersebut dideklarasikan. Keadaan ini mengakibatkan bahwa tidak ada kelas lain yang bisa mengakses anggota kelas private, sekaligus termasuk subkelas-subkelas (subclassess)-nya
Access modifier private adalah yang paling terbatas, menspesifikasikan anggota kelas(variable dan method) hanya dapat diakses oleh kelas dimana anggota itu didefinisikan.


C. public
Suatu anggota kelas (class member) dideklarasikan sebagai public, maka anggota tersebut akan bisa digunakan oleh siapa saja, yaitu baik oleh kelas yang sama, kelas lain maupun lingkungan luar kelas. Sehingga anggota kelas (class member) yang dideklarasikan sebagai public akan bisa diakses oleh sembarang object lain.


D. Package
Package adalah sarana/cara pengelompokkan dan pengorganisasian kelas-kelas dan interface yang sekelompok menjadi suatu unit tunggal dalam library.

Menemukan relasi antar class
RDBMS yang berbasis aljabar relasi memiliki tipe relasi yang disebut Asosiasi.Hubungan ini terbagi tiga yaitu hubungan one-to-one, one-to-many, many-to-one dan many-to-many. Sebelum merelasikan tabel harus dilakukan proses normalisasi terlebih dahulu untuk menjamin konsistensi,integritas data dan meminimalisir redudansi. Tidak seperti RDBMS yang hanya memiliki 1 jenis relasi, class memiliki 5 macam jenis relasi yang mungkin yaitu : Asosiasi, Agregasi, Generalisasi, Depedensi, dan Realisasi .
a. Asosiasi
Hubungan antara class yang ada. Asosiasi memungkinkan sebuah class mengetahui Property dan Method class lain yang saling berelasi. Syaratnya Property dan Method harus memiliki access modifier/visibility public.
b. Generalisasi
Relasi antara “keseluruhan” dengan “bagian”


class abstract dan interface

Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat diinstansiasi secara langsung menjadi object

Beberapa hal yang perlu diperhatikan adalah sebagai berikut:

· Class abstrak tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.

· Sebuah class dapat dideklarasikan sebagai class abstrak walaupun tidak memiliki method abstrak.

· Variabel dengan tipe class abstrak tetap bisa diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang tentunya tidak abstrak.

Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya

· Memecahkan bagian yang rumit dan spesifik. Dengan menggunakan class atau interface oleh vendor maka dalam pembuatan perangkat lunak menjadi lebih cepat.

· Keterbatasan inheritance pada Java. Interface menjawab kebutuhan untuk melakukan multiple inheritance

Inheritance merupakan konsep dalam pemrograman berorientasi objek yang memungkinkan

untuk membuat suatu kelas dengan didasari pada kelas yang sudah ada sehingga mewarisi

semua metode dan variabelnya, sehingga tidak perlu menuliskan kode dari awal.

Menggunakan Java Util (collection )

Java.Util :Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan Mengumpulkan banyak variable dengan tipe sama dalam sebuah array adalah hal yang mutlak dibutuhkan dalam bahasa pemrograman apa pun. Seiring dengan kebutuhan tersebut, banyak juga dibuat fungsi-fungsi untuk memanipulasi array. Dalam Java, Anda bisa memanfaatkan seluruh framework Collection yang akan bertindak seperti array dengan fungsi-fungsi powerful yang tersedia sesuai kebutuhan.


Sebuah collection adalah sebuah object yang merepresentasikan kumpulan object-object. Collection digunakan untuk menyimpan, mengambil, dan memanipulasi data-data. Salah satu collection paling sederhana adalah Array. Namun dalam Collection Framework, Java menawarkan berbagai bentuk lain dari Collection.
Karena Collection adalah interface, maka harus dibuat class yang mengimplementasikannya. Dalam Java API, sudah tersedia beberapa class yang sangat berguna untuk memanage object-object dalam Collection, sesuai sifat dan kebutuhannya

a. Java.util.ArrayList digunakan untuk membuat array yang ukurannya dinamis. Berbeda dengan array biasa yang ukurannya harus ditentukan di awal deklarasi array, dengan ArrayList, ukurannya akan fleksibel tergantung banyaknya elemen yang dimasukkan. Pendeklarasian object ArrayList sebaiknya diikuti dengan nama class yang akan dimasukkan dalam List tersebut

b. Java.Util.Hashtable dapat memapingkan object keys dan value. Null object bisa digunakan di sebagai key ataupun value.

-agar berhasil melakukan pertukaran data., object yang digunakan sebagai key harus mengimplemntasikan method hashCode ( ) & equals ( ).

c. Java.Util.HashMap berfungsi sebagai collection yang memetakan setiap value dengan key tertentu
Setelah class terbentuk semua, kemudian membuat class utama yang menjadi Interface bagi user. Dan Hasilnya nanti akan menjadi seperti berikut.

Menggunakan class IO Stream dan Network

Sistem IO di Java adalah bagian dari library Java yang bertugas menangani input dan output dalam sebuah program Java. Input dan output ini bentuknya bisa bermacam-macam, di antaranya:
· Menangani input dan output dari dan ke standar output
· Menangani operasi file (membaca atau menulis file)
· Memproses data yang masuk melalui soket, dll
Arsitektur library IO di Java dirancang sedemikian rupa sehingga memudahkan dilakukannya ekstensi terhadap library yang sudah ada.

I/O Streams

Untuk membaca, program membuka stream pada sumber ( file, memory, socket) dan membaca informasi secara sekuensial. Untuk menulis, program mengirim informasi ke tujuan dengan cara membuka stream tujuan, selanjutnya menulis informasi secara sekuensial.

· Cara menggunakan stream
· Prosedur penggunaan byte stream dan character stream sama
· Input stream
· Membuat objek yg berasosiasi dengan data source Contoh : FileInputStream
· Membaca informasi dari stream dengan menggunakan method objek tersebut Contoh: read()
· Bila selesai, panggil method close.

Output Stream

· Membuat objek yg berasosiasi dg data destination. Contoh : BufferedWriter

· Menulis informasi ke stream tujuan dg menggunakan method objek tersebut. Contoh: write()

· Bila selesai, panggil method close.


InputStream and OutputStream Classes

Level tertinggi pada hirarki package java.io adalah dua abstract class: InputStream dan OutputStream. Keduanya langsung dibuat dengan meng- extend class Object. Class InputStream dan OutputStream mempunyai beberapa method dasar untuk membaca dan menulis bytes.


InputStream dan OutputStream

InputStream dan OutputStream adalah abstract class untuk stream I/O, yaitu untuk membaca dan menulis data dari dan ke file. Untuk membaca digunakan class yang mengimplementasikan InputStream, contoh : FileInputStream. Untuk menulis digunakan class yang mengimplementasikan OutputStream, contoh :


FileOutputStream :

· Hirarki Class InputStream dan OutputStream

· InputStream

· FileInputStream

· ByteArrayInputStream

OutputStream :

· FileOutputStream

· ByteArrayOutputStream

· FilterOutputStream

· DataOutputStream

Network

Jaringan adalah sebuah himpunan komputer yang dihubungkan dengan kabel sehingga komputer satu dengan komputer lainnya dapat saling komunikasi, bertukar informasi sharing file, printer, dll.

Socket

Adalah interface pada jaringan yang menjadi titik komunikasi antarmesin pada Internet Protocol, dan tentunya tanpa komunikasi ini, tidak akan ada pertukaran data dan informasi jaringan.


Port

Adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan.

Class Connection (JDBC)


Database

Database atau basis data adalah kumpulan data yang disimpan secara sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan informasi


Tabel

Tabel adalah daftar yang berisi ikhtisar sejumlah data-data informasi yang biasanya berupa kata-kata maupun bilangan yang tersusun dengan garis pembatas


Structured Query Language (SQL)


SQL dalah sekumpulan perintah khusus yang digunakan untuk mengakses data dalam database relasional

Connection
Connection adalah terhubung atau dengan kata lain menghubungkan komputer ke jaringan internet

Statement
Perintah atau instruksi SQL dapat dikelompokkan berdasarkan jenis dan fungsinya. Terdapat 3 jenis perintah dasar SQL : Data Definition Language, Data Manipulation Language dan Data Control Language.

CRUD
Singkatan dari CREATE, RENAME, UPDATE, DELETE., CRUD adalah operasi Create, read, update, dan delete pada database

Menggunakan kelas AWT dan Swing
Java GUI
Java GUI adalah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi yang berbasiskan GUI. Tujuannya adalah menambahkan komponen-komponen yang tidak bisa dibuat dalam basis text. Komponen-konponen tersebut bisa berupa tombol, gambar, dll.

GUI berdiri dalam command line interface (CLIs), yang hanya menggunakan teks dan diakses oleh keyboard. Contoh yang paling banyak dikenal dari CLI adalah MS-DOS. Contoh lain adalah linux bila digunakan dalam console mode(yaitu seluruh layar hanya menampilkan teks)


AWT (Abstract Windowing Toolkit) dan Swing
Abstract Windowing Toolkit (AWT), atau disebut juga “Another Windowing Toolkit”, adalah pustaka windowing bertujuan umum dan multiplatform serta menyediakan sejumlah kelas untuk membuat GUI di Java. Dengan AWT, dapat membuat window, menggambar, manipulasi gambar, dan komponen seperti Button, Scrollbar, Checkbox, TextField, dan menu pull-down.

Swing merupakan perbaikan kelemahan di AWT. Banyak kelas swing

menyediakan komponen alternatif terhadap AWT. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak dibanding kelas Button. Selain itu komponen swing umumnya diawali dengan huruf “J”, misalnya JButton, JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen Swing ditandai dengan adanya instruksi : import javax.swing.

Koordinat GUI

Swing adalah “built-in” GUI komponen teknologi platform java. Swing adalah penerus AWT teknologi yang diberikan dengan rilis awal platform java. Sebagai contoh, dalam Swing program anda akan menggunakan javax.swing.JTextField bukan java.awt.JTextField. Dalam pengertian lain

SWT (Standart Widget Toolkit) adalah sebuah alternatig teknologi komponen GUI yang merupakan bagian dari eclipse project. Sebuah komunitas yang besar dan berkembang menganjurkan SWT untuk Swing dalam pemrograman Java GUI.

Event Handler merupakan aksi-reaksi pada tiap-tiap komponen GUI

Sistem Koordinat GUI

Sistem Koordinat posisi window dan peletakan komponennya mengikuti sistem koordinat kartesian 2 dimensi x-aksis dan y-aksis. Penempatan dan dimensi dari komponen mengikuti aturan dasar (x,y,lebar,tinggi).

Struktur dasar Window AWT

1. Frame atau Jwindow, sebagai komponen dasar window
2. Header, tempat judul dan standar exit-close
3. Menubar, tempat list menu
4. Kontainer object ContentPane, sebagai kanvas tempat komponen-komponen diletakkan

Dalam mengatur peletakan komponen pada container frame java memiliki standar layout untuk membantu pengaturan posisi layout sehingga dihasilkan tampilan yang user friendly.

Model manajemen layout :

1.Layout Absolut
2. Layout Manajer, yang terdiriatas:FlowLayout,GridLayout, borderLayout,gridbaglayout
3. Kombinasi Layout manajer dan Jpanel

Absolut Layout:

Dalam peletakan dengan model ini maka komponen akan diletakkan sesuai dengan koordinat dan dimensi yang diberikan pada komponen (component.Setbounds(x,y,lebar,tinggi)) Dan tanpa perlu ada pengaturan layout container.setLayout(null)

FlowLayout Manager

Layout akan diatur seperti dokumen dengan alignment: CENTER,LEFT,RIGHT,LEADING,TRAILING. Perubahan dimensi window akan berakibat pada posisi komponen-komponen didalamnya.

Borderlayout Manajer

Layout diatur dengan membagi container menjadi divider dengan beberapa pilihan section container (NORTH,WEST,CENTER,EAST,SOUTH)

GridBagLayout Manager

merupakan layout manajer komplek. Dengan base Gridlayout dan absolut layout untuk variasi dimensi dari masing-masing grid. Jika pada aplikasi berbasis command prompt kita memanfaatkan masukan dari keyboard untuk melakukan suatu aksi atau perintah, maka pada aplikasi berbasis GUI juga dibutuhkan sumber inputan ataupun kondisi yang melekat pada masing-masing komponen didalam frame yang disebut dengan event. Event kebanyakan dihasilkan oleh piranti utama input yaitu mouse dan keybord, event model ini dinamakan low-level event.


Dan ada pula event yang terjadi dikarenakan suatu proses pada komputasi yang biasanya berupa pesan atapun peringatan dikarenakan kondisi pada memori, prosesor ataupun yang lainnya yang disebut dengan semantic event.