Pemrograman Dasar [PTI-5001] 2012 1 Pada akhir pertemuan, diharapkan mahasiswa mampu : Mampu menjelaskan elemen dan struktur bahasa pemrograman Java dan mampu menulis program komputer sederhana dengan Java 2 Pengantar Bahasa Pemrograman Java Sejarah Bahasa Pemrograman Java Struktur Program dan Komentar Karakter, Identifier, Keyword Literal, Tipe Data, Konstanta, Variabel 3 Dikembangkan oleh tim • Pemimpin: James Gosling • Company: Sun Microsystem Agustus 1991, bernama Oak Januari 1995, berganti nama Java Menjanjikan aplikasi berbasis “Write Once, Run Anywhere (WORA)” Dapat dijalankan di web browser dengan teknologi Applet 4 1. Bahasa Sederhana, tidak mendukung: • • • • • • • Manipulasi pointer secara explisit Casting tipe data implisit Struktur atau union Operator Overloading Template Header files Multiple inheritance 2. Berorientasi Objek 3. Bahasa Statically Typed 4. Bahasa Dikompilasi 5 5. Bahasa yang aman 6. Bebas terhadap platform (Write One, Run Aniwhere/WORA) 7. Bahasa Multithreading 8. Bahasa yang didukung Garbage Collector 9. Bahasa yang tegar 10. Bahasa yang mampu diperluas 6 Kumpulan predefined classes dan interfaces untuk mengembangkan program Java 3 edisi Java API: • Java 2 Standard Edition (J2SE) Aplikasi client-side, applet • Java 2 Enterprise Edition (J2EE) Servlet, JSP • Java 2 Micro Edition (J2ME) Cell phone 7 Sekumpulan program terpisah untuk mengembangkan dan menguji program Java. Program pada JDK yang sering digunakan: • Kompiler: javac • • • • • Mengkompilasi souce code (.java) menjadi bytecode (.class) Interpreter: java Mengeksekusi bytecode (.class) menjadi aplikasi Debugger: jdb Seperti interpreter, tetapi mampu men-debug aplikasi Penampil applet: appletviewer Menampilkan applet Dokumentasi: javadoc Mengkonversi source code (.java) menjadi dokumentasi (.html) Kompresi: jar Menghasilkan kompresi (.jar) dari bytecode (.class) dan file pendukung lain (seperti gambar, suara, video) 8 Java Development Tools, aplikasi berbasiskan IDE (integrated development environment) untuk membuat program Java dengan cepat • • • • • • • • • • JBuilder by Borland (www.borland.com) NetBeans Open Source by Sun (www.netbeans.org) Eclipse Open Source by IBM (www.eclipse.org) Code Warrior by Metrowerks (www.metrowerks.com) TextPad Editor (www.textpad.com) JCreator LE (www.jcreator.com) JEdit (www.jedit.org) JGrasp (www.jgrasp.org) BlueJ (www.bluej.org) DrJava (http://drjava.sourceforge.net) 9 Software yang diperlukan untuk menjalankan aplikasi berplatform Java Java Virtual Machine (JVM): sekumpulan program untuk mengeksekusi java bytecode agar jalan pada platformnya Java Bytecode: Sekumpulan instruksi yang dieksekusi oleh JVM. Panjangnya sebesar 1 byte per instruksi 10 11 3 1 2 4 3 6 1 2 3 4 5 6 5 Deklarasi class Pembuka blok Komentar Main Method Statement/Instruksi-program Penutup Blok 12 Program Java yang dibuat harus selalu diakhiri dengan ekstensi file .java. Nama File harus sama dengan nama class public-nya Baris 4, mengawali definisi kelas bernama: HelloWorld. • Kata kunci public disebut sebagai access modifier • Kata kunci class untuk mendefinisikan kelas dari objek di java, yang merupakan wadah logik program dari sekumpulan data dan metode. • Setelah kata-kunci class, dituliskan nama kelas menggunakan aturan umum penulisan identifier. Konvensi nama kelas adalah kata benda dengan huruf kapital diawal kata yang berarti. Komentar dapat ditulis sebagai penjelasan pada kode program 13 Baris 6, penulisan metode main(), dijalankan pertama kali dan penulisannya harus berupa: public static void main(String[] args){ } • public berarti metode dapat dipanggil dari manapun. • static berarti sama untuk semua instan kelas • void berarti tidak mengembalikan nilai Baris 8, merupakan perintah untuk menampilkan teks: Hello Word 14 Komentar tidak dieksekusi dalam program dan tidak menambah ukuran dari bytecodes. Tiga macam komentar di java: No. Jenis Komentar Penggunaan 1. /* …komentar… */ Semua karakter yang berada di antara /* dan */ akan diabaikan dan tidak dieksekusi. 2. // …komentar Semua karakter setelah // hingga akhir baris akan diabaikan dan tidak dieksekusi. 3. Serupa dengan /*…*/, kecuali bahwa /**…komentar…*/ komentar akan digunakan oleh tool javadoc untuk membuat dokumentasi otomatis. 15 Program Java ditulis menggunakan subset karakter Unicode yaitu: Huruf besar A .. Z Huruf kecil a .. z Digit 0 .. 9 Karakter khusus seperti ‘!’ , ‘&’, ‘+’, ‘\’, ‘_’ dan sebagainya. Kode kontrol (seperti: formfeed dan newline) Unicode tidak hanya huruf latin, melainkan juga digunakan huruf-huruf bangsa lain, seperti: Jepang, Korea, German, dan bahkan Bengali. Memori yang digunakan 2 byte (16 bit). 16 Keywords adalah identifier khusus dan tidak dibolehkan digunakan untuk identifier lain. Keyword di Java abstract assert *** boolean break byte case catch char class const* continue default do double else enum**** extends final finally float * Tidak digunakan ** Ditambahkan pada 1.2 for new switch goto * if implements import instanceof int interface long native package private protected public return short static Strictfp** super synchronized this throw throws transient try void volatile while *** Ditambahkan pada 1.4 **** Ditambahkan pada 5.0 17 Nama berbagai elemen program seperti nama variabel, metode, kelas, keyword dsb Karakter pertama harus berupa huruf atau garis bawah(underscore) _ atau tanda $. Dianjurkan tidak menggunakan _ atau $. Karakter kedua dan seterusnya dapat berupa huruf atau angka. Huruf besar dianggap berbeda dengan huruf kecil (case sensitive) Panjang maksimum bebas. Tidak boleh menggunakan keyword (misal for, while, dll.) Contoh identifier : nama, x1, total, cubic, namaPegawai Contoh identifier yang salah: 1kali, int 18 Literal adalah nilai data yang dituliskan pada kode sumber (program). Terdapat 1. 2. 3. 4. 5. lima macam literal di Java, yaitu: Integer Floating Point Boolean Character String 19 Literal integer atau bilangan bulat dapat direpresentasikan dalam bentuk desimal (berbasis 10), oktal (berbasis 8) dan heksadesimal (berbasis 16). Hanya literal desimal yang boleh diberi tanda + (positip) dan – (negatip). Bentuk oktal ditandai dengan angka 0 diawal. Bentuk heksadesimal diawali dengan 0x atau 0X. 20 Contoh literal integer: Literal Keterangan 75 Bilangan desimal 175 (basis 10) 075 Bilangan oktal 175 (berbasis 8) = 61 desimal 0x75 atau 0X75 Bilangan heksa 75 (berbasis 16) = 117 desimal -75 Minus 75 desimal +75 Positip 75 desimal -075 Salah karena oktal tak boleh bertanda (- atau +) +0x75 Salah karena heksa tak boleh bertanda (- atau +) 21 Literal floating point (bertitik desimal) merepresentasikan bilangan desimal yang mempunyai titik desimal (bagian pecahan), misal: 7.4567 Literal floating point, boleh bertanda (+ atau -) maupun tanpa tanda (positip). Misal: +7.4567 atau 7.4567 atau 7.4567 Penulisan literal floating point dapat menggunakan notasi standart maupun ilmiah (scientific). Default floating point bertipe double (64 bit). Bila diinginkan bertipe float (32 bit) harus ditambahkan simbol horuf f atau F diakhir bilangan, misalkan: 7.4567f atau 7.4567F. 22 Contoh Literal floating point: Literal Keterangan 0.75 Berarti: 0,75 atau 75/100 +.1 Berarti: +0,1 atau 1/10 -0.9876 Berarti: minus 0,9876 2.0e2 atau 2e2 Berarti: 2 x 102 2E+25 Berarti: 2 x 1025 -75e-011 Berarti: -75 x 10-11 +75.E25F Berarti: +75 x 1025 bertipe float (32 bit). 23 Literal karakter direpresentasikan sebagai karakter Unicode tunggal dan dituliskan berupa karakter tunggal yang diapit dengan tanda petik tunggal (‘ ‘). Contoh Literal Karakter: Literal Keterangan ‘A’ Berarti: karakter huruf A kapital. ‘a’ Berarti: karakter huruf a standart. ‘8’ Berarti: karakter angka 8 dan bukan angka 8. ‘#’ Berarti: karakter simbol #. “D” Salah, karakter menggunakan petik tunggal. ‘Di’ Salah, tidak boleh lebih dari 1 karakter yang dapat diapit oleh petik tungal. 24 \b \t \n \r \’ \” \\ \xdd \ddd back space horizontal tab new line, line eed carriage return single quote double quote backslash notasi hexadecimal notasi octal Hampir sama dengan bahasa C/C++, hanya pada Java tidak mengenal \a dan \v. 25 Literal boolean dipergunakan untuk menuliskan nilai data boolean (true atau false). Penulisan Literal Boolean: Literal Keterangan true Berarti: nilai boolean true. false Berarti: nilai boolean false. 26 Literal String direpresentasikan sebagai serangkaian karakter Unicode dan penulisannya diapit oleh tanda petik ganda (“ “). String di Java merupakan sebuah kelas. Contoh Literal String: • “Komputer” • “Program Teknologi Informasi dan Ilmu Komputer” • “4 x 12 = 48” • “” string kosong • “1” string berisi karakter 1, tidak sama dengan ‘1’. 27 Literal String dapat juga berisi karakter khusus seperti newline, tab, dsb. Bahkan bisa saja berisi tanda petik ganda. Contoh Literal String berisi karakter khusus: Literal Keterangan “Bahasa\nKomputer” Antara Bahasa dan Komputer terdapat newline. “Nama\t:\tHerman” Antara Nama dan : terdapat horisontal tab termasuk antara : dan Herman. “Teks \”Hallo\”” Kata Hallo diapit oleh dua petik ganda. 28 Java mempunyai 8 tipe data primitif, dengan rincian sebagai berikut: No. Tipe Data Memori 1. byte 8 bit 2. short 3. Nilai Minimum Nilai Maksimum -128 127 16 bit -32768 32767 int 32 bit –2147483648 2147483648 4. long 64 bit 5. float 32 bit 6. double 64 bit 7. char 16 bit 8. boolean –9223372036854775808 9223372036854775807 ±1.40239846E-45 ±3.40282347E+8 ±4.94065645841246544 ±1.79769313486231570 E-324 E+308 \u0000 \uFFFF true atau false 29 Variabel adalah identifier (mewakili lokasi memori tertentu) untuk menyimpan nilai data yang dapat diubah nilai datanya. Variabel memiliki tipe data dan identifier. Tipe data menandakan tipe nilai data yang dapat disimpan di variabel tersebut. Identifier variabel harus mengikuti aturan untuk identifier. 30 Sintaks: tipe-data identifier [, identifier] [= nilai awal] ; tanda [ ] bersifat optional (boleh ada atau tidak). Contoh: int a; float ipSem, ipKum, ipLulus; double minimum=0.0, maksimum=1250000.0; boolean cek, lulus=false; 31 Konstanta adalah identifier (mewakili lokasi memori tertentu) untuk menyimpan nilai data yang tidak dapat diubah nilai datanya. Konstanta memiliki tipe data, identifier dan nilai data konstan. Tipe data menandakan tipe nilai data yang disimpan di konstanta tersebut. Identifier konstanta harus mengikuti aturan untuk identifier. 32 Sintaks: final tipe identifier = nilai [, identifier = nilai] ; tanda [ ] bersifat optional (boleh ada atau tidak). Contoh: final int K=100; final double MIN=0.0, MAKS=1000000.0; final double PI=3.142; 33