Minggu, 10 November 2019

Sejarah dan pengertian java



Sejarah Java
Java dipelopori oleh James Gosling, Patrick Naughton, Chris Warth, Ed Frank, dan Mike Sheridan dari Sun Microsystems, Inc pada tahun 1991. Mereka membutuhkan kurang lebih 18 bulan untuk membuat versi pertamanya. Bahasa ini pada awalnya disebut “Oak” tapi kemudian diubah menjadi “Java” pada tahun 1995 karena nama Oak telah dijadikan hak cipta dan digunakan sebagai bahasa pemrograman lainnya. Antara pembuatan Oak pada musim gugur 1992 hingga diumumkan ke publik pada musim semi 1995, banyak orang yang terlibat dalam desain dan evolusi bahasa ini. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank Yellin, dan Tim Lindholm merupakan kontributor kunci yang mematangkan prototipe aslinya.

Apa itu Teknologi JAVA?
1. Sebuah Bahasa Pemrograman
Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source.
Platform Java
Java sebagai platform pengembangan software, secara garis besar dibedakan ke dalam 3 arahan :
§  J2SE
Java 2 Standard Edition mencakup core dari bahasa pemrograman Java, memuat library-library inti yang dibutuhkan seperti IO, Networking dan JDBC.
§  J2EE
Java 2 Enterprise Edition adalah pengembangan Java untuk solusi enterprise, mulai dari aplikasi berbasis Web dengan Servlet dan JSP, aplikasi terdistribusi dengan EJB, sebagaimana aplikasi integrasi enterprise seperti Web Service.
§  J2ME
Java 2 Micro Edition adalah pengembangan Java untuk mobile device, seperti handphone, pocket PC dan PDA. Pengembangan ke arah mobile device ini menuntut Java untuk beradaptasi dengan mesin yang terbatas dalam memory dan processor.
2. Sebuah Development Environment
Sebagai sebuah peralatan pembangun, teknologi Java menyediakan banyak tools : compiler, interpreter, penyusun dokumentasi, paket kelas dan sebagainya.
3. Sebuah Aplikasi
Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE).
4. Sebuah Deployment Environment
Terdapat dua komponen utama dari Deployment Environment. Yang pertama adalah JRE, yang terdapat pada paket J2SDK, mengandung kelas – kelas untuk semua paket teknologi Java yang meliputi kelas dasar dari Java, komponen GUI dan sebagainya. Komponen yang lain terdapat pada Web Browser. Hampir seluruh Web Browser komersial menyediakan interpreter dan runtime environment dari teknologi Java. Algoritma & Pemrograman 1B 2

Mengapa Mempelajari JAVA?
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :
1. Sederhana (Simple)
Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.
2. Berorientasi objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.
3. Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.
4. Interpreted
Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5. Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.
6. Secure
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
7. Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual Machine.
8. Portable
Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.
9. Performance
Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatanInprise, Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT).
10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dynamic
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut. Algoritma & Pemrograman 1B 3






Sebagian Fitur dari JAVA
1. Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi hardware dan platform dimana kompilasi kode Java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun karena proses kompilasi diselesaikan oleh JVM. Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau lebih. Bytecode adalah serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode mesin harus dijalankan pada sistem komputer
dimana kompilasi ditujukan, sementara bytecode berjalan pada java interpreter yang tersedia di semua platform sistem komputer dan sistem operasi.
2. Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan seorang pemrogram mengalokasikan memori pada saat dijalankan. Namun, setelah menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah pemrogram yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana pemrogram tersebut alpa untuk mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama memory leaks. Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objek – objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.
3. Code Security
Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code.
1.      Pertama, class-loader menangani pemuatan kelas Java ke runtime interpreter. Proses ini menyediakan pengamanan dengan memisahkan kelas – kelas yang berasal dari local disk dengan kelas – kelas yang diambil dari jaringan. Hal ini membatasi aplikasi Trojan karena kelas – kelas yang berasal dari local disk yang dimuat terlebih dahulu.
2.      Kedua, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan – aturan dasar bahasa Java.

3.      Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem windowing. Setelah seluruh proses tersebut selesai dijalankan, barulah kode program di eksekusi. Java juga menyediakan beragam teknik pengamanan lain :
1.      Bahasa dirancang untuk mempersulit eksekusi kode perusak. Peniadaan pointer merupakan langkah besar pengamanan. Java tidak mengenal operasi Algoritma & Pemrograman 1B 4 pointer. Di tangan pemrogram handal, operasi pointer merupakan hal yang luar biasa untuk optimasi dan pembuatan program yang efisien serta mengagumkan. Namun mode ini dapat menjadi petaka di hadapan pemrogram jahat. Pointer merupakan sarana luar biasa untuk pengaksesan tak diotorisasi. Dengan peniadaan operasi pointer, Java dapat menjadi bahasa yang lebih aman.
2        Java memiliki beberapa pengaman terhadap applet. Untuk mencegah program bertindak mengganggu media penyimpanan, maka applet tidak diperbolehkan melakukan open, read ataupun write terhadap berkas secara sembarangan. Karena Java applet dapat membuka jendela browser yang baru, maka jendela mempunyai logo Java dan teks identifikasi terhadap jendela yang dibuka. Hal ini mencegah jendela pop-up menipu sebagai permintaan keterangan username dan password.

