By. Rita Wiryasaputra Pengenalan bahasa Java Konsep bahasa pemrograman Java Operator dan assignment Array Class Pewarisan Encapsulation Polymorphism Collection (list, vektor) J2ME (Pada perangkat bergerak) J2EE sekarang menjadi JEE (Pada Web based Aplication) Java Card (pada penggunaan Smart Card) ... Enterprise Java (J2EE) aplikasi berbasis web, aplikasi sistem tersebar dengan beraneka ragam client berkompleksitas tinggi. Merupakan superset dari Standar Java Standar Java (J2SE) biasa dikenal bahasa Java Micro Java (J2ME) subset J2SE dan salah satu aplikasi yang banyak dipakai adalah untuk wireless device / mobile device Ide bahasa pemrograman berorientasi objek yang dirancang agar lebih mudah dipakai dengan platform independent (dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer) 1991 lahir Bahasa pemrograman Java dari The Green Project (James Gosling dkk dari sun microsystems) dengan Teknologi *7 (Star Seven) James Gosling (bahasa pemrograman OAK) Sun mengubahnya menjadi Java 1996 Sun merilis versi awal java selanjutnya JDK 1.1,JDK 1.2 ; mulai versi ini disebut java2 1998-1999 teknologi J2EE(Enterprise Edition) J2ME(Micro Edition) diadopsi oleh Nokia, Siemens, SonyEricsson, Motorola untuk menghasilkan aplikasi mobile baik games yang dapat dijalankan diperalatan mobile (handphone) Multiplatform dapat dijalankan di beberapa platform (sistem operasi komputer); prinsip write once, run every where OOP (Object Oriented Programming) semua aspek pada Java adalah Objek. Library lengkap kumpulan program yang disertakan dalam pemrograman java untuk memudahkan pembanguan aplikasi Sintaks bahasa pemrograman [C++] pemrogram C++ untuk pindah ke Java. menghasilkan program dengan seminimal mungkin bug garbage collection memiliki array yang tidak memerlukan pointer sehingga memudahkan para programmer. menghilangkan multiple inheritance pada c++ dan menggunakan interface yang memiliki kemampuan sama tetapi lebih sederhana. menghilangkan banyak kebingungan terjadi apabila terjadi proses assignment(pemberian nilai) pada statemen konditional seperti berikut: if (varnya=5) Kode di atas menyebabkan program Java tidak dapat dikompilasi karena Java membedakan tanda = yang digunakan untuk pemberian nilai dan untuk pengecekan kondisi true atau false yang harus menggunakan tanda = ganda (==). Java bersifat Neutral Architecture Compiler java menghasilkan kode yang netral terhadap seluruh arsitektur mesin komputer Java bytecode Umumnya aplikasi komputer (native code) disesuaikan dengan arsitektur mesin Java Virtual Machine (JVM) menginterpretasikan kode-kode bytecode kedalam native code mesin tersebut OOP semua aspek di Java adalah objek. Semua tipe data diturunkan dari kelas dasar Object. Keuntungan : memudahkan programmer untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan program secara cepat, tepat, mudah dan terorganisir. Tujuan menghilangkan alokasi memori dan dealokasi memori secara manual. Garbage collection fasilitas pengaturan penggunaan memori sehingga programmer tidak perlu melakukan pengaturan memori secara langsung (mencegah adanya memory leak) Memory leak masalah yang sering dihadapi programmer c dan c++ dimana memori yang digunakan untuk objek atau variabel yang sudah tidak digunakan tidak didealokasikan sehingga memungkinkan adanya kehabisan memori karena proses alokasi maupun dealokasi yang tidak diatur dengan baik. J2SDK: seperangkat tool (kit) berisi kompiler dan interpreter java (dirilis SUN), bersifat Free www.sun.com Nama Program Keterangan javac Kompiler java interpreter jdb debugger javap Disasembler appletviewer Penampilan applet Javadoc Pembangkit dokumentasi javah Pembangkit berkas header C Interpreter Kompiler Menerjemahkan instruksi per instruksi Soure program tidak harus Menerjemahkan secara keseluruhan ditulis Source program ditulis lengkap lengkap Bila terjadi kesalahan kompilasi, dapat Bila langsung dibetulkan secara interaktif terjadi kesalahan kompilasi, source program harus dibenarkan dan proses kompilasi diulang kembali Tidak menghasilkan objek program Tidak menghasilkan Menghasilkan objek program executable Menghasilkan executable program, program karena langsung dijalankan sehingga dapat dijalankan di keadaan pada saat program diinterpretasi prompt sistem Proses interpretasi terasa cepat, Proses karena tiap-tiap kompilasi lama, karena instruksi sekaligus menerjemahkan seluruh langsung dikerjakan dan dapat instruksi program dilihat hasilnya Source program dipergunakan karena terus Source program tidak dipergunakan dihasilkan executable program sudah lagi tidak untuk mengerjakan program Proses pengerjaan program lebih Proses pengerjaan program lebih lambat, karena setiap instruksi cepat, karena executable program dikerjakan harus sudah dalam bahasa mesin diinterprestasikan ulang kembali Keamanan dari program kurang Keamanan terjamin, digunakan program karena yang adalah dari program lebih selalu terjamin, karena yang dipergunakan source executable program. Sederhana menggunakan sintaks c++ berorientasi objek semua adalah objek, terkecuali tipe data primitif dapat didistribusikan dengan mudah tampak sebagai applet dan library yang mampu bekerja dalam jaringan dan bekerja dengan objek terdistribusi (RMI). Saat ini Java juga memiliki kemampuan untuk server side processing yaitu teknologi Java Servlet dan Java Server Pages. Aman library security serta policy yang membatasi akses applet di komputer client. diinterpretasi oleh interpreter memerlukan virtual machine yang bertindak sebagai interpreter yang menterjemahkan bytecode (file class) menjadi bahasa mesin yang dimengerti oleh komputer host Portabel dijalankan di berbagai platform tanpa perubahan kode sama sekali Multithreading kemampuan menangani dan menjalankan banyak thread sekaligus Dinamik teknologi yang terus berkembang (library) netral terhadap arsitektur hardware dijalankan pada arsitektur berbeda Robust menghasilkan program secara cepat dan handal karena pencegahan memory leaking, meniadakan pointer(yang merupakan keharusan pada programmer c dan c++) serta mencegah berbagai error yang mungkin terjadi dengan adanya berbagai proses pengecekan awal pada kompilasi. Apa yang membedakan? Bagaimana Merubahnya? Procedural Approach Data Structures can be represented as a network of associated structures, referring to one another. Procedures can be represented as a network of routines which call one another, i.e., "call tree" Object Oriented Approach Collection of discrete objects that incorporate data structures and behavior. Each data structure has, combined with it, the procedures which apply to that data structure. Contrasts with conventional programming in which data structures and behavior are only loosely connected These entities, called objects, can be associated to one another in one network, rather than two. Koordinat adalah sebuah variabel bertipe Titik dimana terdiri atas elemen variabel x dan y Banyak variabel dengan tipe titik, tetapi tidak dapat melakukan modifikasi tipe titik (menambahkan fungsi/prosedur) Variabel koordinat tidak bisa menyimpan fungsi/prosedur untuk melakukan modifikasi terhadap data yang di simpannya typedef struct Int x; Int y { } Titik Titik Koordinat; Koordinat.X=10; Koordinat.Y=15; Pendekatan berorientasi objek memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata. Setiap objek yang dimodelkan terpisah satu sama lain dengan objek lainnya. Objek bersiklus hidup: diciptakan, dimanipulasi, dan dihapus. Meliputi : Abstraksi objek, kelas, hubungan antar kelas sampai abstraksi sistem. Sesuatu dapat disebut sebagai objek apabila ada ciri-ciri yang tersirat dalam objek tersebut, mampu menyimpan informasi (status/state) dan mempunyai operasi (kelakuan/behaviour) yang dapat diterapkan atau dapat berpengaruh pada status objeknya. Penentuan sebuah objek dilakukan secara relatif. objek adalah instan dari kelas yang dibentuk secara seketika dari kelas pada saat eksekusi (seperti halnya deklarasi variabel pemrograman prosedural ) Objek memiliki ciri-ciri yang relatif umum objek pasti dapat dispesialisasikan lebih lanjut / diberikan ciri yang lebih khusus. Misalnya : Rekening bank dispesialisasikan lagi menjadi rekening tabungan atau rekening deposito. Mahluk hidup dispesialisasikan lagi menjadi binatang, tumbuhan atau manusia Contoh Objek : merupakan sesuatu yang real/nyata Misal : mahluk hidup, alat transportasi, dll merupakan sesuatu yang abstrak Misal : rekening bank, sinyal, dll. Ciri-ciri yang dimiliki sebuah objek : Karakteristik pasif Ciri-ciri yang secara pasif menunjukan status keadaan/state dari sebuah objek. seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Karakteristik aktif Ciri-ciri fungsional yang menunjukan kemampuan operasional/kelakuan dari sebuah objek. seperti mobil dapat melaju, membelok, membunyikan klakson, dll Sifat – sifat objek : Encapsulation / Pembungkusan Inheritance / Penurunan Sifat Polymorphism / Perubahan Perilaku Encapsulation (Pembungkusan) sebagai satu kesatuan yang lengkap meliputi properti (Karakteristik pasif) dan metode (Karakteristik aktif) yang dimiliki objek Bertujuan menyembunyikan kompleksitas operasi pada objek. Keuntungan: Modularitas Setiap objek dapat dikelola secara independen Setiap objek dikemas secara utuh dengan segala kelengkapan. Setiap objek dengan demikian akan bersifat unik terhadap objek lainnya. Penyembunyian kompleksitas operasi Kerumitan operasi yang terkandung dalam metode objek menjadi tersamar. Terlindungnya kode program dari kemungkinan modifikasi pihak lain. Inheritance (Penurunan sifat) terjadi dalam 2 tingkatan objek. Tingkat pertama pendefenisian kelas berbasis kelas lain yang telah ada sebelumnya. Tingkat kedua pembentukan instan terhadap sebuah kelas Penurunan sifat satu arah dari objek yang lebih tinggi tingkatannya (sebagai objek parent) ke objek turunannya (sebagai objek child / instant). Tidak terjadi sebaliknya. Polymorphism metode sama yang dapat menyajikan operasi yang berbeda Berkaitan dengan defenisi metode dalam setiap objek. Memanfatkan overloading terhadap fungsi dan objek. Overloading bentuk pendeklarasian ulang fungsi / operasi untuk menangani beberapa kasus yang berbeda dengan operasi yang sejenis Digunakan untuk meningkatkan kemampuan fungsi / operasi dalam menangani data yang berbeda dengan perlakuan yang sama. Atribut Layanan Klasifikasi Atribut ciri (nilai/elemen data) dari sebuah objek Dimiliki secara individual oleh sebuah objek Contoh: berat, warna, jenis, nama, dan sebagainya Layanan (Service) Metode/operasi yang berfungsi untuk memanipulasi objek itu sendiri. Dapat berasal dari: model objek event aktivitas atau aksi keadaan fungsi kelakuan dunia nyata Contoh: Read, Write, Move, Copy dan sebagainya. ADT (Abstract Data Type) Definisi dari class dimana komponen type menjadi atribut dan fungsi primitif menjadi operasi/metode/layanan. Mesin Objek pasif dengan status yang akan diaktifkan oleh objek lain. Proses Objek aktif yang mempunyai “urutan kendali” (thread of control) Note: Fungsi primitif pada mesin merupakan mekanisme transisi yang mengubah suatu status ke status lain. Class kumpulan objek berkarakterikstik sama definisi statik dari himpunan objek yang sama yang mungkin lahir atau diciptakan dari kelas tersebut. Misal : Program simulasi ATM objek-objek Nasabah, Kartu ATM, Mesin ATM, Rekening Mempunyai sifat (atribut), (relationship) dan arti. kelakuan (operasi), hubungan Dapat diturunkan dari class lain, dimana atribut dari class semula dapat diwariskan ke class baru. Ibaratkan sebuah rancangan rumah yang digunakan untuk membangun ratusan rumah. Rumah yang dibangun tersebut objek dari kelas rancangan rumah. Hal ini dapat dilakukan karena semua objek rumah yang dibangun memiliki karakteristik yang sama, sehingga dapat dibuatkan semacam blueprint-nya. Objek model eksekusi (timbul saat eksekusi) Class deskripsi statik dari objek (timbul dalam pemodelan analisis dan perancangan serta teks program) Aktivitas kuliah pada sistem akademik Secara eksplisit 3 objek : Dosen memberikan kuliah Mahasiswa mengikuti kuliah Materi Kuliah yang disampaikan Secara implisit 2 objek : Jadwal kapan kuliah diadakan Nilai yang didapat mahasiswa dari kuliah yang sudah diikutinya Notepad editor standard yang disediakan oleh windows. Tidak dilengkapi dengan utilitas jumlah baris (berpengaruh pada pelacakan baris program yang menyebabkan error kompilasi) contoh Ms Dos Edit,Editor windows Notepad/Wordpad, mempunyai file otomatis dengan ekstensi .txt Beri penambahan ekstensi .java untuk setiap penyimpanan program java Gel 1.Editor yang hanya bekerja di windows dan mengenali reserve keyword dari beberapa bahasa seperti java, html, C/C++ shg dapat digunakan secara meluas 2.Terdapat fasilitas untuk pelacakan baris program yang menyebabkan error kompilasi Editor-editor lain: Eclipse, Netbeans, Jbuilder, Jcreator dll Case sensitive, penggunaan huruf kapital dan kecil memiliki arti yang berbeda. Spasi kosong, spasi kosong yang dapat terdiri dari beberapa karakter, tab, dan ganti baris diabaikan dalam java. Kurung kurawal, kurung kurawal adalah simbol yang menandai awal dan akhir suatu blok program. Komentar teks yang menerangkan kode, tetapi tidak dibaca sebagai program. Tujuan : membantu programmer maupun orang lain dalam mendefinisikan program. Komentar berisi hal-hal sebagai berikut: Tujuan dan fungsi dari program Hak cipta Nama pembuat program Tanggal pembuatan serta perubahan program Keterangan-keterangan lain yang diperulkan Dua bentuk komentar, yaitu: Komentar baris (//komentar) Contoh: //Nama file: hello.java Komentar paragraf (/* komentar */) Contoh: /* Nama program: Contoh pemrograman Java Nama file: hello.java */ /* nama file : hello.java deskripsi : merupakan program percobaan Java pertama yang menampilkan Hallo, apa kabar dibuat oleh : Rita W. kompilasi: javac hello.java konversi ke class eksekusi: java hello jalankan dengan nama */ package hello; public class Main //pendefinisian class bernama Main { public static void main(String[] args) { System.out.println ("Hallo, apa kabar"); System.out.print (“test”); } } public class hello{ .... } Pendefinisian class dengan modifier public agar dapat dikompilasi dan dijalankan oleh Java VM. Sintaks dasar utama sebuah file program Java adalah sintaks definisi class seperti berikut : [modifier] [class] namaclass { .... } public static void main (String [ ] args) { .... } Kode program ini adalah bagian utama, karena bagian ini pertama kali dijalankan/tempat dimulainya program dieksekusi. Jika tidak ada method ini maka akan keluar pesan kesalahan: Exception in thread “main”.java.lang.NoSuchMethodError: main public static void main java. string args :Salah satu macam modifier. :Tipe method. :Menunjukkan bahwa method tidak mengembalikan nilai atau objek. :Nama method utama dari program :Tipe argumen yang diterima untuk parameter dari command java. :Array argumen yang bisa ditambahkan pada saat menggunakan command java untuk menjalankan program java. System.out.println ("Hallo apa kabar"); Fungsi menampilkan pada konsol data yang dimasukkan sebagai parameter Tipe data String (diinputkan sebagai parameter pada method println() Untuk menginputkan data karakter atau numerik sebagai String maka diawali dan diakhiri dengan tanda “ ”