Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

java learning to easy learning by the way, Thesis of Java Programming

You are asked to design a direct network for a multicomputer with 64 nodes using a three-dimensional torus, a six-dimensional binary hypercube, and cube¬connected-cycles (CCC) with a minimum diameter. The following questions are related to the relative merits of these network topologies: Let d be the node degree, D the network diameter, and I the total number of links on a network. Suppose the quality of a network is measured by (d x D x i)

Typology: Thesis

2016/2017

Uploaded on 09/12/2017

pado-indak
pado-indak 🇮🇩

1 document

1 / 182

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
B
Be
er
rf
fi
ik
ki
ir
r
O
Ob
bj
je
ek
k:
:
C
Ca
ar
ra
a
E
Ef
fe
ek
kt
ti
if
f
M
Me
en
ng
gu
ua
as
sa
ai
i
J
Ja
av
va
a
G
Gi
in
na
an
nj
ja
ar
r
U
Ut
ta
am
ma
a
ginanjar_utama@yahoo.com
IlmuKomputer.Com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download java learning to easy learning by the way and more Thesis Java Programming in PDF only on Docsity!

BeBerrffiikkiirr OObbjjeekk::

Ca Carraa EEffeekkttiiff

MeMenngguuaassaaii JJaavvaa

Gi Ginnaannjjaarr UUttaammaa

ginanjar_utama@yahoo.com

IlmuKomputer.Com

Berfikir Objek: Cara Efektif Menguasai Java

