Kamis, 08 Maret 2012

OOP(Object Oriented Programming)

Java adalah Bahasa Pemrograman Berorientasi Objek (PBO)

Sebagaimana halnya C++, salah satu bahasa yang mengilhami Java, Java juga merupakan bahasa pemrograman berorientasi Objek. Java menggunakan kelas untuk membentuk suatu Objek. Beberapa sifat pada PBO "Java" adalah :
1) Pewarisan
Pewarisan adalah mekanisme penurunan variable ataupun method dari Superclass ke Subclass(keyword : "extends")

2) Polimorfisme
Polimorfisme adalah proses perubahan bentuk pada method yang terdiri dari 2 jenis, yaitu:
a) Overload : perubahan pada Parameter di class sendiri / pada class turunan.
b) Override : perubahan pada body khusus pada class turunan saja.

3) Pembungkusan / Encapsulation
Encapsulation adalah mekanisme tingkat akses yang terjadi pada program Java. Encapsulation dibagi menjadi 4, yaitu :
a) Public : tingkat akses pada semua class pada semua Package.
b) Default : tingkat akses pada semua class dalam Package yang sama (1 Package).
c) Protected : tingkat akses pada class turunan dan class itu sendiri.
d) Private : tingkat akses yang hanya bisa dilakukan pada class itu sendiri.

4) Modifier
Modifier adalah mekanisme perubahan / pengaksesan variable / method yang terbagi menjadi 2, yaitu :
a) Static : diberikan pada variable & method agar pengaksesannya tanpa initialisasi / pembentukan Objek baru.
b) Final : diberikan pada class agar tidak bisa diturunkan ke class yang lain, variable menjadi Konstan, dan method tidak bisa di Override.

5) Abstract Class
Abstract Class adalah Class yang tidak bisa dibuat Objek, berisi abstract method dan Non-abstract method, dan biasanya merupakan Class yang tertinggi (keyword : "abstract", tetapi untuk pemanggilan dari class turunan tetap menggunakan keyword : "extends", karena berupa Class).

6) Interface
Interface bukan merupakan class, berisi abstract method dan final variable (konstanta). Untuk menerapkannya harus pada class lain dengan keyword : "implements".

Macam-Macam GUI Toolkit Pada Java

AWT (Abstract Window Toolkit) – SUN Microsystem -> Oracle Product

AWT (Abstract Window Toolkit) ini adalah GUI Toolkit pertama pada bahasa pemrograman Java, sayang-nya AWT ini sangat-sangat kekurangan komponen yang biasa digunakan untuk membangun sebuah aplikasi desktop secara lengkap . Terlepas dari kurang-nya komponen GUI yang terdapat pada AWT (Abstract Window Toolkit), aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) akan tampak seperti aplikasi native. Maksudnya yaitu, jika aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) ini dijalankan pada Sistem Operasi Windows. Maka aplikasi ini akan terlihat seperti aplikasi Windows pada umum-nya, dan begitu juga jika dijalankan pada Sistem Operasi Mac ataupun GNU/Linux. Kenapa ini bisa terjadi, karena AWT (Abstract Window Toolkit) ini benar-benar memanggil native subrutin untuk menggambar setiap komponen-nya ke layar.

Java Swing – SUN Microsystem -> Oracle

Dibandingkan dengan pendahulu-nya yaitu AWT (Abstract Window Toolkit), Swing mempunyai lebih banyak komponen pendukung untuk membangun sebuah aplikasi yang lengkap untuk keperluan desktop. Selain didukung dengan banyak-nya komponen, Swing ini benar-benar murni 100 % ditulis dengan bahasa pemrograman Java tanpa adanya sebuah wrapper untuk memanggil rutin-rutin native code via JNI (Java Native Interface). Seluruh komponen yang terdapat pada Swing, semuanya murni digambar sendiri menggunakan API (Application Programming Interface) 2D untuk memanggil rutin-rutin dasar penggambaran komponen-nya. Nah dengan model seperti ini, memungkinkan sekali aplikasi yang dibangun menggunakan Swing tampak sama persis di berbagai macam Sistem Operasi.
Selain itu, Swing juga mempunyai kemampuan untuk berganti-ganti tampilan menggunakan LAF (Look And Feel) atau themes . Sayang-nya, jika kita menginginkan tampilan GUI yang native (tampilan-nya sama seperti aplikasi-aplikasi lain pada sistem operasi target) Swing seperti-nya masih terasa kurang smooth terutama dukungan pada font rendering-nya .

