ALGORITMA DAN PEMROGRAMAN 3 Java Introduction Sistem Komputer – S1 Universitas Gunadarma JAVA • Java adalah bahasa pemrograman yang multi platform dan multi device. • Java juga dikenal dengan bahasa pemrograman yang berorientasi object. • Java juga sebuah bahasa pemrograman pada komputer sama seperti pendahulunya yaitu C++. LATAR BELAKANG JAVA • Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat consumer seperti cable TV Box. • Perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. • Kebutuhan untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform mengantar tim mempelajari implementasi Pascal yang pernah dicoba. LATAR BELAKANG JAVA • Orang-orang di proyek Green berbasis C++ dan bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan procedural. • Mulanya bahasa yang diciptakan diberi nama “Oak” oleh James Gosling yang mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang terlah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. LATAR BELAKANG JAVA • Nama JAVA terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. • Produk pertama proyek Green adalah Star 7 (*7), sebuah kendali jarak jauh yang sangat cerdas. LATAR BELAKANG JAVA • Dikarenakan pasar masih belum tertarik dengan produk consumer cerdas maka proyek Green harus menemukan pasar lain dari teknologi yang diciptakan. • Pada saat yang sama, implementasi WWW dan Internet sedang mengalami perkembangan pesat. • Di lain pihak, anggota dari proyek Green juga menyadari bahwa Java dapat digunakan pada pemrograman Internet, sehingga penerapan selanjutnya mengarah menjadi teknologi yang berperan di web. KEGUNAAN JAVA • Bahasa JAVA dapat digunakan untuk membuat program berupa: - Aplikasi berbasis teks maupun window - Aplikasi yang terdapat berjalan di halaman web (applet) - Aplikasi untuk perangkat mobile (MIDlet) JAVA PADA TEKNOLOGI WEB JAVA MENGADOPSI KELEBIHAN BAHASA LAIN • JAVA telah mengakomodasi hampir seluruh fitur penting bahasa-bahasa pemrograman yang ada semenjak perkembangan komputasi modern manusia: 1. SIMULA, bahasa pada tahun 65-an, bahasa yang paling memengaruhi JAVA sekaligus C++. Dari bahasa ini diadopsi bentukan dasar dari pemrograman berorientasi objek. 2. LISP, bahasa tahun 55-an. Diadopsi fasilitas garbage collection, serta kemampuan untuk meniru generic list processing, meski fasilitas ini jarang yang memanfaatkannya. JAVA MENGADOPSI KELEBIHAN BAHASA LAIN 3. Algol, bahasa tahun 60-an, diambil struktur kendali yang dimilikinya. 4. C++, diadopsi sintaks, sebagian semantics dan exception handling. 5. ADA, diambil strongly type, dan exception handling. 6. Objective C, diambil fasilitas interface. 7. Bahasa SmallTalk, diambil dari pendekatan single-root class hierarchie, dimana objek adalah satu kesatuan hirarki pewarisan. 8. Bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian JDK 1.4. JAVA MENGADOPSI KELEBIHAN BAHASA LAIN 3. Algol, bahasa tahun 60-an, diambil struktur kendali yang dimilikinya. 4. C++, diadopsi sintaks, sebagian semantics dan exception handling. 5. ADA, diambil strongly type, dan exception handling. 6. Objective C, diambil fasilitas interface. 7. Bahasa SmallTalk, diambil dari pendekatan single-root class hierarchie, dimana objek adalah satu kesatuan hirarki pewarisan. 8. Bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian JDK 1.4. TEKNOLOGI JAVA • Bahasa Pemrograman • Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi, desktop, web dan lainnya. • Sebuah Development Environtment • Sebagai sebuah peralatan pembangun, teknologi JAVA menyediakan banyak tools: compiler, interpreter, penyusun dokumentasi, paket kelas dan sebagainya. TEKNOLOGI JAVA • Sebuah Aplikasi • Aplikasi dengan teknologi JAVA secara umum adalah aplikasi serbaguna yang dapat dijalankan pada seluruh mesin yang memiliki JAVA Runtime Environtment (JRE). • Sebuah Deployment Environtment • JRE, yang terdapat pada paket J2SDK, mengandung kelaskelas untuk semua paket teknologi JAVA yang meliput kelas dasar dari JAVA, komponen GUI dan sebagainya. • Komponen yang lain terdapat pada Web Browser TEKNOLOGI JAVA • Sun Microsystem telah mengeluarkan beberapa buah paket yang disebarkan melalui internet. - JDK (Java Development Kit), berisi compiler maupun interpreter JAVA - JRE (Java Runtime Environtment), hanya berisi interpretes JAVA - JME (Java Micro Edition), compiler untuk pemrograman mobile - Editor, lingkungan visual untuk melakukan koding, ex: Netbeans, Notepad++, Eclipse KARAKTERISTIK JAVA • Sederhana • • • • Sintaksnya mirip C++ Menghilangkan pointer yang rumit Menghilangkan multiple inheritance Menggunakan automatic memory allocation dan memory garbage collection • Berorientasi Objek • Murni berorientasi objek (program yang reusable) • Terdistribusi • Aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi. KARAKTERISTIK JAVA • Interpreted • Program JAVA dijalankan menggunakan interpreter yaitu JVM sehingga hasil terjemahan source code JAVA yang berupa bytescodes dapat dijalankan pada platform yang berbeda-beda. • Robust • Compiler pada JAVA mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain serta mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman. KARAKTERISTIK JAVA • 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. • Architectural Neutral • Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan JVM KARAKTERISTIK JAVA • Portable • Source code maupun program JAVA dapat dengan mudah dibawah ke platform yang berbeda-beda tanpa harus dikompilasi ulang. • Performance • JAVA dapat ditingkatkan menggunakan kompilasi JAVA lain seperti buatan Inprise, Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT). KARAKTERISTIK JAVA • Multithreaded • Fasilitas pemrograman pararel beberapa pekerjaan sekaligus) (dapat melakukan • Dynamic • Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa mengganggu program yang menggunakan class tersebut. FASE PEMROGRAMAN JAVA COMPILER & INTERPRETER • Compiler dan Interpreter adalah program yang digunakan untuk merubah (menerjemahkan) kode program yang mirip bahasa manusia menjadi bahasa yang dimengerti oleh mesin (prosesor) agar dapat diproses. • Compiler menerjemahkan per sedangkan interpreter per baris. blok kode program, COMPILER & INTERPRETER • Contoh Compiler: - Turbo Pascal (produksi Borland) untuk bahasa Pascal - Gcc yang berjalan di Linux untuk bahasa C/C++ - Visual Basic (produksi Microsoft) untuk bahasa Basic berbasis window • Contoh Interpreter: - Command.com adalah interpretes DOS produksi Microsoft - MySQL adalah salah satu interpretes SQL Tugas.pas Tugas.exe Begin ……… ……… ……… End Menjadi file program berformat biner berisi bahasa mesin compile COMPILER & INTERPRETER DOS / Windows run PROCESSOR DOS / Windows Tugas.java Tugas.class ……… ……… ……… ……… ……… Menjadi file berformat byte-code compile PROCESSOR Linux PROCESSOR MacOS interpret PROCESSOR CONTOH SOURCE CODE JAVA Public class Hello { /** My First Program Java */ public static void main(String[]args){ //Menampilkan kata “Hello World” dilayar System.out.println(“Hello World!”); } } PENJELASAN SOURCE CODE JAVA • Public : program bersifat umum • Static : Karakteristik tetap pada kelas ini • Void : Fungsi kelas ini tidak mengembalikan suatu nilai • Main : Fungsi utama • String [] args : Fungsi kelas ini dapat menerima argument ketika dijalankan dan argument ini adalah string yang berbentuk larik atau bisa lebih dari satu argumen KOMENTAR PADA PROGRAM • Menambahkan komentar 1 baris digunakan tanda “//” Contoh : //Menampilkan kata “Hello World” dilayar • Menambahkan komentar lebih dari 1 baris diguanakan tanda “ /* statement */ “ Contoh : /* ini komentar beberapa kalimat Atau pernyataan */ COMPILE PROGRAM JAVA • Pada Command Prompt, Compile javac namafile.java • Running Program java namafile COMPILE PROGRAM JAVA KELEBIHAN BAH. PEMROG. JAVA • Multiplatform • Dapat dijalankan di beberapa platform/sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. • Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS, dan Sun Solaris. • Penyebabnya adalah OS menggunakan programnya sendiri-sendiri (yang dapat diunduh di situs java) untuk menginterpretasikan bytecode tersebut. KELEBIHAN BAH. PEMROG. JAVA • OOP (Object Oriented Programming) • Metode pemrograman yang berorientasi objek. • Tujuan dari OOP adalah untuk mempermudah pengembangan program dengan mengikuti model yang telah ada di kehidupan sehari-hari. • Jadi, setiap bagian dari suatu permasalahan adalah objek. • Objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. KELEBIHAN BAH. PEMROG. JAVA • Library/Kumpulan Fungsi Lengkap • Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. • Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas JAVA yang besar yang terus menerus membuat library JAVA. KELEBIHAN BAH. PEMROG. JAVA • Bergaya C++ • Memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke JAVA. • Sebagian besar adalah pemrogram C++ berpindah ke Java. KELEBIHAN BAH. PEMROG. JAVA • Pengumpulan sampah/Pengaturan penggunaan memori • Memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). KEKURANGAN BAH. PEMROG. JAVA • Tulis sekali, jalankan di mana saja • Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. KEKURANGAN BAH. PEMROG. JAVA • Mudah didekompilasi • Dekompilasi adalah proses membalikan dari kode jadi menjadi kode sumber. • Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. • Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer. KEKURANGAN BAH. PEMROG. JAVA • Penggunaan memori yang banyak • Penggunaan memori untuk program berbasis JAVA jauh lebih besar daripada tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object pascal). END OF FILE • Thank You ….