Berfikir Objek: Cara Efektif Menguasai Java

  • BAB I.YOUR SURVIVAL KIT IN MASTERING JAVA
    • A.SEKILAS MENGENAI TEKNOLOGI JAVA..........................................................................................................................
      • 1.Mengapa kita perlu belajar bahasa Java?......................................................................................................
        • a)Visi Java.......................................................................................................................................................
        • b)Karakteristik Java
        • c)Java di Indonesia dan Dunia
    • B.INSTALASI DAN PENGENALAN LINGKUNGAN JAVA..........................................................................................................
      • 1.Struktur Direktori Java....................................................................................................................................
      • 2.Menjalankan Program Demo dan Melihat Dokumentasi API
        • a)Dokumentasi API.........................................................................................................................................
      • 3.Package dan Classpath..................................................................................................................................
    • C.LATIHAN:
  • BAB II.PENGENALAN IDE NETBEANS DAN ECLIPSE...............................................................................
    • A.KONSEP – KONSEP PENTING
      • 1.Templates.......................................................................................................................................................
      • 2.Filesystems.....................................................................................................................................................
      • 3.Modules..........................................................................................................................................................
      • 4.Projects..........................................................................................................................................................
    • B.BERKELILING DALAM IDE.......................................................................................................................................
      • 1.Jendela Utama...............................................................................................................................................
        • a)Menus dan Toolbars...................................................................................................................................
      • 2.Workspaces....................................................................................................................................................
      • 3.GUI Editing....................................................................................................................................................
      • 4.Browsing........................................................................................................................................................
      • 5.Running..........................................................................................................................................................
      • 6.Debugging......................................................................................................................................................
  • BAB III.CORE JAVA AT MINIMUM................................................................................................................
    • A.DATA TEKS............................................................................................................................................................
      • 1.Character.......................................................................................................................................................
      • 2.String..............................................................................................................................................................
      • 3.StringBuffer....................................................................................................................................................
        • a)Konversi dari String ke bilangan................................................................................................................
    • B.BILANGAN DAN MATEMATIKA..................................................................................................................................
      • 1.Angka-angka..................................................................................................................................................
        • b)Mengkonversi Number dari dan ke String.................................................................................................
        • c)Memformat angka-angka............................................................................................................................
      • 2.Fungsi-fungsi matematis................................................................................................................................
        • a)Bilangan acak (Random Numbers).............................................................................................................
      • 3.Bilangan Besar...............................................................................................................................................
  • BAB IV.CLASS DAN OBJECT
    • A.KONSEP OBJEK.......................................................................................................................................................
    • B.MODEL SEBAGAI ABSTRAKSI DARI DUNIA NYATA..........................................................................................................
      • 1.Hirarki Model.................................................................................................................................................
    • C.CONTOH ABSTRAKSI DARI RUMAH DAN SWITCH............................................................................................................
    • D.REFERENSI............................................................................................................................................................
    • E.CLASS SEBAGAI CETAK BIRU DARI OBJEK..................................................................................................................... - a)Konvensi penamaan Class:.........................................................................................................................
      • 1.Field...............................................................................................................................................................
      • 2.Method............................................................................................................................................................
      • 3.Parameter.......................................................................................................................................................
      • 4.Letak data dalam memori..............................................................................................................................
      • 5.Array..............................................................................................................................................................
      • 6.Lingkup dari deklarasi variabel
      • 7.Kata kunci Static
  • BAB V.INISIALISASI DAN CLEANUP..............................................................................................................
    • A.CONSTRUCTOR.......................................................................................................................................................
    • B.METHOD OVERLOADING..........................................................................................................................................
    • C.OVERLOADING AND RETURN VALUE.........................................................................................................................
    • D.OVERLOADING CONSTRUCTORS................................................................................................................................
    • E.CONSTRUCTOR DEFAULT
    • F.REFERENSI THIS
    • G.PEMANGGILAN THIS DALAM CONSTRUCTOR
    • H.INISIALISASI VARIABEL............................................................................................................................................
    • I.URUTAN INISIALISASI OBJECT
    • J.URUTAN INISIALISASI CLASS
    • K.INSIALISASI ARRAY
    • L.FINALIZATION DAN CLEANUP....................................................................................................................................
  • BAB VI.REUSING CLASSES...............................................................................................................................
    • A.KOMPOSISI OBJEK.
    • B.COMPOSITION WITH FORWARDING..............................................................................................................................
    • C.INHERITANSI ATAU PEWARISAN..................................................................................................................................
    • D.KAPAN MENGGUNAKAN COMPOSITITON ATAU INHERITANCE............................................................................................
  • BAB VII.POLYMORPHISM DAN INTERFACE..............................................................................................
  • BAB VIII.MERANCANG CLASS
    • A.PENTINGNYA BERFIKIR SECARA OBJEK
    • B.DEKOMPOSISI PROSEDURAL DAN DEKOMPOSISI STRUKTUR OBJEK.....................................................................................
    • C.MERANCANG CLASS MONEY...................................................................................................................................
  • BAB IX.BELAJAR COLLECTIONS...................................................................................................................
    • A.TIPE-TIPE INTERFACE DARI COLLECTIONS...................................................................................................................
    • B.SETS.....................................................................................................................................................................
    • C.LISTS....................................................................................................................................................................
    • D.MAPS................................................................................................................................................................... - 1.Tips pemrograman dan perancangan API
  • BAB X.COMPONENT SWING DAN LAYOUT MANAGER..........................................................................
    • A.KONTAINER DAN KOMPONEN...................................................................................................................................
      • KOMPONEN-KOMPONEN YANG BERADA PADA PUNCAK SETIAP HIRARKI APLIKASI SWING. B.TOP-LEVEL CONTAINERS
    • C.LAYOUT MANAGEMENT YANG EFEKTIF - 1.Apa itu Layout Manager?............................................................................................................................ - 2.BorderLayout............................................................................................................................................... - 3.FlowLayout.................................................................................................................................................. - 4.BoxLayout - 5.GridLayout................................................................................................................................................... - 6.CardLayout.................................................................................................................................................. - 7.GridBagLayout............................................................................................................................................. - 8.nullLayout.................................................................................................................................................... - 9.AbsoluteLayout.............................................................................................................................................
  • BAB XI.OBSERVER DAN CUSTOM EVENT.................................................................................................
    • A.OBSERVER..........................................................................................................................................................
    • B.CUSTOM EVENT...................................................................................................................................................
  • BAB XII.IKHTISAR ATURAN-ATURAN JAVABEAN - 1.Konvensi nama untuk atribut.......................................................................................................................
    • B.EVENT-EVENT DALAM JAVABEANS.......................................................................................................................... - 1.Predefined Event Sets...................................................................................................................................
    • B.MENGIRIMKAN EVENT KEPADA LISTENERS.................................................................................................................
      • 1.Awal :...........................................................................................................................................................
      • 2.Menambah komponen :
      • 3.Memodifikasi atribut dari komponen:
      • 4.Menambah kode untuk fungsionalitas :
      • 5.Menambahkan TimerBean, dan menset sebuah event handler :
    • C.TAMBAHAN MODIFIKASI (UNTUK JAVABEANS SUDAH SELESAI).....................................................................................
      • 1.Menambah event handler.............................................................................................................................
  • BAB XIII.EVOLUSI KODE................................................................................................................................
  • BAB XIV.SERVICE ORIENTED OBJECT......................................................................................................
    • A.DATA ORIENTED MATRIX
    • B.SERVICE ORIENTED MATRIX..................................................................................................................................
    • C.SERVICE ORIENTED STAMP DISPENSER....................................................................................................................
      • 1.Versi light dengan pendekatan objek...........................................................................................................
      • 2.Dengan pendekatan prosedural
      • 3.Implementasi yang berbeda dengan State pattern.......................................................................................
  • BAB XV.ACCOUNT BY BILL VENNER.........................................................................................................