Memulai Java
Sebelum memulai untuk belajar java, sebaiknya siapkan dulu tools yang diperlukan yaitu JDK atau Java Development Kit J2SE (Java 2 Standard Edition) dari situs http://java.sun.com. Mengapa memilih J2SE? karena yang kita pelajari adalah pemrograman java yang dikhususkan untuk komputer desktop. Tidak bisa hanya menggunakan JRE (Java Runtime Environment) Karena JRE tidak menyertakan paket compiler didalamya. Gunakan JDK karena dalam JDK telah lengkap semua yang kita perlukan dalam pembelajaran disini yaitu compiler maupun runtime environmentnya.
Menuliskan source kodenya ada beberapa IDE atau development environtment atau tool tambahan yang dapat kita pergunakan untuk menuliskan source code java seperti Eclipse atau Netbeans. Namun karena kita sedang mempelajari dasar pemrogramannya, maka saya berinisiatif menggunakan notepad saja supaya kita lebih mamahaminya.

Program JAVA
public class Hello
{
/**
* My first java program
*/
public static void main(String[] args) {
//Menampilkan kata "Hello world" dilayar
System.out.println("Hello world!");
}
}








Pengertian J2ME dan Arsitektur
J2ME adalah lingkungan pengembangan yang didesain untuk meletakkan perangkat lunak Java pada barang elektonik beserta perangkat pendukungnya. J2ME membawa Java kedunia informasi, komunikasi, dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada ponsel, peger, PDA dan sejenisnya.(M. Salahuddin, Rosa A.S, 2006:5).
Menurut (Budi Raharjo 2007:3) J2ME merupakana kombinasi yang terbentuk antara sekumpulan interface Java yang sering disebut Java API (application Programming Interface) dengan JVM (Java Virtual Machine) yang didisain khusus untuk alat, yaitu JVM dengan ruang yang terbatas. Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan aplikasi-aplikasi yang dapat berjalan diatas alat (dalam hal ini mobile device).
J2ME merupakan sebuah kombinasi yang terbentuk antara sekumpulan interface Java yang sering disebut dengan Java API dengan JVM (Java Virtual Machine) yang didesain khusus untuk alat yang memiliki ruang yang terbatas dan berukurang kecil. J2ME di desain khusus untuk perangkat-perangkat komputasi yang berukuran kecil terutama wireless seperti handphone, PDA, smartphone, embedded device dll, J2ME memiliki konfigurasi dan profile yang mendefinisikan kelas Java API yang dapat digunakan oleh aplikasi. dengan menyediakan platform standar untuk pengembangan perangkat wireless, J2ME terdiri atas perangkat-perangkat komponen sebagai berikut : 
  1. Java Virtual Machine (JVM), komponen untuk menjalankan program-program Java pada emulator atau handheld device.
  2. Java Application Programming Interface (API), merupakan kumpulan library untuk menjalankan dan mengembangkan program Java pada Handheld Devices.
  3. Tools lain untuk mengembangkan Java, semacam emulator Java Phone, Emulator Nokia, Emulator Siemens dan Emulator Motorola.

Gambar J2ME Platform

Gambar J2ME Arsitektur


Pada dasarnya J2ME terdiri dari beberapa bagian yaitu konfigurasi, profil dan paket-paket opsional:

J2ME Configuration
J2ME Configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh karena setiap handheld device memiliki fitur-fitur yang berbeda-beda, J2ME Configuration ini dirancang yaitu menyediakan library standar yang mengimplementasikan fitur standar dari sebuah Handled device.
Ada dua kategori J2ME Configuration yaitu :
  1. CLDC ( Connected Limited Device Configuration ) Digunakan untuk aplikasi java pada perangkat-perangkat keras dengan ukuran memori yang sangat terbatas, yaitu pada kisaran 160 samapi 512 KiloBytes, seperti handphone, organizer atau PDA seperti PALM, Poket PC dan two way pagers.
  2. CDC (Connected Device Configuration ) Digunakan untuk aplikasi Java pada Handheld devices dengan ukuran memori paling tidak 2 Megabytes, seperti : Internet TV, Nokia, Communicator dan car television.

Gambar CDC, CLDC

Mobile Information Device Profile (MIDP) MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profil J2ME. MIDP memilik lapisan diatas CLDC, API tambahan untuk daur hidup aplikasi, antar muka, jaringan, dan pemyimpanan persisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan pada MIDP 2.0 dibandingkan MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0 terdapat dukunagan memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya Mobile Media API (MMAPI).

J2ME Profile
J2ME Profile mengimplementasikan kemampuan / fitur lain yang sangat bergantung pada jenis handheld yang digunakan
Ada lima kategori J2ME Profile saat ini, yakni :
  1. Mobile Information Devise Profile, MIDP menyediakan librari-librari java untuk implementasi dasar antarmuka (GUI), imp-lementasi jaringan (networking), database dan timer. MIDP dirancang khususnya untuk wireless phone dan pager.
  2. Foundation Profile, Profile dasar untuk non-GUI network device pada CDC
  3. Personal Profil, RMI Profile, Personal Digital Assistant Profile
Standar grafik, Generasi selanjutnya dari lingkungan personal java, dan RMI yang support untuk CDC dan profile standart device.

Jenis-jenis aplikasi J2ME
Saat ini terdapat dua jenis aplikasi J2ME yaitu:
  • Walled garden application yaitu aplikasi yang berdiri sendiri atau standalone yang berjalan pada handphone tanpa perlu mengakses sumber data eksternal melalui jaringan pembawa atau carier network. Contoh dari aplikasi ini adalah kalkulator atau single player games.
  • Network aware application yaitu aplikasi yang berinteraksi dengan jaringan. Tidak seperti aplikasi pertama, aplikasi ini memiliki kemampuan untuk mengakses sumber daya eksternal. Contoh dari aplikasi jenis ini adalah aplikasi email yang berada pada handphone, aplikasi untuk mendapatkan kembali data alamat-alamat yang tersimpan melalui jaringan, dan pengiriman email berbagai alamat melalui jaringan data.



Tidak ada komentar:

Posting Komentar