Postingan kali ini ane mau bahas tentang pemrograman Java, kalo sebelumnya ane kasi Contoh Aplikasi CRUD C# kali ini CRUD java.. tentunya ente sudah tau kan CRUD itu apa? CRUD adalah bentuk dari DDL dan DML dari database? apa itu DDL dan DML ? wah kalo di bahas disini bisa panjang... ente tentunya bisa cari di blog lain yang membahas tentang Mysql kalo ente belum tau tentang DDl dan DML... oke, Guys, langsung aje ya ke contoh CRUD Java nya... :) 

Java adalah sebuah bahasa pemrograman komputer kompilasi bytecode yang tidak bergantung pada sistem operasi atau platform dan termasuk berbasis pada object oriented programming.

Sejarah singkat Java

Java diciptakan setelah C++ oleh Sun microsystems.
Proyek Java dimulai tahun 1991 oleh sejumlah insinyur pada perusahaan Sun Microsystem Inc, dengan ide menggunakan bahasa komputer yang tidak mengacu pada sebuah arsitektur. Proyek ini diberi kode sandi Green.
Tahun 1992, proyek Green meluncurkan produk pertama ' *7 '.
Tahun 1993 dan separuh th 1994, berganti nama First Person, tetapi bubar.
Tahun 1995, dibuatlah browser yang mampu menerjemahkan kodebyte tingkat menengah. Dan bahasa Java mulai digunakan secara luas.
Beberapa sifat-sifat / Karakteristik bahasa Java antara lain :

Platform Independence. Dapat dipindah-pindahkan di antara bermacam-macam platform dan SO. Begitu pula sourcecode-nya.
Program yang dihasilkan dalam bahasa Java dapat berupa applet (aplikasi kecil yang jalan di atas web browser).
Berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter.
Setiap program yang ditulis dalam bahasa Java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang terlihat seperti kode mesin, tetapi tidak spesifik untuk satu jenis prosessor tertentu.
Berbasis Object Oriented Programming.
Dan masih banyak lagi.
Keunggulan Java :

Sederhana
Berorientasi Object
Terdistribusi
Kuat / Robust = mengurangi bug / error
Aman = memungkinkan bebas virus
Netral Arsitektur = mudah diterjemahkan
Portable
Interpreter = diakses komputer yang memiliki interpreter.
Kinerja tinggi
Multithreaded = melakukan lebih dari satu pekerjaan.
Dinamis = mudah diadaptasikan untuk lingkungan yang akan berkembang.
Java dengan bahasa yang lain :

Java tidak sama dengan Javascript, salah satu contoh perbedaannya adalah javascript hanya terbatas pada fungsi browser, sedang Java mirip syntax dengan C++. Tetapi syntax Java tidak memerlukan header file, pointer arithmatic, struktur, union, operator overlading, class virtual dan lain-lain. Perancang tidak memperbaiki beberapa kelemahan pada C++, seperti switch statemen. Jika kita mengenal C++ dengan baik, akan lebih memudahkan berpindah ke syntax Java.
Jika kita menguasai Visual Basic, kita tidak berpendapat bahwa Java sederhana. Akan ada banyak syntax asing. Yang menarik di Visual Basic adalah lingkungan perancangan visual yang harus diprogram secara manual di Java.
Arsitektur Java
Arsitektur Java adalah kombinasi dari 4 komponen yaitu :

Java Programming Language
Java Class file Format
Java Application Programming Interface (APIs)
Java Virtual Machine (JVM)
Java Virtual Machine (JVM)

JVM adalah mesin computing abstrak yang menerjemahkan kompiler program Java/jembatan antara program dan keunikan platform.
JVM menyembunyikan kompleksitas platform dari program yang kita buat dan merupakan jantung program.
Secara sekilas lapisan tambahan tersebut menyebabkan aplikasi berjalan lambat dibanding aplikasi platform. Namun sekarang telah dikenal Just In Time (JIT) compiler. JIT ini membaca program java, dan segera melakukan kompilasi terhadap program java tersebut menjadi program spesifik platform. Contoh JVM pada web browser, begitu web browser misal Netscape menerima applet, ia akan mengkompilenya dengan JT (optimasi JIT dilakukan oleh para vendor).
Format File Class Java

