Pemrograman 2 Pengenalan Java dan Object-Oriented Programming M. Tanzil Furqon, S.Kom Ilmu Komputer Universitas Brawijaya Sejarah Java Diperkenalkan pertama kali oleh Sun Microsystem, sebuah tim yang dipimpin oleh Patrick Naughton & James Gosling pada 1991 dengan code name Oak. Pada 1995 Sun mengubah nama Oak tersebut menjadi Java. Java dibuat karena adanya motivasi untuk membuat bahasa pemrograman yang portable & platform independent (tidak tergantung mesin & sistem operasi). Pengenalan Java Teknologi Java diadopsi oleh Netscape tahun 1996, JDK 1.1 diluncurkan tahun 1996, kemudian JDK 1.2, berikutnya J2EE (Java 2 Enterprise Edition) yang berbasis J2SE yaitu servlet, EJB dan JSP, dan yang terakhir adalah J2ME (Java 2 Micro Edition) yang diadopsi oleh Nokia, Siemens, Motorolla, Samsung dan SonyErison. Meskipun ada anggapan yang salah bahwa munculnya Java karena adanya internet, namun hal ini (internet) memang membantu menjadikan Java sangat terkenal yang pada akhirnya fokus penggunaan Java beralih menjadi pemrograman untuk internet. Java & WWW Ketenaran Java sebagai bahasa pemrograman web mengakibatkan kerancuan, yaitu menganggap Java sama dengan JavaScript. Walaupun keduanya menggunakan bahasa pemrograman yang mirip namun secara esensi keduanya berbeda. JavaScript merupakan scripting language yang digabung dengan HTML yang tidak memerlukan kompilasi karena ia hanya diinterpretasikan, dimana web browser yang bertanggungjawab untuk melakukannya. Java & WWW (2) Sedangkan Java merupakan full programming language, yang secara esensi sama dengan bahasa pemrograman yang lain seperti VB dan C++, dimana agar dapat digunakan, kode Java harus dikompilasi menjadi bentuk yang dapat dieksekusi oleh run-time system Java (Java Virtual Machine). Program Java tidak dieksekusi oleh web browser melainkan web browser hanya bertindak sebagai kontainer yang memungkinkan Java tersebut dapat dieksekusi didalamnya. Java Bytecode Java didesain dengan konsep once run anywhere, maka hasil kompilasinya bukan merupakan native code seperti yang dihasilkan VB,C,C++. Hasil kompilasi Java adalah bytcode, yang merupakan sekumpulan instruksi yang sangat teroptimasi. Sehingga bytecode tersebut dapat diakses langsung seolah-olah oleh microprosessor. Program inilah yang dikenal dengan JVM (java virtual machine). JVM itu sendiri merupakan interpreter dari bytecode. Java Bytecode (2) Dengan mengonversi source code menjadi bytecode, memungkinkan suatu program dapat dieksekusi di lingkungan yang berbeda (multiplatform). Yang diperlukan hanyalah JVM yang harus diimplementasikan di setiap platform dimana bytecode itu akan di eksekusi, sedangkan bytecode-nya tetap sama, tidak ada perubahan sama sekali. Hal ini sangat memudahkan programmer karena ia tidak perlu memikirkan dimana program yang dibuatnya akan di eksekusi. Distribusi aplikasi java .jar (+ lib) Ilustrasi Kode Program Java Java Compiler Java Aplication / Java Class Virtual Machine/Java Interpreter Machine Kelebihan Java 1. 2. 3. 4. 5. 6. Bersifat Portable & Platform Independent Memiliki garbage collection yang dapat mendealokasi memori secara otomatis Menghilangkan pewarisan berganda yang terdapat pada C++ Mengurangi pointer aritmetik. Penggunaan pointer pada Java telah dibatasi dengan menggunakan reference Memiliki array sejati Mengurangi kerancuan antara pemberian nilai pada statemen kondisional (“=“ dengan “==“ pada kondisi IF) Karakteristik Java 1. Berorientasi objek 2. Robust; mendorong pemrograman yang bebas dari kesalahan (bersifat strongly typed & memiliki runtime checking) 3. Portable 4. Multithreading (terintegrasi) 5. Dinamis 6. Sederhana 7. Terdistribusi 8. Aman 9. Netral secara arsitektur (independent machine/system) 10. Interpreted (universal executed) 11. Berkinerja tinggi Java Requirements Java Requirements J2SE (Java 2 Standard Edition), JDK (Java Development Kit) dan dokumentasi API (Application Programming Interface) Java. Editor Netbeans, Eclipse, JCreator, dll. Didalam JDK juga terdapat compiler Java (javac) yang digunakan untuk mengkompilasi source code Java dan interpreter Java (java) yang digunakan untuk mengeksekusi bytcode yang dihasilkan oleh compiler Java. Teknologi Java2Platform Enterprise Edition(J2EE) server-based function Standard Edition (J2SE) standard function Micro Edition (J2ME) small-ranged application What is the Java Technology? A programming language A development environment An application environment A deployment environment A programming language Sintak bahasa pemrograman java mirip dengan bahasa C++ A development environment Teknologi java menyediakan: kompiler, interpreter, documentation generator, class file packaging. An application environment Merupakan standalone program yang tidak memerlukan web browser untuk mengeksekusi program (applet). Contoh applet browser-based plugin (ex: multimedia player di web) A deployment environment Terdapat 2 deployment environment utama: JRE (Java Runtime Environment) yang menyediakan class-class yang tersimpan dalam package-package, komponen GUI class, dan Collection API. Web browser banyak web browser komersial yang menyediakan lingkungan Java Technology interpreter dan runtime. Pemrograman 2 Structured vs Object-Oriented Pemrograman Terstruktur Istilah Pemrograman Terstruktur (Structured Programming) mengacu dari suatu kumpulan tehnik yang dikemukan oleh Edsger Dijkstra. Dengan teknik ini akan meningkatkan produktifitas programmer, dengan mengurangi waktu yang dibutuhkan dalam penulisan (write), pengujian (test), penelusuran kesalahan (debug) dan pemeliharan (maintain) suatu program. Pemrograman Terstruktur (2) Serangkaian tugas diselesaikan dalam bentuk fungsi atau prosedur. Cara pandang program adalah suatu urutan instruksi. Programer harus me-break down suatu problem menjadi sub problem yang lebih simple. Fungsi dan prosedur menjadi fokus utama. Fungsi dan prosedur digunakan untuk memanipulasi data. Data bersifat pasif. Pemrograman Berorientasi Obyek Fungsi dan data bukan menjadi dua hal yang terpisah. Fungsi dan data menjadi satu kesatuan yang disebut sebagai obyek aktif. Cara pandang program adalah serangkaian obyek yang bekerjasama untuk menyelesaikan suatu problem. Pemrograman Berorientasi Obyek (2) Now Structured+Object Oriented Programming (OOP) OOP create and work with object in structured progamming Structured vs Object-Oriented Focusing on the way a computer handles tasks Focusing on the task you are using the computer for Contoh Kasus Pembuatan tipe data Titik : typedef struct{ Int x; Int y } Titik Titik Koordinat; Koordinat adalah sebuah variabel bertipe Titik yang didalamnya terdiri atas elemen variabel x dan y dimana cara pengaksesannya adalah: Koordinat.X=10; Koordinat.Y=15; Pada konsep diatas kita dapat membuat banyak variabel dengan tipe titik akan tetapi dalam tipe titik tersebut kita tidak dapat menambahkan suatu fungsi atau prosedur untuk melakukan modifikasi titik Variabel koordinat tidak bisa menyimpan fungsi atau prosedur untuk melakukan modifikasi terhadap data yang di simpannya Solusi ?? Object (state + behaviour) variables + method TERIMAKASIH