FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS BUDI LUHUR Pemrograman Berorientasi Objek www.bl.ac.id Pengenalan Java HAL : 1 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR PBO • Mata Kuliah MKM (Mata kuliah Kendali Mutu) • Bobot 3 SKS • Penilainan : – Absen : 10 – Tugas : 20 – MidTest : 30 – FINAL : 40 HAL : 2 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Pengenalan Java • Sekilas Sejarah Java 1995 : pertama diluncurkan sebagai bahasa pemrograman umum, dibuat oleh Sun Microsystem. Dibuatlah JVM (Java Virtual Machine) yaitu tempat eksekusi program Java dimana para objek saling berinteraksi satu sama lain. HAL : 3 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Untuk lebih meningkatkan produktivitas pengembang perangkat lunak, Sun juga meluncurkan SDK (Standard Development Kit) yang berisi kakas dan API untuk membuat program aplikasi berbasis Java. Java pada awalnya diluncurkan J2SE, yang digunakan untuk membuat aplikasi-aplikasi standar. HAL : 4 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Tahun 1999, Sun meluncurkan J2EE (Java 2 Enterprise Edition) sebagai framework untuk membuat aplikasi enterprise berskala besar • Tahun 2001, Sun meluncurkan J2ME yang menjadi salah satu standar pemrograman di dalam PDA maupun handphone HAL : 5 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Konsep Object-Oriented • Ide dasarnya adalah menggabungkan data dan fungsi menjadi satu kesatuan unit yang dikenal sebagai object. HAL : 6 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Beberapa hal yang perlu diketahui dalam membangun aplikasi dengan konsep OOP, diantaranya sbb : 1. Objek 2. Classification a. Abstraction b. Encapsulation c. Constructor (Single Constructor, Constructor dengan parameter dan Multiple constructor) d. Inheritance e. Polymorphism 3. Package HAL : 7 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Objek • Objek = Hal • Punya Fungsi • Menghasilkan output dari fungsi yang mengolah data HAL : 8 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Objek • Di real-world, tiap obyek memiliki ciri dan tingkah laku (behavior). • Misalnya : Obyek-obyek mhs, ciri bisa dilihat dari warna kulit, suara, jenis kelamin. Tingkah laku : berlari, menulis, makan. • Di programming, ciri dari tiap obyek diimplementasikan menjadi “attribute” (atau variabel) • Tingkah laku diimplementasikan menjadi “method” (atau fungsi) HAL : 9 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Contoh : – Pada Balok: • Objek : balok • Data : panjang, lebar dan tinggi • Fungsi : menghitung volume dan menghitung luas permukaan balok itu – Untuk menghitung volume dan luas permukaan beberapa Balok, maka harus ada beberapa objek balok. – Tiap Objek memiliki Data dan fungsi sendirisendiri HAL : 10 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Classification • Disebut juga Class • Class bersifat abstrak • Di real-world, kita sering melihat banyak obyek dengan model yang sama. Obyek-obyek tersebut bisa memiliki perbedaan atau tidak. • Misalnya : Mobil, mahasiswa • Class adalah blueprint dalam membentuk obyek • Obyek-obyek yang sama adalah merupakan anggota dari suatu kelas. HAL : 11 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh Class Mahasiswa NIM : Nama: Menulis, Kuliah, Makan, Buku No. Buku: Judul: Dibaca, Disampul Nama class atribut Metoda/ method HAL : 12 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Mahasiswa NIM : 0311500325 Nama : Dewi Menulis, Kuliah, Makan, Buku No.Buku : K001 Judul : PBO Dibaca, disampul HAL : 13 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Contoh hubungan Antara Kelas dan Obyek Obyek = an instance of Person Budi Lusi Sri HAL : 14 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Perbedaan Class dengan Objek : – Class merupakan desain dan objek merupakan perwujudan suatu Class – Class bersifat abstrak dan objek bersifat kongkrit HAL : 15 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Classification : adalah suatu proses pembuatan class. secara umum sebuah class java didefinisikan sbb: class NamaClass { definisi_data_member; definisi_member_function } HAL : 16 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • • Data member (anggota data) : variabelvariabel yang menyatakan karakteristik suatu objek contoh sebuah objek Balok mempunyai karakteristik yang dinyatakan dengan panjang, lebar dan tinggi. Member function (fungsi anggota) : fungsifungsi yang bertugas memanipulasi nilai pada data member. Fungsi yang paling sering ada pada sebuah objek adalah fungsi untuk mengubah dan menginformasikan nilai dari data member objek. HAL : 17 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Abstraction • Yaitu suatu proses dimana kita melakukan desain class dan menetukan data dan method yang akan dimiliki oleh sebuah class. • Contoh : sebuah bangunan geometri lingkaran, dideskripsikan sbb: Bahwa lingkaran memiliki jari-jari, (radius atau r) untuk menyatakan ukurannya. Sehingga semakin besar jari-jarinya maka semakin besar pula lingkaran yang akan dihasilkan. HAL : 18 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Jadi jari-jari adalah data yang dimiliki sembarang lingkaran, sehingga jari-jari merupakan karakteristik dari sebuah lingkaran. • Berdasarkan fakta diatas maka kita membuat class untuk objek lingkaran. bisa HAL : 19 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Contoh : nama class lingkaran karakteristiknya sbb : - memiliki jari-jari - memiliki beberapa method * mengubah nilai jari-jari, * memperoleh informasi jari-jari * menghitung luas lingkaran, * menghitung keliling lingkaran HAL : 20 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Membuat format class berdasarkan karakteristik tersebut diatas : class Lingkaran { data: jari-jari method: update jari-jari informasi jari-jari hitung luas hitung keliling } • Sampai disini tahap perencanaan class bisa dianggap selesai, kemudian pada bagian selanjutnya dilakukan implementasi calss ini secara mendetail. HAL : 21 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Encapsulation • Merupakan inti dari metode OOP dimana data objek dilindungi dari perubahan secara langsung dari luar objek tersebut. • Dimana perubahan secara langsung bisa berakibat data didalam objek mengalami “bad value” yang pada akhirnya berimbas tidak berfungsinya sebuah objek sebagaimana yang dikehendaki HAL : 22 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Memang suatu ketika lingkungan luar memerlukan informasi dari objek kita, atau ingin mengubah data yang tersimpan didalam objek, tentu saja harus ada mekanisme untuk mengubah data objek dan menginformasikan data tersebut kelingkungan luarnya. Dan tentu saja kita juga harus bisa memilahmilah data mana yang harus dipublish keluar dan data mana yang hanya boleh diketahui oleh lingkungan dalam objek. HAL : 23 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Pengenalan Lingkungan Java • Program Java akan melalui 5 tahap proses, yaitu: – Edit – – – – Compile Load Verify Execute HAL : 24 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR A. Edit • Menulis program java dengan menggunakan program editor seperti JCreator, Notepad, dll • Disimpan dengan ekstensi file .java • Misal : HelloWorld.java HAL : 25 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR B. Compile • Menggunakan perintah javac untuk mengcompile program java • Akan menghasilkan bytecode (instruksi-instruksi yg dimengerti oleh Java interpreter). • Contoh perintah untuk meng-compile program java: javac HelloWorld.java • Jika proses kompilasi benar, akan dihasilkan file dengan ekstensi .class, misal : HelloWorld.class HAL : 26 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR C. Load • Menempatkan program (.class) ke dalam memory sebelum dijalankan. • Dilakukan oleh class loader. • File .class dapat di-load dari penyimpanan di komputer kita atau dari jaringan/network (jaringan lokal atau internet). HAL : 27 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR D. Verify • Memastikan agar bytecode dalam file .class valid HAL : 28 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR E. Eksekusi • Menggunakan Java Interpreter • Membaca bytecode dan menerjemahkannya menjadi bahasa yang dimengerti oleh komputer (bahasa mesin). • Perintahnya adalah : java HelloWorld • Java Interpreter = Java Virtual Machine (JVM) HAL : 29 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Program Sederhana 1 // Fig. 2.1: Welcome1.java 2 // Text-printing program. 3 4 public class Welcome1 5 { 6 // main method begins execution of Java application 7 public static void main( String args[] ) 8 { 9 System.out.println( "Welcome to Java Programming!" ); 10 11 } // end method main 12 13 } // end clazss Welcome1 Welcome to Java Programming! HAL : 30 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Komentar / Comments 1 // Fig. 2.1: Welcome1.java 2 // Text-printing program. • Komentar diawali dg tanda // • Komentar diabaikan selama proses eksekusi program • Sebagai dokumentasi atas kode program • Memudahkan pembacaan kode (code readability) • Traditional comments: /* ... */ /* Ini ada adalah remark beberapa baris */ •Baris kosong Membuat program lebih mudah dibaca Baris kosong, spasi, dan tab adalah ‘white-space characters’ Diabaikan oleh compiler HAL : 31 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Catatan : 4 public class Welcome1 • Awal pendeklarasian utk class Welcome1 • Sebuah program java minimal mempunyai 1 pendeklarasian class. • By convention (aturan tdk tertulis), semua nama class di Java dimulai dengan huruf besar dan huruf besar pada tiap katanya. Misal : class Welcome1, class HelloWorld, class HitungLembur. HAL : 32 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Catatan lanjutan : • Java identifier Sekumpulan karakter yang terdiri dari huruf, angka, underscores ( _ ) dan tanda dollar ( $ ) Tdk boleh diawali dg angka, tdk boleh ada spasi Contoh : Welcome1, $value, _value, button7 – 7button is invalid • Java bersifat case-sensitive. Sehingga AB dan Ab adalah berbeda. HAL : 33 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR 7 public static void main( String args[] ) • Pada tiap aplikasi Java Aplikasi mulai dieksekusi pada ‘main’ – Tanda kurung menandakan ‘main’ adalah method – Aplikasi Java terdiri dari 1 atau lbh method Satu method hrs bernama ‘main’ ‘void’ berarti ‘main’ tdk mengembalikan nilai 8 { – Kurawal kiri (brs 8) menandakan dimulainya pendeklarasian method • Diakhiri dg kurawal kanan } (brs 11) HAL : 34 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR 9 System.out.println( "Welcome to Java Programming!" ); • Perintah utk mencetak sekumpulan karakter String – sekumpulan karakter yg berada di antara tanda kutip ganda • System.out Standard output object Print ke command window (i.e., MS-DOS prompt) • Method System.out.println Stlh mencetak, cursor akan berada di baris baru • Baris 9 ini disebut sebagai statement Tiap statement harus diakhiri tanda semicolon ; HAL : 35 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Compiling dengan cara, masuk ke Command Line – Start – RUN – ketik cmd HAL : 36 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Masuk pada drive dimana anda menyimpan file java tersebut: – Ketik <drive>, contoh: D: <enter> HAL : 37 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Ketik javac Wellcome1.java <enter> HAL : 38 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Untuk menjalankannya, ketik : java Wellcome1 <enter> HAL : 39 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR Menjalankan dari JCreator • Pilih Start JCreator HAL : 40 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Pilih tempat file anda HAL : 41 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Beri nama file anda sesuai dengan nama class HAL : 42 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR HAL : 43 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Mengompile dan menjalankan Program Java dengan JCreator Build > Compile File HAL : 44 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Jika proses Compile berhasil maka akan ditampilkan HAL : 45 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Untuk menjalankan program pilih menu : – Build > Execute File HAL : 46 FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR • Output program “Hello.java” HAL : 47