Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Pertemuan 02 PENGANTAR BAHASA JAVA LEARNING OUTCOMES Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Menjelaskan elemen pemrograman Java Menjelaskan struktur pemrograman Java OUTLINE MATERI Sejarah Java Karakteristik Java API, JDK, JRE Java Platform Program Sederhana Java Anatomi Program Java Escape Sequence Unicode SEJARAH JAVA 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 KARAKTERISTIK JAVA (BUZZWORDS) Simple Object-oriented Distributed Interpreted Robust Secure Architecture-neutral Portable High-performance Multi-threaded Dynamic APPLICATION PROGRAM INTERFACE (API) Kumpulan predefined classes dan interfaces untuk mengembangkan program Java 3 edisi Java API: Java 2 Standard Edition (J2SE) Aplikasi Java 2 Enterprise Edition (J2EE) Servlet, Java client-side, applet JSP 2 Micro Edition (J2ME) Cell phone JAVA DEVELOPMENT TOOLKIT (JDK) Sekumpulan program terpisah untuk mengembangkan dan menguji program Java 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) JAVA DEVELOPMENT TOOLKIT (JDK) Program pada JDK yang sering digunakan Kompiler: javac Interpreter: java Menampilkan applet Dokumentasi: javadoc Seperti interpreter, tetapi mampu men-debug aplikasi Penampil applet: appletviewer Mengeksekusi bytecode (.class) menjadi aplikasi Debugger: jdb Mengkompilasi souce code (.java) menjadi bytecode (.class) Mengkonversi source code (.java) menjadi dokumentasi (.html) Kompresi: jar Menghasilkan kompresi (.jar) dari bytecode (.class) dan file pendukung lain (seperti gambar, suara, video) JAVA RUNTIME ENVIRONMENT (JRE) 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 JAVA PLATFORM PROGRAM JAVA SEDERHANA: HELLO WORLD // This application program prints Welcome to Java! public class Welcome { public static void main(String [] args) { System.out.println(“Welcome to Java!”); } } PROGRAM JAVA SEDERHANA: HELLO WORLD // This application program prints Welcome to Java! Class name Comments Filename: Welcome.java public class Welcome { public static void main(String [] args) { System.out.println(“Welcome to Java!”); } } String Class heading, Main method signature PROGRAM JAVA SEDERHANA: HELLO WORLD Setiap program Java memiliki minimal 1 kelas. Cth: Welcome Untuk menjalankan kelas, maka diperlukan method main System.out.println merupakan statement untuk mencetak kalimat ke console CREATING, COMPILING, EXECUTING Source code (developed by the programmer) public class Welcome { Public static void main(String [] args) { System.out.println(“Welcome to Java!”); } } Create/Modify Source Code Save on the disk Source Code Compile Source Code e.g., javac Welcome.java Bytecode (generated by the compiler for JVM to read and interpret, not for you to understand) … Method Welcome() 0 aload_0 … Method void main(java.lang.String[]) 0 getstatic #2 … 3 ldc #3 <String “Welcome to Java!”> 5 invokevirtual #4 8 return Stored in the disk If compilation errors Bytecode Run Bytecode e.g., java Welcome Result If runtime errors or Incorrect result ANATOMI PROGRAM JAVA Program/aplikasi terdiri dari: Whitespace Identifiers Literal Comments Separators Reserved words (keyword) Modifiers Statements Blocks Classes Methods The main method ANATOMI: WHITESPACE Java adalah free-form language Tidak perlu aturan indentation Program dapat dibuat 1 baris saja Terdapat minimal 1 whitespace di antara token yang tak beroperator Contoh whitespace: space, tab, newline ANATOMI: IDENTIFIERS Digunakan untuk menamakan class, method, dan variable Terdiri dari huruf uppercase/lowercase, angka, underscore, atau tanda dollar ($) Tidak boleh diawali dengan angka Bersifat case-sensitive Contoh identifier: AvgTemp, args, count, f4, $test, this_is_ok ANATOMI: LITERALS Nilai tetap Dapat berupa bilangan bulat, bulang desimal, karakter, kata, boolean, tergantung tipe yang digunakan Contoh: 100 98.6 ‘X’ “This is a test” ANATOMI: COMMENTS Menggunakan notasi: // untuk satu baris (line comment) /* … */ untuk beberapa baris (paragraph comment) Membantu programmer saling berkomunikasi dan mengerti program Umumnya untuk mendokumentasikan internal program Contoh comments: // This application program prints Welcome to Java! /* This application program prints Welcome to Java! */ /* This application program prints Welcome to Java! */ ANATOMI: SEPARATORS/PUNCTUATION Karakter/notasi tertentu untuk tujuan tertentu Contoh separators: Symbol Nama Kegunaan () Parentheses Berisi daftar parameter pada method {} Braces Sebagai block atau nilai inisialisasi pada array [] Brackets Deklarasi array ; Semicolon Pengakhir statement , Comma Pemisah deklarasi variabel dan statement for . Period Pemisah nama package dan subpackage, dan variable atau method dengan object/class ANATOMI: RESERVED WORDS Sering disebut keywords Memiliki arti tersendiri bagi compiler Tidak dapat digunakan untuk tujuan lain dalam program Contoh keywords: class Ketika compiler menemukan kata class, maka kata setelah class dianggap sebagai nama class public, static, void Java bersifat case-sensitive, public dianggap keyword, sedangkan Public tidak ANATOMI: RESERVED WORDS Contoh-contoh keyword lainnya: abstract default goto * package this assert do if private throw boolean double implements protected throws break else import public transient byte enum instanceof return true case extends int short try catch false interface static void char final long strictfp volatile class finally native super while const * float new switch continue for null synchronized * disiapkan untuk Java versi berikutnya ANATOMI: MODIFIERS Merupakan reserved words tertentu Menunjukkan properti data, method, dan class Contoh modifier: public static private final abstract protected ANATOMI: STATEMENTS Merepresentasikan (rangkaian) aksi Contoh: System.out.println(“Welcome to Java!”); menyatakan statement untuk menampilkan tulisan “Welcome to Java!” Setiap statements diakhiri dengan notasi semicolon (;) ANATOMI: BLOCKS Ditandai dengan tanda kurung kurawal buka ({) dan tutup (}) Setiap class memiliki class block yang terdiri dari data dan method Setiap method memiliki method block yang terdiri dari statement Block dapat bersifat nested (block in block) Contoh: public class Test { public static void main(String[] args) { Method Class Block System.out.println(“Welcome to Java!”); Block } } ANATOMI: CLASSES Inti dari konstruksi Java Sebuah program terdiri dari minimal 1 class Di dalam class terdiri dari data dan method (encapsulation) ANATOMI: METHODS Kumpulan statement yang di-encapsulated yang menunjukkan urutan operasi Contoh: System.out.println System.out standard output object println method dalam object hasil eksekusi akan ditampilkan di layar command prompt ANATOMI: MAIN METHOD Setiap aplikasi Java harus memiliki main method Merupakan tempat mulainya eksekusi program JVM mengeksekusi aplikasi Java melalui main method Contoh main method: public static void main(String[] args) { // statements } ESCAPE SEQUENCE Character Escape Sequence Name \b Backspace \t Tab \n Linefeed \f Formfeed \r Carriage Return \\ Backslash \’ Single Quote \” Double Quote \ddd \udddd Octal (0 s/d 377) Heksadesimal (dd= 0 s/d FF atau ff) Merepresentasikan karakter khusus Dimulai dengan karakter backslash ( \ ) dilanjutkan karakter tertentu ESCAPE SEQUENCE Contoh penggunaan escape sequence DID YOU KNOW? Versi Java 19 Februari 1997, Java 1.1 08 Desember 1998, Java 1.2 Codename: Tiger, awalnya berversi 1.5 (tetapi sudah menghilangkan metode versi 1.x) 11 Desember 2006, Java 6 Codename: Merlin, mengintegrasikan XML 30 September 2004, Java 5.0 Codename: Kestrel, mengintegrasikan sound 06 Februari 2002, Java 1.4 Codename: Playground, dikenal dengan Java 2, muncul platform J2SE, J2EE, J2ME 08 Mei 2000, Java 1.3 hanya AWT Codename: Mustang, menghilangkan metode versi x.0, mendukung Visual Basic, GUI Vista (belum rilis) 2008, Java 7 Codename: Dolphin, perbaikan beberapa bug pada versi sebelumnya DID YOU KNOW? Logo Java: Maskot Java (Duke): ADVANCED LEARNING Java mendukung Unicode Unicode: skema encoding yang dikembangkan oleh Unicode Consortium Mendukung pertukaran, pemrosesan, dan penampilan bahasa-bahasa di dunia Contoh: Welcome dalam mandarin I Love You dalam mandarin ADVANCED LEARNING Contoh pemakaian Unicode ADVANCED LEARNING import java.swing.JOptionPane; akan diterangkan pada session berikutnya Untuk menampilkan kotak pesan grafik: JOptionPane.showMessageDialog (null,”…”,”…”,JOptionPane…); parent teks judul jenis pesan ADVANCED LEARNING Hasil eksekusi REFERENSI Introduction to Java Programming. 7ed. Liang. 2009. p40-48 Java Programming Language. http://en.wikipedia.org/wiki/Java_(programming_language) Java Software Platform. http://en.wikipedia.org/wiki/Java_(software_platform) Java Bytecode. http://en.wikipedia.org/wiki/Java_bytecode JDK. http://en.wikipedia.org/wiki/Java_Development_Kit JVM. http://en.wikipedia.org/wiki/Java_Virtual_Machine Logo Java. http://en.wikipedia.org/wiki/Image:Java_Logo.svg Java Platform. http://en.wikipedia.org/wiki/Image:JavaPlatform.jpg http://en.wikipedia.org/wiki/Image:Wave.svg Java Characteristics. http://www.cs.armstrong.edu/liang/intro6e/JavaCharacteristics.pdf History of Java. http://java.sun.com/features/1998/birthday.html Lexical Structure. http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html