Gambar 1 Java API

b)Karakteristik Java

 Sederhana, semudah C dan seampuh C++: berlawanan dengan anggapan orang- orang bahwa bahasa Java sulit untuk dipelajari, Java gampang untuk dipelajari terutama untuk orang yang sudah mengenal pemrograman tapi belum terlalu terikat pada paradigma pemrograman prosedural. Tentu saja ini berarti bahwa kita harus siap mempelajari salah satu teknologi yang berkembang paling cepat di dunia dalam dua tahun terakhir ini dengan banyak membaca tentunya baik dari buku maupun melalui web.  Sangat berorientasi objek (OOP) dengan implementasi yang sangat baik sehingga kita bukan hanya belajar bagaimana membuat program yang baik ( reusable , scalable , dan maintanable ) tetapi juga kita belajar bagaimana cara berfikir yang baik untuk mengenali struktur masalah yang sedang kita hadapi dan memecahkannya secara sistematis dengan pola-pola tertentu ( patterns ). Bahasa berorientasi objek biasanya mempunyai ciri-ciri sebagai berikut: o Abstraksi yang baik untuk memudahkan pemahaman dan komunikasi. o Enkapsulasi: penyembunyian informasi dari pihak-pihak yang tidak memerlukannya sehingga kompleksitas tetap tertangani dengan baik. o Pewarisan dan polymorphism, teknik yang menyebabkan objek menjadi modular dan mudah untuk dicopot dan dipasang objek yang lain Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

o Komposisi dan Interface, berguna untuk membuat tingkat kopling yang lebih rendah dan struktur hirarki objek-objek yang rapih sehingga kita bisa mengintegrasikan komponen-komponen untuk membuat sistem yang besar.  OpenPlatform, Write Once Run Anywhere (WORA), portabel atau multi platform, program yang kita buat dapat dijalankan di Windows, Linux/Unix, Solaris, dan MacIntosh tanpa perlu diubah maupun di kompilasi ulang. Java adalah juga bahasa yang paling sesuai digunakan bersama dengan XML yang membuat data menjadi portabel, ini karena kelahiran XML tidak terlepas dari dukungan parser-parser berbahasa Java. Selain itu Java turut serta dalam mengkonvergenkan protokol menjadi Open protokol yaitu IP (Internet Protocol) terutama dalam Micro Java  Arsitekturnya yang kokoh dan pemrograman yang aman didukung oleh komunitas Open Source (ketiga terbesar setelah C dan C++ di SourceForge.net dan implementasi bahasa Java sudah menjadi milik umum). Dalam Java program yang kita buat tidak mudah untuk “hang” karena konflik pada memori biasanya diselesaikan dengan mengumpulkan objek-objek yang sudah tak terpakai lagi secara otomatis oleh garbage collector. Penanganan kesalahan juga dipermudah dalam Java dengan konsep Exception.  Bukan sekedar bahasa tapi juga platform sekaligus arsitektur. Java mempunyai portabilitas yang sangat tinggi. Ia dapat berada pada smartcard, pager, POS (Point of Service), handphone, PDA, palm, TV, Embedded device (PLC, micro controller), laptop, pc, dan bahkan server). Menyadari akan hal ini (one size doesn’t fit all) Sun membagi arsitektur Java membagi tiga bagian, yaitu:

  1. Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi sistem tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi. Merupakan superset dari Standar Java
  2. Standar Java (J2SE), ini adalah yang biasa kita kenal sebagai bahasa Java, dan merupakan fokus kita sekarang.
  3. Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya yang banyak dipakai adalah untuk wireless device / mobile device Gambar 2 Hirarki dan Portabilitas Teknologi Java Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

