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. Tidak tergantung pada platform tertentu (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 4 2 3 6 5 1 Deklarasi class 2 Pembuka blok 3 Komentar 4 Main Method 5 Statement/Instruksi-program 6 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 */ 2. // komentar 3. /** komentar */ Semua karakter yang berada di antara /* dan */ akan diabaikan dan tidak dieksekusi. Semua karakter setelah // hingga akhir baris akan diabaikan dan tidak dieksekusi. Serupa dengan /* */, kecuali bahwa 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 continue for new switch assert *** default goto * package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum**** instanceof return transient catch extends int short try char final interface static void class finally long Strictfp** volatile const* float native super while * Tidak digunakan *** Ditambahkan pada 1.4 ** Ditambahkan pada 1.2 **** 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 lima macam literal di Java, yaitu: 1. Integer 2. Floating Point 3. Boolean 4. Character 5. 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 10 2 2E+25 Berarti: 2 x 10 25-75e-011 Berarti: -75 x 10-11 +75.E25F Berarti: +75 x 10 25 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 A a Keterangan Berarti: karakter huruf A kapital. Berarti: karakter huruf a standart. 8 Berarti: karakter angka 8 dan bukan angka 8. # Berarti: karakter simbol #. D Di Salah, karakter menggunakan petik tunggal. Salah, tidak boleh lebih dari 1 karakter yang dapat diapit oleh petik tungal. 24
\b back space \t horizontal tab \n new line, line eed \r carriage return \ single quote \ double quote \\ backslash \xdd notasi hexadecimal \ddd 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 true false Keterangan Berarti: nilai boolean true. 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 Bahasa\nKomputer Nama\t:\tHerman Teks \ Hallo\ Keterangan Antara Bahasa dan Komputer terdapat newline. Antara Nama dan : terdapat horisontal tab termasuk antara : dan Herman. Kata Hallo diapit oleh dua petik ganda. 28
Java mempunyai 8 tipe data primitif, dengan rincian sebagai berikut: No. Tipe Data Memori Nilai Minimum Nilai Maksimum 1. byte 8 bit -128 127 2. short 16 bit -32768 32767 3. int 32 bit 2147483648 2147483648 4. long 64 bit 9223372036854775808 9223372036854775807 5. float 32 bit ±1.40239846E-45 ±3.40282347E+8 6. double 64 bit ±4.94065645841246544 E-324 ±1.7976931348623157 0E+308 7. char 16 bit \u0000 \uffff 8. boolean 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 identi&ier [, identi&ier] [= 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 identi&ier = nilai [, identi&ier = 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