PEMROGRAMAN I By : Sri Rezeki Candra Nursari Penilaian : Genap TA 2010/2011 UAS (lisan) = 30 % UTS = 25 % Tugas = 20 % Praktikum = 25 % __________________________________ Jumlah = 100% email : 1. 2. 3. 4. 5. 6. Meigha A. Krisnha – [email protected] Moch. Yusuf. P – [email protected] Jimmy k s [email protected] Rehulina triana oktaviani t [email protected] Prasetya Mahardhitama – [email protected] Rr nadya risti wulandari 4510212058 – [email protected] Materi : nursari2010.blogdetik.com Pengantar OOP, Tipe Data, Variabel, Array, Operator, Percabangan, Perulangan, Pendahuluan kelas, Metoda dan Kelas, Inheritance, Polymorphism, Package, Interface, Exception Handling, Multithreaded Programming, Pendahuluan I/O dan Applets JAVA 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 2. Perkembangan Teknologi JAVA Saat ini Sun Microsystem membagi Java menjadi empat jenis edisi, yaitu : 1. Java Card 2. Teknologi Java yag digunakan pada peralatan elektronik yang memiliki memori sangat terbatas, misalnya smart card 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 Saat ini Sun Microsystem membagi Java menjadi empat jenis edisi, yaitu : 3. J2SE (Java 2 Platform Second Edition) 4. Merupakan teknologi Java edisi standar, digunakan untuk penerapan teknologi pada komputer desktop J2EE (Java 2 Platform Enterprise Edition) Merupakan teknologi Java edisi enterprise, digunakan untuk penerapan teknologi Java pada komputer server 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) Perkembangan versi pada Java adalah : Versi JAVA Tahun Jumlah Class 1.0 1.1 1.2 1.3 1.4 5 6 1996 1997 1998 2000 2004 2004 2005 211 477 1.524 1.840 2.723 3.279 3.777 Pada tahun 2006, Sun Microsystem menerapkan lisensi open source, yaitu GNU General Public License (GNU GPL) sehingga semua user semakin leluasa 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 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. Kelaskelas 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 Perbedaan JAVASCRIPT vs 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 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 Kelebihan JAVA Bersifat portable dan platform independent 1. Program Java yang ditulis dapat dieksekusi di paltform manapun tanpa memerlukan kompilasi ulang (portable) asalkan Java Virtual Machine untuk platform tersebut tersedia Memiliki garbage collection 2. Dapat mendealokasi memori secara otomatis. Anda tidak perlu secara eksplisit membebaskan suatu lokasi memori yang dipakai karena ini akan dilakukan secara otomatis oleh Java. Menghilangkan pewarisan berganda yang terdapat pada C++ 3. 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 Kelebihan JAVA Mengurangi pointer aritmetik 4. 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 Memiliki array sejati Mengurangi kerancuan antara pemberian nilai pada statemen kondisional. 5. 6. Contoh pengguunaan tanda ”=” dengan ”==” pada kondisi IF Karakteristik JAVA Berorientasi objek 1. Java telah menerapkan konsep pemrograman berorientasi objek yang modern dalam implementasinya Robust/Kokoh 2. 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. Karakteristik JAVA Portable 3. Program Java dapat dieksekusi di paltform manapun selama tersedia Java Virtual Machine untuk platform tersebut Multithreading 4. 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 Dinamis 5. 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 Karakteristik JAVA Sederhana 6. Java menggunakan bahasa yang sederhana dan mudah dipelajari Terdistribusi 7. 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 Aman 8. 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. Karakteristik JAVA Netral secara arsitektur 9. 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 Interpreted 10. 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 Karakteristik 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. Perbedaan JAVA dengan C/C++ 1. 2. 3. 4. 5. 6. 7. Java tidak mendukung tipe data struct, union dan pointer Java tidak mendukung typedef atau #define Java berbeda dalam menangani operator tertentu dan tidak menginjinkan operator overloading Java tidak mendukung multiple inheritance Java mempunyai kelas String yang menjadi bagian dari paket java.lang Java menangani argumen command-line berbeda Java mempunyai sistem otomatis untuk mengalokasikan dan membebaskan memori, sehingga tidak perlu menggunakan fungsi alokasi dan dealokasi memori Program JAVA Ada 2 pemrograman yang dapat dibuat menggunakan bahasa pemrograman Java, yaitu : 1. Aplikasi Java Program stand alone pada umumnya yang dibagi menjadi dua macam, adalah sebagai berikut : 1. 2. Aplikasi konsol (console application) hanya mendukung output karakter pada screen komputer Aplikasi windows (windowed application) Dapat membuat dan mengatur banyak window, seperti penggunaan enu, toolbar, dialog dan lain-lain Applet Java 2. Program yang disisipkan dalam halaman WEB FLATFORM JAVA Platform java memiliki dua komponen : 1. 2. Java virtual machine (JVM) Java application programming interface (Java API) Java API merupakan kumpulan komponen perangkat lunak yang menyediakan berbagai fasilitas, sperti GUI widget. Java API dikelompokkan dalam paket (package) yang Java Program berkaitan. Java API Java Virtual Machine Hardware-based Platform Platform Java LINGKUNGAN BAHASA PEMROGRAMAN JAVA Source Code Compiler Object Code Verifikasi object code dan di-load ke Java Virtual Machine Java Virtual Machine Eksekusi program oleh interpreter Java Interpreter Interpreter menangani hubungan dengan sistem operasi Operating System Program JAVA Enam kategori versi lingkungan JAVA : 1. Paket lang Tipe primitif sebagai kelas Kelas-kelas : number, character, boolean, double, long, float, integer Superkelas abstrak untuk semua objek pada Java Kelas-kelas : class, objek String Kelas-kelas : String, StringBuffer Informasi sistem Kelas-kelas : System, Process, Runtime, ClassLoader, SecurityManager Fungsi-fungsi matematika seperti: sin(), cos(), exp() dan power() Kelas-kelas : Math Thread Kelas-kelas : Thread, ThreadGroup Program JAVA Enam kategori versi lingkungan JAVA : Paket lang 1. Kesalaan pada program berjalan Kelas-kelas : StackOverflowError, UnknownError, NoSuchMethodError, IncompatibleClassChangeError, OutOfMemoryError, UnsatisfiedLinkError, AbstractMethodError, IllegalAccessError, ThreadDeathVirtualMachineError, ClassCircularityError, ClassFormatError, LinkageError, NoClassDefFoundError, Error, VerifyError, InstantiationError, NoSuchFieldError Eksepsi Kelas-kelas : Throwable, ArithmeticException, ClassCastException, Exception, IllegalArgumentException, InterruptedException, ArrayStoreException, NullPointerException, NegativeArraySizeException, NumberFormatException, ArrayIndexOutOfBoundsException, RuntimeException, SecurityException, IllegalThreadStateException, StringIndexOutOfBoundsException, ClassNotFoundException, InterruptedException, NoSuchMethodException Paket util 2. Kontainer Kelas-kelas : HashtableEntry, Properties, Vector, VectorEnumerator, Stack, ObserverList, BitSet, Dictionary Lain-lain Kelas-kelas : Random, Date, StringTokenizer, NoSuchElementException, Program JAVA Enam kategori versi lingkungan JAVA : 3. Paket io Stream Masukan Kelas-kelas : InputStream, ByteArrayInputStream, FilterInputStream, PushbackInputStream, StringBufferInputStream, DataInputStream, , BufferedInputStream, LineNumberInputStream, SequenceInputStream, PipeInputStream, StreamTokenizer, Stream Keluaran Kelas-kelas : OutputStream, DataOutputStream, BufferedOutputStream, PrintStream, FilterOutputStream, ByteArrayOutputStream, PipedOutputStream File Kelas-kelas :File, FileInputStream, FileOutputStream, RandomAccessFile Eksepsi Kelas-kelas : IOException, InterruptedIOException, FileNotFoundException, EOFException, UTFDataFormatException Program JAVA Enam kategori versi lingkungan JAVA : 4. Paket net 5. Paket awt 6. Piranti WEB Kelas-kelas : InetAddress, URL, URLConnection, URLStreamHandler, ContentHandler, Soket Kelas-kelas : ServerSocket, Socket, SocketImpl, SocketInputStream, SocketOutputStream Eksepsi Kelas-kelas : ProtocolException, SocketException, UnknownHostException, UnknownServiceException, MalformedURLException Paket AWT merupakan kelas-kelas untuk menangani : Jendela, Tombol, Daftar, Menu Paket applet OOP – Object Oriented Programming Object Objek mempunyai 2 karakteristik, yaitu : Keadaan (state) menyatakan kondisi yang ada pada objek tersebut pada suatu saat tertentu. Kondisi ini dinyatakan dalam atribut. Dapat dianggap sebagai kata benda Contoh : Seekor kucing meliputi warna bulu, berat badan, lapar, haus, lelah. Sebuah mobil memiliki kecepatan, tipe transmisi, lampu menyala atau tidak, gir, ban Perilaku (behaviour) Merupakan sekumpulan aksi yang dapat dilakukan oleh objek. Dapat dianggap sebagai kata kerja. Contoh : Seekor kucing perilakunya mengeong, berlari, tidur, mengendus. Sebuah mobil perilakunya berbelok, mengerem, melakukan percepatan Object State dan behavior suatu objek bekerja secara bersama-sama. Bagaimana seekor kucing akan mengeong apabila lapar. Apabila kucing lelah maka berperilaku tidur, etc.... Dalam PBO kita memodelkan semua objek dalam dunia nyata tersebut kedalam program. Objek yang kita modelkan dalam perangkat lunak juga memiliki 2 karakteristik yang sama yaitu state dan behaviour/perilaku. Dalam pemrograman merelasikan : Keadaan (state) sebagai variabel Perilaku (behaviour) sebagai fungsi/method KELAS Kelas Objek didefiniskan dengan sebuah kelas. Kelas merupakan sebuah model, pola atau cetak biru atau blue print yang digunakan untuk menciptakan sebuah objek Sebuah contoh, objek mobil memiliki beberapa variabel yang menyatakan state dari mobil bersama dengan implementasi dari fungsi yang menyatakan perilaku dari mobil tersebut. Untuk setiap instance kelas tersebut akan mendapat sekumpulan variabel state. Saat instance dari kelas tersebut dibuat, maka variabel yang dideklarasikan akan disimpan di memori. Variabel tersebut kemudian akan dimodifikasi dengan menggunakan fungsi yang telah disediakan. Contoh Class Mahasiswa State Nama Alamat Jurusan Mata kuliah IPS IPK Method Melakukan pendaftaran Mengikuti kuliah Mengikuti ujian ENKAPSULASI Enkapsulasi Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem dan sekaligus menyederhanakan penggunaan sistem itu sendiri Menggambarkan sebuah objek sebagai sebuah ”kotak hitam”, yang tidak perlu tahu apa yang ada didalamnya. Contoh : Sebagai pengguna mobil, tidak perlu mengetahui secara rinci tentang mobil tersebut, misal berapa katup yang ada di mesin, proses pembakarannya Yang penting bagaimana dapat mengendarai mobil dengan benar. PEWARISAN Pewarisan Bentuknya seperti hirarki, semakin ke level bawah class akan bersifat semakin spesifik sedangkan semakin ke level atas class akan bersifat semakin umum Pewarisan sering disebut sebagai bentuk spesialisasi atau generalisasi atas objek. Contoh : Kendaraan Kendaraan Bermotor Mobil Truk Kendaraan Tak Bermotor Sepeda Becak Pewarisan Semua objek diatas termasuk dalam kelompok Kendaraan. Apabila kendaraan merupakan sebuah kelas, maka kelas kendaraan mewarisi karakteristik yang dimilikinya (memiliki roda). Konsep ini disebut dengan pewarisan/inheritance PEWARISAN Class Wanita Class Manusia (state) Berat Tinggi Usia (behavior) Makan Minum Bekerja (state) Memiliki organ kelamin wanita (behavior) Melahirkan Menyusui Class Pria (state) Memiliki organ kelamin pria (behavior) POLYMORPHISM/ POLIMORFISME Polimorfisme/Polymorphism Polymorphism berasal dari bahasa Yunani yang berarti ”banyak bentuk”. Konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintahkan suatu objek agar melakukan suatu aksi atau tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda. Satu objek dengan objeklain terjadi komunikasi. Satu objek mengirimkan pesan ke objek-objek lain untuk melakukan sesuatu yang diinginkan. Dalam pemrograman berorientasi objek, polimorfisme memiliki arti, fungsi yang sama, tetapi memiliki perilaku yang berbeda pada kelas-kelas yang berbeda TIPE DATA Tipe Data Ada tiga bentuk data, yaitu : Numerik Data yang berbentuk angka atau bilangan. Data numerik terbagi menjadi dua kategori : Karakter Data yang berbentuk karakter atau deretan karakter. Data karakter terbagi menjadi dua kategori : D A T A Karakter tunggal Deretan karakter Logika T I P E Bilangan bulat (integer) Yaitu bilangan yang tidak mengandung angka pecahan Bilangan pecahan (float) Yaitu bilangan yang mengandung angka pecahan Tipe data dengan nilai benar (TRUE) atau salah (FALSE) a. Tipe data primitif a.1. Character - char a.2. Integer - byte - short - int - long a.3. Floating point single precision - float a.4. Floating point double precision - double a.5. Boolean - boolean b. Tipe data referensi/ komposit b.1. string b.2. array b.3. class b.4. interface Type Data T I P E D A T A Batas Nilai Ukuran Dalam Byte char 0 s.d. 65535 Atau hexadecimal 0000 s.d. FFFF 1 byte -128 s.d. 127 1 short -32768 s.d. 32767 2 int -2147483648 s.d. 2147483647 4 long -9223372036854775808 s.d. 9223372036854775807 8 float 3.E-38 s.d. 3.4E38 4 double 1.7E-308 s.d. 1.7E308 Positif atau negatif 8 boolean Nilai yang dinyatakan dengan true atau false 1 Konstanta Yg Dicetak T I P E D A T A Yang Tercetak Dilayar “Teknik Informatika”; “A”; ‘A’; 123; 123L; 220766; -111961; Teknik Informatika A A 123 123 220766 -111961 429496295 429496296 111.961; 111.9616; 111.96166; 1119616.6610; 111E6 111.96E6 429496295 0 111.961 111.962 111.962 1.119616e+06 111000000 111960000 Reserved Word/Kyword Abstract catch default final if static private interface boolean char do finally break class double float implements import long native protected public strictfp super this void null throw volatile throws while byte const else for case continue extends goto instanceof int new package return short synchroni switch zed transient try false true Variabel Variabel adalah unit dasar penyimpanan di program Java. Variabel harus dideklarasikan sebelum digunakan Sintaks deklarasi variabel adalah : Contoh int nilai1, nilai2, nilai3 int nilai1=60, nilai2=70, nilai3=90 char huruf=”x” double pi=3,14159 OPERATOR ARITMATIKA Standar Operator dari yang tertinggi sampai yang terendah * / % + - Keterangan Multiplication / Perkalian Division / Pembagian Remainder / Sisa Hasil Bagi Addition / Penjumlahan Subtraction / Pengurangan OPERATOR LOGIKA Operator Fungsi && Logika AND || Logika OR ! Logika NOT OPERATOR RELASI Operator By Contoh Java Keterangan = == x = = y x sama dengan y ≠ != x != y x tidak sama dengan y > > x>y x lebih besar dari y < < x<y x lebih besar dari y ≥ >= x >= y ≤ <= x <= y x lebih besar atau sama dengan y x lebih kecil atau sama dengan y STRUKTUR BAHASA JAVA Struktur utama bahasa Java adalah public class xxxxxxxxxx (merupakan nama klas) {public static void main (String [ ] args) { statement statement } } STRUKTUR BAHASA JAVA Sama seperti program C/C++, pada program Java, bila program java dijalankan, maka instruksi pertama yang dikerjakan adalah instruksi yang ada dalam metode main ( ). public class yyyyy { } public class xxxxxxxxxx { public static void main (String [ ] args ) { } public void zzzzz ( . . ) { } } PENGETIKAN KODE PADA PROGRAM JAVA Ada beberapa alternatif aplikasi yang ditawarkan untuk melakukan pengetikan program, antara lain : 1. 2. Blue-J Forte release 2.0 BLUE-J Tampilan pertama Blue-J Membuat Project dan Class Baru BLUE-J Source Editor BLUE-J Mengkompilasi - klik command button compile, -program tidak ada kesalahan [class compiled-no syntax error] Menjalankan / Mengeksekusi Program Untuk menjalankan program yang telah ada pada editor, pada kotak dialog BlueJ – Hello klik kanan, lalu pilih void main(args) – Ok Hasil Program BLUE-J Kesalahan Program FORTE for Java CE Tampilan pertama Forte FORTE for Java CE Membuat Project dan Class Baru FORTE for Java CE Source Editor FORTE for Java CE Mengkompilasi -klik icon compile -(F9) Menjalankan/Mengeksekusi Program -klik icon execute -(F6) Hasil Program FORTE for Java CE Kesalahan Program