Pemrograman II Sejarah Perkembangan Java

advertisement
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
Download