persyaratan J2EE compliance seperti IBM Web Sphere, Oracle Application Server, BEA WebLogic, Sun iPlanet ApplicationServer, JBoss dan lain-lain. Karena portabilitasnya yang sangat tinggi maka Java merupakan platform yang ideal untuk dapat beralih ke OpenSource. Ini berarti perusahaan tidak kehilangan investasinya dalam perangkat lunak yang mahal dan sulit untuk di buat ulang. Contohnya sekarang ini banyak sekali perusahan yang memakai sistem operasi maupun aplikasi umum yang ilegal (bajakan), kemudian perusahaan itu mengembangkan aplikasi sendiri yang berjalan pada sistem operasi maupun pada aplikasi office bajakan tersebut. Seandainya nanti peraturan semakin ketat, hukum ditegakkan maka perusahaan itu mempunyai pilihan untuk membayar lisensi atau menggunakan produk-produk gratis dari OpenSource, seperti Linux dan OpenOffice.

B.Instalasi dan Pengenalan Lingkungan Java

1.Struktur Direktori Java

Seluruh software yang berkaitan dengan Java dapat didownload secara gratis di java.sun.com (The Source of Java Technologies). Setelah mendownload J2SE (versi terakhir sekarang: 1.4.2_01) maka untuk menginstallnya cukup dengan menjalankan programnya saja atau dengan program instalasi (di Linux dengan Package Manager). J2SE kemudian akan diekstrak pada struktur direktori tertentu Struktur berikut ini menampilkan direktori dan file-file penting yang sering digunakan untuk membangun aplikasi Java: jdk1. ___________|____________________ | | | bin lib jre | | __________|_____________________ java.exe tools.jar | | javac.exe dt.jar bin lib javap.exe _____|____ __________ ________|_______ ________ javah.exe | | | | | | | javadoc.exe java.exe classic hotspot rt.jar ext security applet java.dll | | i18n.jar awt.dll jvm.dll jvm.dll Kemudian ada lagi file-file dan direktori tambahan untuk demo, kode sumber dari Java API, dan file header C. Berikut ini adalah struktur direktorinya: jdk1. ___________|__________ __________ | | | | demo include include-old src.jar | _________ __________ | | | | applets jfc jpda sound Untuk memastikan J2SE telah terpasang dengan benar dalam komputer kita, coba ketikkan pada MS-DOS prompt: C:>java -version Jika keluarannya seperti ini: java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24) Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode) anda telah berhasil memasang JDK.Untuk versi yang lain tampilannya sudah pasti berbeda pula Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

Jika keluarannya: Bad command or file name, maka kita perlu menambah setting variabel lingkungan PATH pada sistem kita untuk menunjuk direktori bin\ pada direktori instalasi Java. Contoh: bila anda menggunakan WindowsXP maka anda bisa langsung menambahkan PATH pada Environment Variable pada properties dari My Computer. Jika anda menggunakan Windows versi sebelumnya maka anda perlu merubah file Autoexec.bat dan menambahkan SET PATH = %PATH%;C:\jdk1.3.1_01\bin lalu melakukan reboot.

2.Menjalankan Program Demo dan Melihat Dokumentasi API

Selanjutnya kita akan mencoba menjalankan program Demo untuk melihat bagaimana sebuah program Java dijalankan. C:\jdk1.3.1_01\DEMO\JFC>cd SwingSet C:\jdk1.3.1_01\DEMO\JFC\SwingSet2>dir Volume in drive C has no label Volume Serial Number is 3852-15DD Directory of C:\jdk1.3.1_01\DEMO\JFC\SwingSet

.

