21/09/2013 Pemrograman I By : Sri Rezeki Candra Nursari 3 + 1 SKS PEMROGRAMAN • Pemrograman I Dasar Java • Pemrograman II Java dalam membaca library • Pemrograman III Aplikasi Java Desktop • Pemrograman IV Aplikasi Java WEB 1 21/09/2013 Penilaian : Gasal TA 2013/2014 UAS = 30% di lab UTS = 25% ABSEN = 5% TUGAS = 20% PRAKTIKUM = 20% _________________________________ Jumlah = 100% Tugas dan praktikum berikan URL Anda pada github.com\CandraNursari Batas Tugas & praktikum paling lambat sesuai jadwal UAS Literatur H.M Deitel, P.J Deitel, Small Java How to Program-sixth Edition, Pearson Prentice Hall, 2005 Elliot B. Koffman, Paul A.T. Wolfgang, Objects, Abstraction, Data Structures and Design Using Java, John Wiley & Sons.Inc, 2005 Ian F. Darwin, Java Cookbook, O’Reilly, 2001 Mark Allen Weiss, Data Structures & Algorithm Analysis in Java, Addison-Wesley, 1999 Moh.Sjukani, Algoritma & Struktur Data dengan C, C++ dan Java, Mitra Wacana Media, Agustus 2005 Rangsang Purnama, Tuntunan Pemrograman Java jilid- 1, Prestasi Pustaka Publisher, Januari 2003 Rangsang Purnama, Tuntunan Pemrograman Java jilid- 2, Prestasi Pustaka Publisher, Juli 2003 Rangsang Purnama, Tuntunan Pemrograman Java jilid 3, Prestasi Pustaka Publisher, Maret 2003 Ariesto Hadi Sutopo, Fajar Masya, Pemrograman Berorientasi Objek dengan Java, Graha Ilmu, 2005 Indrajani, Martin, Pemrograman Berorientasi Objek dengan Java, Elex Media Komputindo, 2004 Melvin Antonius, Damian Bayu Imam Santoso, Carneles, Membuat Animasi dengan Java, Elex Media Komputindo, 2004 2 21/09/2013 Materi 1. 2. 3. 4. 5. 6. 7. 8. Pengertian Java Setup /Instalasi Java Version Control (Git) Anatomi aplikasi Java Classpath Variabel dan Tipe Data Operator Control Flow (If.... Else, For/While) 9. Class & Object 10. 11. 12. 13. 14. 15. 16. 17. 18. Method Exception Konsep OOP Inheritance Encapsulation Polymorphism Abstract Class & Interface Composition & Aggregation Studi Kasus & Presentasi JAVA Pertemuan 01 3+1 SKS 3 21/09/2013 PEMROGRAMAN I • Trik menjadi programmer minimal 1 hari coding 10 baris • Tujuan : –Memahami Bahasa Pemrograman Java JAVA • Sejarah dan Pengertian Java • Setup/Instalasi JAVA • Version Control (Git) 4 21/09/2013 a. Sejarah dan Pengertian JAVA 1. 2. 3. 4. 5. 6. 7. 8. Asal mula JAVA Perkembangan teknologi JAVA Standar JAVA Perbedaan JavaScript dgn JAVA JAVA bytecode Kelebihan JAVA Karakteristik JAVA Perbedaan JAVA dengan C/C++ 1. Asal Mula JAVA • di perkenalkan pertama kali oleh sebuah tim Sun Microsystem. • dipimpin oleh Patrick Naughton dan James Gosling • Tahun 1995 • bahasa pemrograman yang bersifat portable dan platform independent, yang dapat digunakan untuk membuat peranti lunak yang dapat di tanamkan (embedded) pada berbagai macam peralatan elektronik 5 21/09/2013 2. Perkembangan Teknologi JAVA • Saat ini Sun Microsystem membagi Java menjadi empat jenis edisi, yaitu : 1. Java Card • Teknologi Java yag digunakan pada peralatan elektronik yang memiliki memori sangat terbatas, misalnya smart card 2. J2ME (Java 2 Platform Micro Edition) • Merupakan teknologi Java edisi mikro, digunakan untuk penerapan teknologi Java pada peralatan elektronik seperti handphone dan PDA 2. Perkembangan Teknologi JAVA • Setiap edisi Java terdiri dari dua/2 komponen utama, yaitu : – Java Application Programming Interface (Java API) • Java API terdiri atas kumpulan library yang digunakan untuk keperluan pemrograman. Dengan adanya API, tidak harus membuat program dari awal. Misalnya untuk J2SE, sudah terdapat API untuk pengolahan window dengan Swing dan AWT (Abstract Window Toolkit) – Java Run Time Environment (JRE) • JRE merupakan lingkungan yang membuat aplikasi Java dapat dijalankan. Salah satu komponen penting JRE adalah JVM (Java Virtual Machine) 6 21/09/2013 Perkembangan Versi Pada JAVA adalah Versi JAVA 1.0 1.1 1.2 1.3 1.4 5 6 Tahun 1996 1997 1998 2000 2004 2004 2005 Jumlah Class Pada tahun 2006, Sun Microsystem menerapkan lisensi 211 open source, yaitu 477 GNU General Public License 1.524 (GNU GPL) 1.840 sehingga semua 2.723 user semakin 3.279 leluasa 3.777 menggunakan teknologi Java 3. Standar JAVA • Ada 6 standar Java, adalah sebagai berikut : 1. Dukungan bahasa • 2. Utilitas • 3. Kumpulan kelas dan metode yang mendukung fasilitas bahasa pada Java seperti String, Array, Fungsionalitas tak tergantung sistem, Thread dan Eksepsi Kumpulan kelas yang menyediakan fungsi-fungsi utilitas seperti, bilangan acak, fungsi tanggal dan waktu, serta kelas-kelas penyimpanan vektor dan hashtable Masukan/keluaran • Kumpulan kelas yang mengambil masukan dari berbagai sumber dan memanipulasi masukan tersebut dengan sejumlah cara serta menampilkannya ke berbagai sumber dengan cara yang bervariasi. Kelas-kelas ini meliputi kelas filter, pengakses file secara sekuensial maupun acak dan puluhan metode untuk membaca dan menulis semua jenis tipe data 7 21/09/2013 3. Standar JAVA • Ada 6 standar Java, adalah sebagai berikut : 4. Jaringan • 5. Abstract Window Toolkit (AWT) • 6. Kumpulan kelas yang digunakan untuk menghubungan komputer dengan komputer lain dijaringan lokal maupun internet. Kelas-kelas ini meliputi socket, Internet-Address dan pemrosesan URL (Uniform Resource Locator) Kumpulan kelas yang mengimplementasikan antar muka pengguna grafis (GUI : Graphical User Interface) yang tidak tergantung terhadap platform. Applet • Kelas yang memungkinkan untuk membuat program Java yang nantinya didownload dari halaman WEB da dijalankan di browser klien seperti HotJava atau Netscape 4. Perbedaan Javascript dgn JAVA • JavaScript – • merupakan scripting language yang digabungkan dengan HTML, sehingga memungkinkan suatu web page berinteraksi dengan penggunanya. JavaScript, tidak memerlukan kompilasi, karena konsepnya hanya diinterpretasikan, dimana Web Browserlah yang bertanggung jawab untuk melakukannya. Java – merupakan full programming language, yang secara esensi sama dengan bahasa pemrograman lainnya seperti VisualBasic, C++, dan lain-lain. Kode Java dibuat harus dikompilasi menjadi bentuk yang dapat dieksekusi oleh run-time system Java (Java Virtual Machine. Program Java yang dibuat sebagai applet tidak dieksekusi oleh Web Browser, tetapi Web Browser sebagi komtainer yang memungk inkan applet tersebut dieksekusi didalamnnya 8 21/09/2013 5. JAVA Bytecode • • • • Hasil kompilasi Java adalah berupa bytecode yang merupakan sekumpulan instruksi yang sangat teroptimasi. Agar bytecode dapat dieksekusi seperti program biasa, maka diperlukan suatu program khusus yang akan menerjemahkan dan mengeksekusi setiap baris instruksi bytecode yang ada oleh microprocesesor secara langsung. Program khusus ini kita kenal sebagai Java Virtual Machine (JVM). Jadi JVM merupakan interpreter dari bytecode 6. Kelebihan JAVA 1. Bersifat portable dan platform independent – Program Java yang ditulis dapat dieksekusi di paltform manapun tanpa memerlukan kompilasi ulang (portable) asalkan Java Virtual Machine untuk platform tersebut tersedia 2. Memiliki garbage collection – Dapat mendealokasi memori secara otomatis. Anda tidak perlu secara eksplisit membebaskan suatu lokasi memori yang dipakai karena ini akan dilakukan secara otomatis oleh Java. 3. Menghilangkan pewarisan berganda yang terdapat pada C++ – Walaupun kelihatannya sebagai suatu kekurangan, namun banyak para ahli yang mengakui bahwa bahasa konsep pewarisan berganda lebih banyak mengakibatkan kerugian dari pada keuntungan. Java telah didesain sedemikian rupa sehingga Anda tidak akan memerlukan teknik ini dalam pembuatan program apapun 9 21/09/2013 6. Kelebihan JAVA 4. Mengurangi pointer aritmetik – Pengaksesan lokasi memori secara langsung dengan menggunakan pointer memungkinkan program untuk melakukan suatu tindakan yang tidak seharusnya atau tidak boleh dilakukan. Untuk mengurangi dan menghilangkan kemungkinan kesalahan seperti ini, penggunaan pointer pada Java telah dibatasi dengan menggunakan reference 5. Memiliki array sejati 6. Mengurangi kerancuan antara pemberian nilai pada statemen kondisional. – Contoh pengguunaan tanda ”=” dengan ”==” pada kondisi IF 7. Krakteristik JAVA 1. Berorientasi objek – Java telah menerapkan konsep pemrograman berorientasi objek yang modern dalam implementasinya 2. Robust/Kokoh – Java mendorong pemrograman yang bebas dari kesalahan dengan bersifat strongly typed dan memiliki run-time checking. Perangkat lunak yang kuat tidak mudah menghentikan program karena terdapat bug atau kesalahan logika didalamnya. Pemrograman pada umumnya mempunyai keterbatasan termasuk tipe datadan penggunaan pointer. Java tidak mendukung aritmatika pointer melainkan Array. 10 21/09/2013 7. Krakteristik JAVA 3. Portable – Program Java dapat dieksekusi di paltform manapun selama tersedia Java Virtual Machine untuk platform tersebut 4. Multithreading – Java mendukung penggunaan multihreading yang telah diintegrasi sacara langsung dalam bahasa Java. Java dapat digunakan untuk membuat aplikasi dimana beberapa event berlangsung pada saat yang sama 5. Dinamis – Program Java dapat melakukan suatu tindakan yang ditentukan pada saat eksekusi program dan bukan pada saat kompilasi. Tidak seperti kode dalam C++ yang memerlukan kompilasi kembali jika suatu kelas diubah, Java menggunakan metode dari interface untuk menghilangkan ketergantungan tersebut. Metode dan variabel dari instance baru dapat digunakan tanpa mempengaruhi objek pada client 7. Krakteristik JAVA 6. Sederhana – Java menggunakan bahasa yang sederhana dan mudah dipelajari 7. Terdistribusi – Java didesain untuk berjalan pada lingkungan yang terdistribusi seperti halnya internet. Java secara spesifik dirancang untuk pekerjaan dalam lingkungan jaringan. Java mempunyai banyak pustaka kelas untuk komunikasi menggunakan protokol internet TCP/IP, termasuk protokol seperti HTTP dan FTP 8. Aman – Aplikasi yang dibuat dengan bahasa Java dapat dipastikan keamanannya terutama untuk aplikasi internet. Java membatasi pada pointer sehingga developer tidak dapat mengakses memori jika tidak diijinkan. Aspek ini membuat Java cukup aman dalam lingkungan software. 11 21/09/2013 7. Krakteristik JAVA 9. Netral secara arsitektur – Java tidak terikat pada suatu mesin atau sistem operasi tertentu. Kompiler Java membuat bytecode yang dikirim ke browser dan diterjemahkan oleh browser yang mempunyai interpreter Java. Dengan demikian dapat dijalankan pada semua komputer dengan platform yang berbeda 10. Interpreted – Aplikasi Java dapat dieksekusi pada platform yang berbeda-beda dengan melakukan interpretasi pada bytecode. Kompiler Java menerjemahkan file sumber Java menjadi bytecode yang dapat dijalankan pada semua komputer yang menjalankan interpreter Java atau Browser 7. Krakteristik JAVA 11.Berkinerja tinggi – Bytecode Java telah sangat teroptimasi sehingga eksekusi program dapat dilakukan secara cepat sekalipun dilakukan dengan cara interpretasi terhadap bytecode. Kompilasi Java termasuk kebebasan menerjemahkan bytecode ke kode mesin pada platform yang ada. Hal ini memberikan efisiensi yang sama seperti kompilasi dan pemrosesan secara tradisional. 12 21/09/2013 8. Perbedaan JAVA dengan C/C++ 1. Java tidak mendukung tipe data struct, union dan pointer 2. Java tidak mendukung typedef atau #define 3. Java berbeda dalam menangani operator tertentu dan tidak menginjinkan operator overloading 4. Java tidak mendukung multiple inheritance 5. Java mempunyai kelas String yang menjadi bagian dari paket java.lang 6. Java menangani argumen command-line berbeda 7. Java mempunyai sistem otomatis untuk mengalokasikan dan membebaskan memori, sehingga tidak perlu menggunakan fungsi alokasi dan dealokasi memori b. Setup/Instalasi JAVA 1. Kebutuhan Software 2. Instalasi JAVA 3. Setting Path 13 21/09/2013 1. Kebutuhan Software –JAVA SDK 7 –Notepad++ –Git (dan Account Github) 2. Instalasi Java –JAVA SDK –Notepad++ –Daftar di GITHUB.COM –Git (dan Account Github) 14