SWT (Standart Widget Tookit) – IBM Product -> Eclipse Foundation

SWT (Standart Widget Toolkit) ini adalah sebuah GUI Toolkit yang dikeluaran oleh IBM sebagai alternatif dari AWT/Java Swing milik SUN Microsystem, yang membedakan antara SWT (Standart Widget Toolkit) dan AWT/Java Swing adalah SWT ini benar-benar mengakses native GUI library yang terdapat pada Sistem Operasi melalui JNI (Java Native Interface). Dengan model seperti ini, memungkinkan tampilan aplikasi yang dibangun menggunakan GUI Toolkit SWT menjadi sama persis dengan aplikasi native lain-nya. Kekurangan dari model pemanggilan native GUI library seperti ini adalah kita harus menyediakan library untuk tiap-tiap Sistem Operasi target aplikasi kita.

QtJambi – Trolltech -> Nokia Product -> Stopped and Taken By Community

Jika teman-teman ingin membangun aplikasi yang tampilan-nya tampak seperti aplikasi yang terdapat pada KDE tapi masih ingin menggunakan bahasa java sebagai dasar-nya, maka QtJambi adalah pilihan yang tepat untuk teman-teman. Karena QtJambi ini merupakan binding Qt Framework dengan bahasa Java, tetapi sayang-nya proyek QtJambi sudah tidak disupport oleh Nokia dan secara resmi telah ditutup . Untung-nya, awal tahun ini ada beberapa developer yang peduli dengan kelangsungan proyek ini dan akhir-nya membuat sebuah komunitas untuk melanjutkan pengembangan proyek QtJambi.

Event Handling GUI Pada Java

Dalam event handling pada Java ada empat bagian penting yang harus diketahui:

Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event
Event Source merupakan pembangkit / trigger sebuah event objects

setiap event object mempunyai type event yang berbdea beda. sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.

berikut ini type type event yang ada di Java :

ActionEvent
ItemEvent
WindowEvent
ContainerEvent
ComponentEvent
FocusEvent
TextEvent
KeyEvent
MouseEvent
AdjustmentEvent

Berikut ini Interface Listener

ActionListener
ItemListener
WindowListener
ContainerListener
ComponentListener
FocusListener
TextListener
KeyListener
MouseListener
MouseMotionListener
AdjustmentListener

Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface listener kecuali MouseEvent yang mempunyai dua jenis interface listener. dan setiap interface mempunyai method abstract yang harus di override class yang meng-impletasikan interface. event listener dan event handler terdapat pada package java.awt.event
Bagaimana event handling dalam Java? ada tiga langkah penting dalam event handling

Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan code yang menyatakan class tersebut meng-implement interface listener
Event source mendaftarkan sebuah listener melalui method addListener
Kode yang mengimplementasikan method pada interface listener pada class yang akan meng-handle event. [ Override ]