JVM tidak dapat langsung menerjemahkan ke Java Programming language atau API sekalipun.
Dalam Java, misalkan kita mengetik kode dengan text editor favorit, kemudian menyimpannya sebagai file dengan ekstensi Java. Lalu Java kompiler kita mengkompilasi kode tersebut menjadi Java Bytecode, tersimpan dalam ekstensi Calass. Java bytecode tersebut akan ditangani untuk dieksekusi oleh JVM yang saat ini ada dua modus dengan atau tanpa JIT.               
Java Programming Language (Bahasa aplikasi program Java)

Bahasa Program ini lebih mengacu pada core java programming. Diantaranya termasuk :

Method, Interface and class design, Threading, Even Handling, Perfomance and memory management, Controlling Access to Resources.
Aplication Programming Interface's (API's)
Beberapa Edisi program Aplikasi (API - Aplication Programming Interface)

J2SE - Java 2 Standard Edition - Platform ini berisikan paket Java standar dan GUI dalam Standard Edition mencakup :
1. Swing Components (paket komponen aplikasi java dalam
    direktori JTree C : /
2. J2sdkee 1.2.1 = java 2 SDK software platform.
3. JavaStuff
4. Jdk_1.3 = Java Development Kit, JRE termasuk di dalamnya.
5. Jsse 1.0.1
6. Data transfer API
7. Printing API
8. JDBC
9. JNI (Java and nonjava code interface), dll
J2EE - Java 2 Enterprise Edition - Paket ini berisikan develop aplikasi berbasis web.
J2ME - Java 2 Micro Edition - Untuk produk konsumer lingkungan teknologi mobile.
 
PEMROGRAMAN BERBASIS OBJEK (OOP)

Java adalah bahasa yang termasuk dalam pemrograman berorientasi object. Berbandingan anologi aliran dan interaksi antar object antara Structured Procedural Programming (Basic, Pascal, C etc).

Ide tentang Object Oriented

Object mempresentasikan entitas pada dunia nyata. Dalam membuat mobil kita dimulai dari memecah-mecah kompleksitas sistem mobil ke dalam bagian kecil, seperti roda, kemudi, dan sebagainya.

Pada masing-masing bagian kecil itu kita definisikan field-field, seperti warna atau daya cengkeram. Selain itu, kita definisikan apa saja yang bisa dilakukan terhadap bagian-bagian itu. Perintah-perintah yang bisa diterima itu disebut method.

Antarmuka dalam interaksi antar obyek tersebut adalah method-method yang dimiliki object. Objek-objek itu berinteraksi dengan saling memanggil method dari suatu objek, atau sering disebut message passing.

Tiga Pilar OOP :

Encapsulation
Terdiri dari method-method dalam Class, tahapnya meliputi Constructor dan Destructor.
Inheritance (Pewarisan Sifat)
Dengan inheritance, pengembang software dapat bekerja lebih efesien dan lebih cepat. Berkat inheritance, dapat digunakan definisi class yang sudah pernah dibuat sebelumnya untuk membuat class-class lain yang menyerupai class tersebut.
Polymorphism
Polymorphism didefiniskan sebagai kemampuan beberapa objek bertipe sama, bereaksi secara berbeda terhadap message yang sama.
Object dan Class

Class adalah template untuk obyek-obyek yang memiliki sifat yang sama. Dalam menulis program yang berorientasi objek yang sebenarnya melainkan class dari objek tersebut.

Instance adalah kata lain dari objek. Dalam bahasa OOP kita harus terlebih dahulu membuat instance dari class tersebut. Jika Class adalah representasi generik dari objek, instance adalah representasi konkritnya.

Bahasa Java telah menyediakan Class Library, yaitu kumpulan class-class yang telah siap digunakan untuk membuat program-program baru. Class Library telah menyediakan class-class dasar seperti fungsi matematika, array string dan sebagainya hingga ke class untuk graphic, networking dan terutama internetworking (berbasis protokol TCP/IP).

Tujuan & Keuntungan dari Analis Berorientasi Obyek :

Lebih memahami inti permasalahan.
Dalam mengorganisasi analis dan spesifikasi dengan metode yang digunakan cara berpikir manusia.
Mengurangi jarak antara aktivitas analis yang berbeda dengan membuat atribut dan metode menjadi menjadi satu kesatuan.
Pewarisan dapat dilakukan dengan memberikan identifikasi sesuatu yang umum pada atribut dan metode.
Menjaga stabilitas atas perubahan kebutuhan pada system yang sama.
Hasil analisis dapat digunakan kembali.
Menghasilkan penggambaran yang konsisten.