SEJARAH JAVA 1991, PATRICK NAUGHTON dan JAMES GOSLING. Proyek pertama dinamakan "GREEN" dan bahsa yg diciptakan diberi nama "OAK" JAVA (Menurut BILL JOY) Java adalah bahasa pemrograman orientasi objek yang berukuran kecil,sederhana, aman, diinterpretasi atau dioptimasi secara dinamis, ber- bytecode, netral arsitektur, mempunyai garbage- collector, multithreading, mempunyai mekanisme penanganan kekecualian (exception handling), berbasis tipe untuk penulisan program mudah diperluas secara dinamis serta telah diperuntukkan sistem tersebar. karya Sun Microsystem Inc. Rilis resmi level BETA-November 1995. 2 Bulan berikutnya NETSCAPE memperoleh lisensi bahasa JAVA dari SUN. JAVA mrpkn bahasa yang dapat JAVA dijalankan di sembarang platform, di berbagai lingkungan: internet, consumer electronic products, dan computer applications MASKOT JAVA DUKE 1996 Sun mengeluarkan JSDK (Java Software Development Kit) VERSI 1.02 BASIS DATA dan OBJEK-OBJEK TERSEBAR VERSI 1.1 (1997) EVENT MODEL, INTERNATIONALIZATION, dan model komponen JAVABEANS VERSI 1.2 (1998) / JAVA 2 USER INTERFACE TOOLKIT "SWING" utk membuat aplikasi GUI portabel VERSI 1.3 (2000) Banyak peningkatan VERSI 1.4 (2000) Fasilitas ASERSI untuk dukungan DESIGN-BY-CONTRACT GENERICS (PARAMETERIZED TYPES), ENUMERATION, dan METADATA. LIGHTWEIGHT VERSI 1.5 / JAVA 5 DATABASE SYSTEM yaitu DERBY (BASIS DATA APACHE), sebelumnya mrpkn CLOUDSCAPE dari IBM 1.Java 2 Standard Edition (J2SE - berbasis dekstop) The Java 2 Platform tersedia dalam tiga edisi 2.Java 2 Enterprise Edition (J2EE - berbasis web) untuk keperluan berbeda sebagai berikut: 3.Java 2 Micro Edition (J2ME - berbasis mobile/handphone) J2SE - JAVA 2 STANDARD EDITION Karya fitur, stabil, aman, dan CROSS-PLATFORM. Mendukung BASIS DATA, Rancangan antarmuka pemakai, masukan/keluaran, dan jaringan. J2EE - JAVA 2 ENTERPRISE EDITION KAKAS utk membangun dan menjalankan MULTITIER ENTERPRISE APPLICATIONS. J2EE berisi paket di J2SE ditambah pakey yang mendukung ENTERPRISE JAVABEANS, JAVA SERVLETS, JAVASERVER PAGES, XML dan kendali traksaksi yg fleksibel. J2ME - JAVA 2 MICRO EDITION Utk CONSUMER ELECTRONIC PRODUCT : pager, smart card, cell phone, handheld PDA dan SET-TOP BOX. J2ME berisi SUBSET paket J2SE ditambah paket spesifik MICRO EDITION JAVAX.MICROEDITION.IO. Fitur-fiturnya : JDK 4 KEMAMPUAN JAVA 1. Generics, cara membuat kelas-kelas TYPE-SAFE, menghilangkan keperluan CAST thdp objek-objek saat mengambil objek dari COLLECTION 2. Perbaikan thdp FOR LOOP digunakan pada ITERATOR 3. Jumlah argumen dpt beragam. 4. Boxing/unboxing, konversi otomatis antara tipe primitif dan tipe reference 5. TYPE-SAFE ENUMERATION 6. METADATA Seluruh kemampuan yang dimiliki java dapat dikatakan mampu membuat segala macam yang ada saat ini : 1.berbasis konsol tradisional yang berbasis text (text based application) 2.Berbasis windows atau GUI based application segala platform sistem operasi 3.Aplikasi di web browser dengan menggunakan java Applet 4.Aplikasi Web Server dengan menggunakan Java Servlet, JSP(Java server Page) 5. Aplikasi berbasis model komponen java seperti Component di Borland Dhelpi atau Control di Visual Basic, yaitu java Beans 6. Aplikasi Terbesar skala Enterprise dengan menggunakan EJB (Enterprise Java Beans) disertai basis koneksi basis data messaging (JMS-Java Messaging System) mailing (Java Mail), Konectivitas(JCA-Java Conectivity Architecture), dan RMI (Remote Methide Invocation) dan sebagainya 7. Aplikasi handheld dan mobile computing melalui J2ME (Java 2 Micro Edition) KEMAMPUAN JAVA Dibanding bahasa C++, JAVA memberi kemudahan antara lain: Contoh kemampuan yang dapat disediakan java antara lain : 1.pemrograman berorientasi Objek 2.Reflection dan Procxy 3.Interface dan Inner classes 4.Event Listener Model 5.Graphic User Interface dengan Swing User Interface Toolkit 6.Exception Handling 7.Stream input/Output dan Objek serialization 8.Multithreading 9.Pemrograman Jaringan 10.Objek Objek tersebar 11Basis Data 12.Grafis 13.Internationalization 14.Native Methode 15.Java Applet 16.Java Beans 17.Java Servlet 18Java Server Page 19.Enterprise Java Beans dll. 1. Menghilangkan keperluan DEALOKASI MANUAL. Java dilengkapi GARBAGE COLLECTOR yg bertugas menDEALOKASI MEMORI yg tidk diperlukan 2. Java mrpkn ARRAY sebenarnya, menghilangkan keperluan aritmatika POINTER yg bs mengakibatkan kesalahan 3. Menghilangkan KENISCAYAAN operasi penugasan (ASSIGNMENT) 4. Menghilangkan pewarisan jamak (MULTIPLE INHERITANCE) diganti failitas INTERFACE. FITUR PENTING BAHASA JAVA 1. Program di lingkungan web browser, yaitu APPLET 2. Program di lingkungan web server A. Java Server Pages, sebagai web scripting serupa ASP, PHP dan sebagainya. Pemrograman JSP mengakomodasi pemrograman gaya tempelan seperti PHP, gaya tagging seperti Cold Fusion dan orientasi komponen JavaBeans. 3. Program Mandiri (STAND ALONE APPLICATION), GENERAL PURPOSE LANGUAGE 4. Bahasa skala enterprise Untuk mengembangkan komponen yaitu EJB (Enterprises JavaBeans) yang berjalan diapikasi server.[6] EJB mendukung Component-based softeware engineering. 1. BUKAN mrpkn program JAVA, namun SINTAKS dan SEMNTIKnya seperti BAHASA JAVA JAVASCRIPT Fitur Fitur Unggulan Java BAHASA SEDERHANA BAHASA BERORIENTASI OBJEK 2. TIDAK termasuk teknologi JAVA 3. Karya NETSCAPE, awalnya bernama LIVESCRIPT 4. TIDAK termasuk teknologi JAVA SUN MICROSYSTEMS 1. Bahasa yang sederhana 2. Bahasa orientasi objek 3. Bahasa yang statically typed 4. Bahasa yang di kompilasi 5. Bahasa yang kecil dan sederhana 6. Bahasa yang aman 7. Bahasa yang independen terhadap flatform Java TIDAK MENDUKUNG fitur fitur rumit seperti dibawah ini : 1.Explicit pointer manipulation 2.Implicit type casting 3.Structure and unions 4.Operator overloading 5.Templates 6.Header file 7.Multiple inheritence JAVA memberi kebebasan bagi perancang java itu sendiri dan penyeimbang antara Idealis OOP murni yang memandang semua harus objek dan penerapan model pragmatis dengan Idealis "stay out my way" Model objek di java sederhana dan mudah untuk diperluas, sementara tipe data sederhana seperti interger, float dan char tetap ada untuk mengejar kinerja tinggi tipe data primitif yang langsung didukung perangkat keras. Orientasi Objek adalah cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada pemrograman Orientasi Objek, program merupakan sekelompok Objek yang saling berinteraksi. BAHASA YANG STATICALLY TYPED BAHASA YANG DIKOMPILASI BAHASA YANG AMAN Seluruh objek didalan program harus didefinisikan dulu sebelum dapat digunakan. Pemaksaan ini memungkinkan kompilator java menemukan dan melaporkan terjadinya pertentangan type sehingga menjadi pencegahan kesalahan awal yang tidak perlu(seperti mengurangkan varibel bertype integere dengan variable bertype string) Sebelum menjalankan program di bahasa java. Program dikompilasi menggunakan java compiler. kompiler akan menghasilkan bytecode yang serupa fungsinya dengan file code mesin.bytecode yang telah dihasilkan dapat dieksekusi di sembarang platform yang memiliki Java Interpreter. Java Interpreter membaca bytecode dan menterjemahkan perintah bytecode menjadi perintah bahasa mesin yang dapat dieksekusi mesin. Bahasa java (implementasinya) telah memperoleh pengalaman aspek keamanan dari APPLET JAVA, cara kerja applet sebagai berikut : JAVA menggunakan model pengamanan tiga lapis (three-layer security) untuk melindungi system dari untrusted java code : 1.Pertama, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan aturan pemrograman bahasa java 2.Kedua, class loader menangani pemuatan kelas java ke Runtime Interpreter 3.Ketiga, manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti system file, port, jaringan proses external dan windowing. Platform independence adalah kemampuan program bekerja di sistem operasi atau sistem komputer berbeda. Bahasa Java merupakan bahasa yang secara sempurna tidak bergantung pada platform. BAHASA INDEPENDENT THDP FLATFORM BAHASA MULTITHREADING BAHASA YANG DIDUKUNG GARBAGE COLLECTOR Tipe variabel Java mempunyai ukuran yang sama di semua platform sehingga variabel bertipe integer (int, long) berukuran sama tidak peduli dimana program Java dikompilasi. Juga terhadap penggunaan Java applet di web adalah sama sekali tidak memerlukan perubahan sedikit pun terhadap file .class yang dihasilkan agar dapat dieksekusi di platform manapun. Begitu telah tercipta file .class dengan menggunakan kompilator Java di platform manapun, maka file .class tersebut juga dapat dijalankan di platform manapun. Jadi dimanapun dibikin, dimanapun dapat dijalankan. Thread adalah untuk menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan kakas untuk menulis program multithread, program mempunyai lebih dari satu thread eksekusi pada saat yang sama sehingga memungkinkan program menangani beberapa tugas secara konkruen. Semua aplikasi pasti sedikitnya mempunyai satu thread yang merepresentasikan jalur utama eskekusi. Program Java melakukan garbage collection yang berarti pemrogram tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat di bahasa yang memungkinkan kesalahan alokasi dinamis. Java interpreter memeriksa semua akses sistem yang dilakukan. Program Java tidak dapat menyebabkan crash terhadap sistem. BAHASA YANG TANGGUH Java mempunyai mekanisme execption-handling yang ampuh. Exception handling menyediakan cara untuk memisahkan antara bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke struktur kode program yang lebih bersih dan menjadikan aplikasi menjadi lebih tegar. Ketika kesalahan yang serius ditemukan, program Java menciptakan execption. Exception dapat ditangkap dan dikelola program tanpa resiko membuat sistem menjadi down. Program Java mendukung native method, yaitu fungsi ditulis di bahasa lain, biasanya C/C++. Dukungan native method memungkinkan pemrogram menulis fungsi yang dapat dieksekusi lebih cepat dibanding fungsi ekivalen di Java. Native method secara dinamis akan di-link ke program Java, yaitu diasosiasikan dengan program saat jalan. BAHASA YANG MAMPU DIPERLUAS Bahasa mempunyai banyak fitur modern yang ampuh untuk pengelolaan sistem kompleks. Namun perlu diingat bahwa bahasa Java tetap hanya bahasa pemrograman sekedar kakas. Seluruh kakas pengembangan tetap memerlukan pengembang (pemrogram) yang mampu menggunakannya. Java Development Kit (JDK) berisi sekumppulan kakas baris perintah ( command-line tool ) untuk menciptakan program Java. Berikut adalah daftar komponen utama Java Development Kit (JDK) : JAVA DEVELOPMENT KIT (JDK) 1. Komppilator (javac) 2. Interpreter program java (java) 3. Applet viewer (appletviewer) 4. Debugger (jdb) 5. Class file disassembler (javap) 6. Header and stub file generator (javah) 7. Documentation generator (javadoc) 8. Applet demo 9. Kode sumber Java API Program javac untuk mengkompilasi file kode sumber java menjadi kelas bytecode. File kode sumber mempunyai ekstensi .java. Kompilator javac menghasilkan bytecode kelas dengan ekstensi .class. Kompilator menciptakan satu file .class untuk tiap kelas yang di definisakan di file sumber. Dengan demikian, dimungkinkan satu file kode sumber Java dikompilasi menghasilkan banyak file kelas .class. KOMPILATOR Sintak untuk menggunakan kompilator sebagai berikut : Javac Options ProgramName Interpreter merupakan modul utama sustem Java yang digunakan aplikasi java. Interpreter untuk menjalankan program bytecode Java. Interpreter bertindak sebagai kakas baris perintah untuk menjalankan baris java non grafis. Program grafis memerlukan tampilan yang di dukung browser dan system operasi Sintaks untuk menjalankan interpreter sebagai berikut INTERPRETER Java Options ClassName Arguments •Argument ClassName menspesifikan nama kelas yang ingin di eksekusi. Ketika interpreter mengeksekusi satu class, yang di lakukanya adalah mengeksekusi metode main() di kelas itu. Interpreter keluar ketika metode main() dan thread-thread yang di ciptakan telah berakhir di eksekusi. •Argumen Options menspesifikasikan options cara interpreter mengeksekusi program java Adalah KAKAS untuk pengujian JAVA APPLET secara minimal Baris Perintah untuk menjalankan APPLET Viewer adalah : applviewer Options URL APPLET VIEWER JAVA DEBUGGER (jdb) Argumen Options menspesifikasikan cara menjalankan Java Aplet. Hanya 1 option yang didukung Applet Viewer adalah : -debug yang menyatakan menjalankan applet viewer di Java Debugger yng memungkinkan melakukan debugging thdp Java applet. Argumen URL menspesifikasikan doumen URL berisi halaman HTML dengan EMBEDDED JAVA APPLET. Adalah Utilitas baris perintah untuk melakukan debugging aplikasi. Sintaks untuk menjalankan Java debugger sbb.: jdb Options Argumen Options menspesifikasikan cara menjalankan java debugger JAVA CLASS FILE DISASSEMBLER (javap) Java class disassembler (javap) digunakan untuk melakukan penguraian (disassemble) terhadap file .class. Keluaran default aktivitas disassemble adalah berisi daftar dari publik (public class) dan metode publik (public methode) di kelas. Class file disassembler berguna ketika kode sumber dari kelas tidak dimiliki. Dengan demikian data dan metode publik dapat diketahui sehingga kelas tersebut dapat digunakan. Sintaks untuk disassembler adalah sebagai berikut : javap Options ClassNames - Argumen Options menspesifikasikan cara yang digunakan untuk disassemble. - Argumen ClassNames menspesifikasikan nama satu kelas atau lebih yang akan didisassemble. JAVA HEADER and STUB FILE GENERATOR (javah) Java header and stub file generator (javah) adalah alat yang digunakan untuk menghasilkan C header dan file kode sumber untuk implementasi metodemetode Java dalam bahasa C. Filefile yang dihasilkan dapat digunakan untuk mengakses variabel anggota objek yang ditulis dengan bahasa C. Java header and stub file generator menghasilkan struktur C dengan layout kelas Java. Sintaks untuk menggunakan Java header and stub file generator adalah sebagai berikut : javah Options ClassNames - Argumen options menspesifikasikan cara filefile sumber dihasilkan. Argumen namaKelas adalah nama kelas yang perlu dihasilkan filefile sumber bahasa C. JAVA DOCUMENTATION GENERATOR (javadoc) Java documentation generator (javadoc) adalah alat yang digunakan untuk menghasilkan dokumentasi API secara langsung dari kode sumber Java. Java documentation generator melakukan parsing file sumber Java dan menghasilkan halaman html berdasarkan deklarasi dan komentar. Sintaks untuk menggunakan Java documentation generator adalah sebagai berikut : javadoc Options FileName - Argumen Options menspesifikasikan cara file-file sumber dihasilkan - Argumen FileName menghasilkan paket atau file kode DEMO KODE SUMBER JAVA API JDK juga berisi contoh Proggram Java, semuanya disertai kode sumber JDK disertai kode sumber lengkap utk semua kelas yang membentuk JAVA API. Kode sumber API secara otomatis dipasang di hard drive saat melakukan dekompres JDK. Kode sumber API terdapat di file bernama scr.zip berada di direktori java yang diciptakan di hardirive selama instalasi Java. public class HelloWorldToy { public static void main (String args []) { System.out.println (“Hello World”); } } Program "HELLO WORLD" PENJELASAN PROGRAM DI ATAS public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } } •Kata kunci public disebut access modifier yang mengendalikan ketampakkan terhadap bagian-bagian program yang lain dalam menggunakan kode ini. •Kata kunci class, segala sesuatu di program Java adalah berada di dalam suatu kelas. Berkenaan dengan contoh program sederhana diatas, nama class-nya adalah Hello. •Setelah kata kunci class adalah nama kelasnya. Nama kelas harus dimulai dengan huruf, setelah itu boleh kombinasi huruf dan angka. Dalam penamaan kelas tidak boleh menggunakan kata yang dicadangkan (reserved word yang kebanyakan merupakan kata kunci). Konvensi untuk penamaan kelas adalah kata benda dimulai dengan huruf capital (besar) di awal kata yang berarti. •Class tersebut memiliki fungsi main() dengan parameter variabel args dengan tipe array dari String. Fungsi main ini yang akan mengeksekusi statement System.out.println (“Hello World!”); untuk menampilkan kata Hello World! ke console. •Pasangan kurung kurawal merupakan awal dan akhir badan dari metode. Di Java tiap kalimat harus diakhiri dengan titik koma (; semicolon). Ekspresi diatas memanggil fungsi atau metode println() di objek out yang berada di objek System. Objek out merupakan standar output. Sementara kelas System adalah kelas yang melindungi atau mengkapsulkan seluruh fungsionalitas sistem. Sintaksnya : public static void main (String args[]) { FUNGSI main() fungsi main() harus ditetapkan sebagai berikut : a. public berarti metode dapat dipanggil dari manapun di dalam dan diluar kelas b. static berarti sama untuk seluruh instan dari kelas c. void berarti metode tidak mengirim apapun setelah selesainya. Fungsi main() dapat mempunyai argumen yang diambil dari lingkungan eksekusi. Argumen args[] adalah array objek string argumen-argumen baris perintah yang di lewatkan ke kelas yang dieksekusi, dan kelas Hello mengabaikan seluruh argumen baris perintah. DIAGRAM UML 1. DIAGRAM KELAS (CLASS DIAGRAM) 2. DIAGRAM DINAMIS 2.A. DIAGRAM SEKUEN 3. DIAGRAM KOMPONEN Untuk mengekspresikan model orientasi objek di beragam level abstraksi mulai level KONSEPTUAL sampai level IMPLEMENTASI dan pandangan : STATIS dan DINAMIS Menunjukkan keberadaan kelas-kelas dan hubungan-hubungannya. 1. DIAGRAM SEKUEN (SEQUENCE DIAGRAM) 2. DIAGRAM KOLABORASI (COLLABORATION DIAGRAM) Pandangan grafis satu skenario yg menunjukkan interaksi objek dalam basis waktu, yaitu mana yg lebih dhaulu terjadi dan mana yg berikutnya. Bagus utk dkembangkan di tahap awal analisis karena sederhana dan mudah dipahami Menyediakan pandangan fisik Tipe-Tipe Aplikasi yang Ada di Java 1. Aplikasi Berbasis Window Aplikasi berbasis teks dieksekusi lewat promt atau shell saja untuk menjalankannya, namun aplikasi berbasis teks ini justru bisa menjadi sangat kompleks dan canggih, misalnya : 1.Apache-Jakarta-Tomcat yang sepenuhnya ditulis dengan bahasa Java merupakan webserver yang mempunyai kemampuan Java Servlet dan Java Server Pages. 2.Apache-Jboss merupakan aplikasi server yang mampu memberi kemampuan middleware aplikasi tersebar n-tier berbasis EJB (Enterprise Java Beans). JAVA menyediakan fasilitas Swing (mrpkn bagian JFC-Java Foundation Calsses) ygn memberi kemampuan berbasis Grafis (GUI-Graphical User Interface) yg portabel 2. Applet merupakan aplikasi/program berbentuk bytecode yang akan diinterpretasikan di web browser. 3. Tipe aplikasi java yang lain 1. Java Server Pages merupakan bahasa scripting serupa dengan PHP, seperti ASP, Java mampu langsung ditempelkan di halaman HTML untuk menghasilkan efek tampilan di web browser. Java Server Pages merupakan aplikasi sisiserver sehingga web browser tidak dibebani komputasi. Java Server Pages sepenuhnya mengikuti kaidah bahasa pemrograman Java dan mampu menghasilkan kelas-kelas yang dihasilkan dari kompilasi Java. 2. Java Servlet merupakan aplikasi apllet namun ada di sisi server (bukan web browser). Java Servlet memberikan layanan yang diminta lewat web browser, dimana web server akan mengeksekusi atau mendelegasikan sepenuhnya layanan ke suatu java servlet. 3. Java Beans merupakan konsep model komponen yang ada di Java. 4. Eneterprise Java Beans untuk mengusung konsep n-tier computing 5. Java Micro Edition merupakan pemrograman untuk membangun aplikasi pada handheld devices atau perangkat genggam seperti handphone dan sebagainya. Program java biasanya melewati lima fase yaitu : SIKLUS PROGRAM JAVA FASE 1 FASE 2 1. Edit 2. Compaile 3. Loading4. 5. Execute Verify Editing afile (penyuntingan file program) fase penyuntingan dilakukan dengan editor teks. Pemrograman mengetik program sumber kemudian program sumber disimpan sebagai file program sumber harus berekstensi (berakhiran) .java untuk identifikasi ekstensi .java, mengidentifikasi file merupakan kode sumber dibahasa .java. Compile (kompilasi program sumber) Program memberikan perintah`: javac <file kode sumber> Perintah diatas memanggil kompilator java untuk menerjemahkan program sumber menjadi bytecode. Serangkaian instruksi yang dipahami java interpreator untuk mengompilasi file program nama file .java, maka kita ketikkan perintah (prompt atau MSDOS di windows) javac nama file .java. Jika javac mengkompilasi dengan benar maka kompilator javac akan menghasilkan file bernama, nama file .class, file ini berisi bytecode yang akan diinterpresikan selama fase eksekusi. LOADING FASE 3 Program yang dieksekusi (class) harus lebih dalam berada dimemori sebelum dieksekusi. Aktifitas pemuatan ke memori dilakukan class loader dengan mengambil file .calss berisi byte code dan mentransfer memori utama file .class dapat dimuatkan dari disk system local atau jaringan VERIFY FASE 4 Begitu kelas dimemori byte code diverifikasi bytecode verifier, verifikasi ini untuk menjamin sah dan tidak melanggar batasan keamanan java .java memaksakan keamanan secara ketat agara program darai jaringan tidak merusak system local milik kita sebagaimana virus dapat melakukannya EXECUTE FASE 5 Interpreter dibwah kendali system operasi menginterpretasikan satu bytecode, satu saat dan melakukan aksi-aksi yang dispesifikasikan bytecode. Dalam 5 FASE itu, pemrogram peduli dengn 3 FASE AKTIVITAS, yaitu : 1. Penyuntingan menggunakan editor teks 2. Kompilasi menggunakan javac 3. Eksekusi menggunakan : a. java interpreter (java) untuk aplikasi b. web browser atau appletviewer untuk applet. DUA JENIS PROGRAM BERBEDA APLIKASI APPLET 1. APLIKASI ; 2. APPLET Program yg disimpan dan dieksekusi komputer lokal. Program di komputer jauh yang di koneksi lewat web browser. JAVA INTERPRETER (java) AKAN MENJALANKAN INTERPRETER YNG MENGINTERPRETASIKAN APLIKASI WelcomToy dan menyebabkan class loader memuatkan program bytecode WelcomeToy.class PROSES PENEMUAN ORGANISASI PROGRAM 1. LEXICAL ANALYZER, melakukan analisa leksik (kexical analysis) atau pemindaian (scan) untuk mencari sekuen karakter disbut TOKEN, membentuk identifier, operator dsb. 2. PARSER, melakukan parsing bertanggung jawab utk menemukan level organisasi lebih tinggi di sekuen token yang menghasilkan lexical analyzer. elemen terkecil di program yang mempunyai arti bagi kompilator. Token Java dibagi 5, yaitu: TOKEN 1.Identifier 2.Keyword 3.Literal 4.Operator 5.Separator Identifier adalah token yang merepresentasikan nama. Dalam Java, identifier adalah nama yang diberikan untuk variable, class, atau method. Identifier boleh dimulai dengan huruf, underscore (_) atau tanda dollar ($). Identifier adalah case sensitive (membedakan huruf besar/ kecil) dan tidak ada batas maksimum. Contoh : IDENTIFIER username user_name _sys_var1 $change Harus mempunyai tipe. Kita mendeklarasikan variabel dengan menempatkan tipe lebih dahulu, diikuti nama variabel Contoh : VARIABEL KONSTANTA KEYWORD LITERAL LITERAL INTEGER LITERAL FLOATING-POINT double salary; long distance; boolean flag; int nrDays; int i,j,k; Nama adalah case-sensitive sehingga Big box, bigbox adalah berbeda. Menggunakan kata kunci (keyword) final untuk menunjukkan konstanta. Nama Konstanta adalah huruf BESAR seluruhnya, misalnya : final double PHI = 3.14 final double CM_PER_INCH = 2.54 Pendefinisian konstanta dilakukan di luar metode main (). Dengan demikian konstanta dpt digunakan di metode2 lain di kelas yang sama. <Nama Kelas>.<Nama Konstanta> Keyword (kata kunci) adalah dentifier yang digunakan dalam Java untk suatu tujuan khusus. Daftar keyword Java sebagai berikut: abstract, Boolean, Break, Byte, byvalue, Case, Catch, Char, Class, Const, continue, default, Do, double, else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, In, Interface, Long, Native, New, Null, Package, private, protected, public, return, short, static, Super, Switch, synchronized, This, threadsafe, throwm Transient, True, Try, Void, while. Penulisan besaran untuk variabel adalah penting, literal Java terdiri dari angka, karakter, dan string. Angka terdiri dari bilangan bulat (integer), bilangan mengambang (floating point), dan boolean. Nilai boolean untuk true dan false direpresentasikan sebagai 1 dan 0. KARAKTER selalu mengacu ke karakter UNICODE. STRING berisi rangkaian KARAKTER Bilangan integer dapat mempunyai beberapa format berikut ; 1. DECIMAL (basis 10) sebagai blngan biasa tanpa notasi khusus. 2. HEXADECIMAL (basis 16), dimulai ox atau oX serupa dengan cara C/C++ 3. OCTAL (basis 8), dimulai dengan o Contoh : Bilangan desimal 12 direpresentasikan : a. 12 dalam DECIMAL b. oxC dalam HEXADECIMAL c. o14 dalam OCTAL Contoh : Bialngan 563.84 juga dapat diekspresikan sebagai 5.6384e2 LITERAL FLOATING-POINT LITERAL KARAKTER LITERAL STRING Secara default bilangan floating point bertipe double 64-bit. Kita menggunakan float 32bit dengan menambah f atau F di akhir angka seperti : 5.6384e2f direpresentasikan satu karakter unicode tunggal dan muncul di pasangan tanda petik tunggal ('..'), karakter khusus direpresentasikan backslash ( \ ) diikuti kode karakter Contoh : karakter spesial \n adalah karakter untuk memaksakan baris baru merepresentasikan banyak karakter dan muncul di dalam pasangan tanda petik ganda ("..") Separator digunakan untuk menginformasikan ke komplator Java mengenai adanya pengelompokkan di kode program. Berikut daftar separator yang digunakan dalam Java: (...) Kurung / PARENTHESES Untuk menghimpun parameter dalam definisi dan pemanggilan method, juga digunakan untuk menyatakan tingkat pernyataan, menghimpun pernyataan, untuk pengaturan alur program, dan untuk menyatakan tipe cast (cast types) {...} Kurung Kurawal / BRACES Untuk menghimpunnilai yang otomatis dimasukkan ke dalam array, digunakan juga untuk mendefinisikan blok program, untuk cakupan class, method, dan lokal. SEPARATOR [...] Kurung SIKU / BRACKETS Untuk menyatakan tipe array dan untuk membedakan nilai array. ; Titik Koma / SEMICOLON Mengakhiri Pernyataan. , Koma / COMMA Pemisah urutan identifier dalam deklarasi variabel dan untuk merangkai pernyataan di dalam kalimat for . Titik / PERIOD Untuk memisahkan nama paket dari sub-paket dan class dan untuk memisahkan variabel atau method dari variabel referensi. WHITESPACE KOMENTAR Terdiri dari spasi, tab, dan tanda ubah garis / linefeed Aturan whitespace sbb. : SpaceCharacter HorizontalTabCharacter FormFeedCharacter LineTerminator EndOfFileMarker Jenis komentar : /* komentar */ : seua karakter diantara itu akan diabaikan // komentar : semua karakter seteah itu sampai akhir naris akan diabaikan /** komentar **/ : digunakan kakas javadoc untuk menciptakan dokumen TIPE DATA JAVA ADALAH STRONGLY TYPE LANGUAGE KATEGORI TIPE DATA Tipe data mendefinisikan metode penyimpanan untuk mereperesentasikan informasi dan cara informasi diinterprentasikan. Tipe data berkaitan erat dengan penyimpanan variabel di memori karena tipe data variabel menentukan cara kompilator menginterpretasikan isi memori 1. Setiap variabel hrs mempunyai tipe 2. semua penugasan, baik eksplisit atau via pelewatan parameter melewati pemeriksaan kompatibiliti tipe 3. kompilatr java memeriksa semua ekspresi dan parameter Tipe data dalam Java dibagi 2 kategori: 1. Sederhana, Tipe data sederhana merupakan tipe inti. Tipe sederhana ini tidak diturunkan dari tipe lain. Tipe ini sering disebut juga dengan tipe primitive. Terdapat 8 tipe tipe sederhana dan dipisahkan dalam 4 kelompok: A. Empat tipe adalah untuk bilangan bulat (integer) bertanda: byte, short, int, dan long. B. Dua untuk tipe angka titik mengambang (floating point) atau bilangan pecahan: float dan double. C. Satu untuk tipe karakater yaitu char, mewakili simbol pada himpunan karakter seperti tulisan dan angka. D. Satu untuk tipe Boolean, merupakan tipe khusus untuk menunjukkan besaran logika (nilai-nilai logika). 2. Komposit, Tipe data komposit disusun dari tipe data sederhana atau tipe komposit lain yang telah ada. Tipe ini antara lain: string, array, class, dan interface.