Enkripsi

Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa
dimengerti (Plaintext) menjadi sebuah kode yang tidak bisa dimengerti (Ciphertext). Sedangkan
proses kebalikannya untuk mengubah ciphertext mejadi plaintext disebut dekripsi. Sebuah system pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata atau informasi atau yang merupakan bagian dari informasi yang dikirim. Secara umum operasi enkripsi dan dekripsi secara matematis dapat digambarkan sebagai berikut:
EK (M) = C {proses enkripsi}
DK (C) = M {proses dekripsi}
Pada proses enkripsi pesan M dengan suatu kunci K disandikan menjadi pesan C. pada proses
dekripsi pesan C dengan kunci K disandikan menjadi pesan semula yaitu M. misalnya S (sender)
mengirim sebuah pesan ke R (receiver) dengan media transmisi T. Di luar, ada O yang
menginginkan pesan tersebut dan mencoba untuk mengakses secara ilegal pesan tersebut. O disebut interceptor atau intruder. Setelah S mengirim pesan ke R melalui media T, O bisa mengakses pesan tersebut dengan cara-cara sebagai berikut:
a. Menggangu pesan, dengan mencegah pesan sampai ke R.
b. Mencegat pesan, dengan cara mengetahui isi pesan tersebut.
c. Mengubah pesan dari bentuk aslinya dengan cara apapun.
d. Memalsukan pesan yang terlihat asli, jadi seolah-olah sebuah pesan dikirim oleh S.
Untuk melindungi pesan asli dari gangguan seperti ini dan menjamin keamanan dan kerahasiaan data maka mulai dikenal sistem kriptografi untuk melindungi data, yaitu dengan mengenkripsi pesan dan untuk bisa membaca pesan kembali seperti aslinya pesan harus didekripsi. Kriptografi merupakan cara yang paling praktis untuk melindungi data yang ditransmisikan melalui sarana telekomunikasi.
A. Enkripsi Konvensional.
Proses enkripsi ini dapat digambarkan sebagai berikut :
Plain teks -> Algoritma Enkripsi -> Cipher teks ->Algoritma Dekripsi -> Plain teks


Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks, yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi.
Sekali cipher teks telah dihasilkan, kemudian ditransmisikan. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama.
Keamanan dari enkripsi konvensional bergantung pada beberapa faktor. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Atau dengan kata lain, kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya.
Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. dengan penggunaan dari enkripsi konvensional, prinsip keamanan adalah menjadi menjaga keamanan dari kunci.
Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES), yang diambil oleh Biro standart nasional US pada tahun 1977. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. Dengan menggunakan kunci ini, 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi.
B. Enkripsi Public-Key
Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976.
Plain teks -> Algoritma Enkripsi -> Cipher teks -> Algoritma Dekrispsi -> Plain teks

Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. Sehingga teknik berikut ini akan dapat dilakukan :

Masing – masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
Masing – masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file, sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ).
Jika A ingin mengisim pesan kepada B, maka A akan mengenkripsi pesannya dengan kunci publik dari B.
Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A.

Seperti yang kita lihat, public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. Selama sistem mengontrol masing – masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. Sehingga untuk perbandingan ukuran dan harga dari hardware, metode publik key akan menghasilkan performance yang lebih rendah. Tabel berikut ini akan memperlihatkan berbagai aspek penting dari enkripsi konvensional dan public key.
Enkripsi Konvensional
Yang dibutuhkan untuk bekerja :

Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi – enkripsi.
Pengirim dan penerima harus membagi algoritma dan kunci yang sama.

Yang dibutuhkan untuk keamanan :

Kunci harus dirahasiakan.
Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunc.

Enkripsi Public Key
Yang dibutuhkan untuk bekerja :

Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci, satu untuk enkripsi satu untuk dekripsi.
Pengirim dan penerima harus mempunyai sepasang kunci yang cocok.

Yang dibutuhkan untuk keamanan :

Salah satu dari kunci harus dirahasiakan.
Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.

Barcelona Gulung Leverkusen 7-1, Messi sumbang 5 Gol


Barcelona berhasil melaju ke babak perempatfinal Champions League setelah di leg 2 berhasil menggulung Bayer Leverkusen 7-1. Lionel Messi menjadi bintang setelah sukses mencetak lima gol. Dengan hasil ini, Barca berhasil unggul dengan agregat 10-2.

Menjamu Leverkusen di Camp Nou, Kamis 8 Maret 2012, Barca berhasil unggul 2-0 di akhir babak pertama lewat gol yang diborong Lionel Messi. Striker Argentina ini membuka keunggulan di menit 26.

Berawal dari sebuah serangan balik, bola sapuan Gerard Pique berhasil digapai Messi yang lolos dari jebakan off side. Merangsek ke kotak penalti, Messi berhasil memperdayai kiper Leverkusen, Bernd Leno. 1-0 untuk keunggulan Barca.

Messi kembali menjadi momok bagi tim tamu. Ia berhasil mencetak gol kedua di menit 42. Messi berhasil menari di kotak penalti Leverkusen sebelum melakukan sepakan terukur kaki kirinya. Bola menghujam deras ke gawang Leverkusen. Keunggulan 2-0 ini bertahan hingga turun minum.

Di babak kedua, Barcelona tampil menggila. Pasukan Pep Guardiola ini tak mengendurkan serangan dan justru tampil agresif. Hujan gol pun mewarnai duel tak seimbang ini. Messi menjadi bintang setelah sukses menambah tiga gol di babak kedua.