10/11/01 5:52a. .. 10/11/01 5:52a .. README TXT 335 08/08/01 2:13p README.TXT SWINGS~1 HTM 314 08/08/01 2:13p SwingSet2.html SWINGS~1 JAR 1.357.238 08/08/01 2:13p SwingSet2.jar SWINGS~2 HTM 1.085 08/08/01 2:13p SwingSet2Plugin.html SRC 10/11/01 5:52a SRC 4 file(s) 1.358.972 bytes 3 dir(s) 4.533.94 MB free C:\jdk1.3.1_01\DEMO\JFC\SwingSet2>java -jar SwingSet2.jar C:\jdk1.3.1_01\DEMO\JFC\SwingSet2>appletviewer SwingSet2.html Sekarang cobalah untuk menjalankan SwingSet2.html dari browser anda, jika tidak berjalan maka ini berarti Java-Plugin belum terpasang. Untuk versi 1.4 otomatis memasang Java-Plugin. Kita coba lagi untuk menjalan satu program demo lagi untuk melihat kemampuan Java dalam grafik 2D C:\jdk1.3.1_01\DEMO\JFC\Java2D>java -jar Java2Demo.jar

a)Dokumentasi API

Dokumentasi pustaka class atau API bisa didownload secara langsung (terpisah dari SDK) atau kita dapat membuatnya dengan javadoc. Jika anda telah mendownloadnya maka ekstrak ke dalam direktori tempat Java dipasang. Dokumentasi API wajib untuk dimiliki setiap pemrogram dalam bahasa Java, karena ia merupakan pintu masuk dari semua fasilitas yang diberikan oleh Java. Sun sendiri mempunyai tujuan agar API ini merupakan abstraksi interface dari sistem operasi yang berarti kita tidak bergantung terhadap sistem operasi di mana kita berada. Memrogram dalam bahasa Java membutuhkan pemahaman yang baik tentang API, karena semua masalah yang biasa dihadapi oleh pemrogram sehari-hari biasanya sudah diselesaikan dalam API. Jangan pernah ragu dalam menginvestasikan waktu anda untuk mempelajari API dan model-model pemrogramannya. Dokumentasi API mempunyai format HTML dan mendeskripsikan interface-interface dan class-class yang sudah ada. Kadang-kadang juga diberikan cara penggunaan dari class tersebut. Jika kita ingin melihat contoh penggunaan dari API tersebut salah satunya adalah di http://www.javaalmanac.com Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

C:\jdk1.3.1_01>jar xvf src.jar akan terbentuk direktori src yang berisi kode sumber API Java. Silahkan lihat bagaimana implementasi dari class java.util.Date pada file src\java\util\Date.java. Untuk J2SDK 1.4.0 maka filenya adalah src.zip dan dapat di ekstrak dengan WinZIP atau RAR

3.Package dan Classpath