Messi mencetak hat-trick di menit 49 sekaligus membawa Barca memimpin 3-0. Gol tercipta setelah Messi mampu memanfaatkan umpan lambung Cesc Fabregas lewat sebuah sepakan lop guna melewati hadangan kiper Leno.

Cristian Tello yang masuk menggantikan Andres Iniesta berhasil memperbesar keunggulan Barca di menit 55. Lagi-lagi Fabregas memberikan assists matang untuk gol keempat Barca di pertandingan ini.

Selang tiga menit, Messi kembali menjadi mimpi buruk bagi gawang Leverkusen setelah sukses mencetak gol keempat. Barca sementara unggul 5-0. Pada menit 62 Tello kembali mencetak gol kedua sekaligus membuat Barca unggul 6-0.

Messi akhirnya mencetak gol kelimanya di pertandingani itu pada 85. Umpan satu dua dengan gelandang Seydou Keita, Messi langsung melepaskan sepakan kaki kiri yang gagal dihadang kiper Leno.

Torehan lima gol ini mencatatkan nama Messi sebagai pemain pertama yang mencetak lima gol di ajang Champions League. Leverkusen sempat mencetak gol hiburan di masa injury time lewat gol Karim Bellarabi. Barca akhirnya suseks menekuk Leverkusens 7-1.

Susunan pemain
Barcelona: Victor Valdés, Javier Mascherano, Gerard Piqué, Adriano, Dani Alves, Sergio Busquets, Andrés Iniesta, Xavi, Cesc Fábregas, Lionel Messi, Pedro

Leverkusen: Bernd Leno, Ömer Toprak, Daniel Schwaab, Michal Kadlec, Gonzalo Castro, Simon Rolfes, Stefan Reinartz, Lars Bender, Renato Augusto, Eren Derdiyok, Stefan Kießling

Chelsea Pecat Andre Villas-Boas

Pemilik Chelsea, Roman Abramovich akhirnya kehilangan kesabaran terhadap kinerja Andre Villas-Boas. Taipan asal Rusia itu akhirnya memecat Villas-Boas dari kursi manajer Chelsea, Minggu 4 Maret 2012.

Setelah mengalami kekalahan 0-1 dari West Bromwich Albion pada Sabtu 3 Maret 2012, AVB akhirnya mendapat ganjaran atas performa buruk timnya pada musim ini. Sebelumnya Chelsea menderita kekalahan 1-3 dari Napoli di Liga Champions dan bermain imbang 1-1 dengan Birmingham City di ajang Piala FA.

“Andre Villas-Boas telah berpisah dengan Chelsea pada hari ini,” tulis pernyataan resmi klub di situs www.chelseafc.com. “Klub sangat berterima kasih untuk karyanya dan mengekspresikan kekecewaan kami karena hubungan ini berakhir dengan begitu cepat.”

Saat ini Chelsea berada di posisi kelima klasemen sementara Liga Inggris. Mereka terpaut tiga angka dengan Arsenal yang berada di zona Liga Champions. Dengan lengsernya AVB, asisten pelatih Roberto Di Mateo naik pangkat menjadi manajer tim hingga akhir musim.

“Klub ini masih berlaga di Liga Champions dan Piala FA, serta bersaing untuk posisi empat besar Liga Premier. Tujuan kami adalah tetap bersaing sekompetitif mungkin di semua ajang," tulis salah satu sumber di situs klub. "Kami merasa satu-satunya pilihan kami adalah membuat perubahan. Dan Roberto Di Mateo telah ditunjuk sebagai pelatih sementara hingga akhir musim.”

JOptionPane-Array

Script :
import javax.swing.JOptionPane;

public class JO_Array {

public static void main(String[] args) {
String input = JOptionPane.showInputDialog("Input angka :");
int masuk = Integer.parseInt(input);
int counter = 0;
for (int i = 1; i <= masuk; i++) { String bil = JOptionPane.showInputDialog("Masukkan angka ke-" + i); int angka = Integer.parseInt(bil); counter += angka; } String msg = ("Total angka adalah :\n" + counter); JOptionPane.showMessageDialog(null, msg); } } Implementasi :






Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review