Sekarang kita akan membuat sebuah program kecil untuk membiasakan berbicara dalam bahasa Java. Buatlah sebuah direktori learn dan buat file text HelloDate1.java di dalam direktori tersebut. Ini bukanlah contoh program berorientasi objek yang baik, dan hanya dimaksudkan untuk menjelaskan cara kompilasi dan eksekusi, menerangkan konsep package secara ringkas, cara menampilkan hasil ke layar dan bagaimana menggunakan API /*

  • HelloDate1.java
  • Created on March 4, 2002, 8:50 AM / package learn; import java.util.Date; /*
  • @author Ginanjar Utama
  • @version / public class HelloDate1 { /* Creates new HelloDate / public HelloDate1() { } /*
  • @param args the command line arguments */ public static void main (String args[]) { System.out.println("Sekarang tanggal " + new Date()); //Contoh output Sekarang: tanggal Mon Mar 04 08:51:57 ICT 2002 } } C:\NETBEANS\sampledir\learn>dir Volume in drive C has no label Volume Serial Number is 3852-15DD Directory of C:\NETBEANS\sampledir\learn

.

04/03/02 8:27a. .. 04/03/02 8:27a .. HELLOD~1 JAV 331 04/03/02 8:51a HelloDate1.java~ NBATTR~1 84 04/03/02 8:50a .nbattrs HELLOD~3 JAV 418 04/03/02 8:51a HelloDate1.java 3 file(s) 833 bytes 2 dir(s) 5.184.84 MB free Cara mengkompilasinya adalah C:\NETBEANS\sampledir\learn>javac HelloDate1.java Hasil kompilasinya adalah HelloDate1.class, inilah yang disebut dengan bytecode C:\NETBEANS\sampledir\learn>dir Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

Volume in drive C has no label Volume Serial Number is 3852-15DD Directory of C:\NETBEANS\sampledir\learn

.

04/03/02 8:27a. .. 04/03/02 8:27a .. HELLOD~1 JAV 331 04/03/02 8:51a HelloDate1.java~ HELLOD~1 CLA 688 04/03/02 9:08a HelloDate1.class NBATTR~1 84 04/03/02 8:50a .nbattrs HELLOD~3 JAV 418 04/03/02 8:51a HelloDate1.java 4 file(s) 1.521 bytes 2 dir(s) 5.172.84 MB free kemudian kita coba menjalankannya dengan C:\NETBEANS\sampledir\learn>java HelloDate1.class Exception in thread "main" java.lang.NoClassDefFoundError: HelloDate1/class Untuk menjalankannya tidak perlu menggunakan ekstensi .class C:\NETBEANS\sampledir\learn>java HelloDate Exception in thread "main" java.lang.NoClassDefFoundError: HelloDate1 (wrong name: learn/HelloDate1) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Karena program yang kita buat ada dalam package learn maka nama lengkap Class yang kita buat adalah learn.HelloDate C:\NETBEANS\sampledir\learn>java learn.HelloDate Exception in thread "main" java.lang.NoClassDefFoundError: learn/HelloDate Ternyata jvm juga belum berhasil menemukan Class yang ingin dijalankan. C:\NETBEANS\sampledir\learn>cd .. C:\NETBEANS\sampledir>java learn.HelloDate Sekarang tanggal Mon Mar 04 09:20:46 ICT 2002 Akhirnya berhasil juga kita menjalankan program ini. Apabila kita masih gagal juga (terutama untuk lingkungan Linux), jangan menyerah dulu, ini berarti kita harus menset CLASSPATH untuk menunjuk ke current directory dengan SET CLASSPATH=.; atau pada Linux export CLASSPATH=./: Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

  1. public learn.HelloDate1(); ini adalah method khusus yang disebut dengan konstruktor dan isinya kosong
  2. public static void main(java.lang.String[]); ini adalah method yang harus ada pada setiap program yang ingin untuk dieksekusi. Jika program yang ingin dieksekusi tidak memiliki method main maka akan ditampilkan java.lang.NoSuchMethodError: main Exception in thread "main" Pada program ini kita ingin menampilkan waktu pada saat ini. Untuk menampilkan text dilayar digunakan static method System.out.println(String string); dan instansasi dari class java.util.Date. Karena class Date bukan dari package java.lang maka apabila kita tidak menuliskan dalam FQN (Fully Qualified Name), kita harus mengimpornya dengan pernyataan import java.util.Date; Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

Sekarang kita gabungkan menjadi: System.out.println("Sekarang tanggal " + new Date()); Satu-satunya operator yang dioverload di dalam Java adalah operator “+”. Operasinya pun terbatas hanya untuk penyambungan String saja. Apabila “+” diikuti oleh suatu object maka secara otomatis method toString() dari objek tersebut akan dipanggil dan akan mengembalikan suatu object yang bertipe String. Sekarang kita akan mencoba program yang kedua, masih tentang waktu yaitu belajar memformat waktu dengan SimpleDateFormat /*

  • HelloDate2.java
  • Created on March 4, 2002, 10:33 AM / package learn; import java.text.SimpleDateFormat; import java.util.Date; /*
  • @author Ginanjar Utama
  • @version / public class HelloDate2 { /* Creates new HelloDate2 */ Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved. Agar lebih jelas lagi silahkan lihat dokumentasi API untuk java.util.Date Compiled from Date.java public class java.util.Date extends java.lang.Object implements java.io.Serializable, java.lang.Cloneable, java.lang.Comparable { public java.util.Date(); public java.util.Date(long); public java.util.Date(int,int,int); public java.util.Date(int,int,int,int,int); public java.util.Date(int,int,int,int,int,int); public java.util.Date(java.lang.String); public java.lang.Object clone(); public static long UTC(int, int, int, int, int, int); public static long parse(java.lang.String); public int getYear(); public void setYear(int); public int getMonth(); public void setMonth(int); public int getDate(); public void setDate(int); public int getDay(); public int getHours(); public void setHours(int); public int getMinutes(); public void setMinutes(int); public int getSeconds(); public void setSeconds(int); public long getTime(); public void setTime(long); public boolean before(java.util.Date); public boolean after(java.util.Date); public boolean equals(java.lang.Object); public int compareTo(java.util.Date); public int compareTo(java.lang.Object); public int hashCode(); public java.lang.String toString(); public java.lang.String toLocaleString(); public java.lang.String toGMTString(); public int getTimezoneOffset(); static {}; } Untuk menginstansiasi Date ada 5 pilihan konstruktor yang dapat digunakan. Dalam contoh ini kita menggunakan konstruktor yang tidak memiliki masukan untuk mengambil waktu sekarang.

dstSavings=3600000,useDaylight=false,startYear=0,startMode=0, startMonth=0,startDay=0,startDayOfWeek=0,startTime=0,startTimeMode=0, endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0], firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2002,MONTH=2, WEEK_OF_YEAR=10,WEEK_OF_MONTH=2,DAY_OF_MONTH=4,DAY_OF_YEAR=63, DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=11,HOUR_OF_DAY=11, MINUTE=9,SECOND=4,MILLISECOND=490,ZONE_OFFSET=25200000,DST_OFFSET=0] Sekarang jam 12:40: hari ke 63 tahun 2002 di Asia/Bangkok Catatan: banyak method pada class Date yang digantikan fungsinya oleh class Calendar. Untuk memformat penampilan waktu tetap diperlukan tipe Date sehingga diperlukan method getTime() pada Calendar. Perhatikan pada inisialiasi variabel currentTime digunakan factory method getInstance() karena Calendar dideklarasikan abstrak maka konstruktornya tidak dapat dipanggil secara langsung dan hasil instansiasinya adalah turunannya yaitu GregorianCalendar.

C.Latihan:

  1. Temukan lokasi dari class System, dan mengapa class ini tidak perlu diimpor?
  2. Buat format representasi yang berbeda pada program HelloDate2 dengan membaca dokumentasi API.
  3. Bandingkanlah class-class berikut ini:  java.util.Date  java.util.Calendar  java.util.GregorianCalendar  java.sql.Date  java.sql.Time  java.sql.TimeStamp  java.text.DateFormat  java.text.SimpleDateFormat Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved.

Bab II.Pengenalan IDE NetBeans dan Eclipse Apabila kita sudah mengerti konsep kompilasi dan penggunaan classpath, maka kita bisa beralih menggunakan kakas IDE ( Integrated Development Environment ) untuk Java. IDE ini ada yang komersial seperti IntelliJIDEA dan Jbuilder, ada yang mempunyai lisensi terbatas seperti JDeveloper, dan ada juga yang free seperti jEdit, NetBeans dan Eclipse. Dalam buku ini kita hanya akan membahas NetBeans dan Eclipse. Kedua-duanya adalah IDE OpenSource yang gratis. Versi terbaru mereka cepat dan powerfull. Kedua IDE ini merupakan contoh yang sangat baik untuk pemrograman modular. Netbeans dibangun di atas komponen-komponen yang disebut dengan module sedangkan Eclipse dibangun diatas banyak plugin. Kita dapat menemukan banyak module dan plugin di Internet untuk menambah kemampuan mereka. Kedua-duanya juga dapat menjadi platform yang sangat baik untuk menjadi dasar pengembangan aplikasi desktop. Netbeans dibeli oleh SunMicroSystem dari sebuah perusahaan kecil bernama NetBeans di Chekoslowakia kemudian dilepas ke komunitas OpenSource. NetBeans ini juga menjadi platform dasar dari IDE komersialnya Sun yaitu SunOne (dulu dikenal dengan Forte). IBM membeli Eclipse dari OTI ( Object TechnolgyInternational ), juga perusahaan kecil di Canada yang berlatar belakang pembuat IDE untuk SmallTalk. Eclipse kemudian di open sourcekan setahun setelah NetBeans go public. Karena memiliki visi dan latar belakang yang berbeda maka masing-masing mempunyai kelebihan yang khusus dan istimewa. NetBeans sangat bagus untuk membuat komponen bean baik non visual maupun yang visual dengan berbasiskan Swing. Eclipse mempunyai builtin JUnit dan Refactoring support yang sangat baik. Untuk pengembangan GUI aplikasi desktop, Eclipse tidak menggunakan Swing tapi menggunakan SWT dan JFace. SWT ini semacam GTK atau Motif di Linux, sedangkan JFace lebih mirip dengan WindowsManagernya. Berfikir Objek: Cara Efektif Menguasai Java Copyright © 2002 Ginanjar Utama. All rights reserved. Gambar 4 NetBeans 3.5 Splash Screen