Makalah ini membahas tentang tipe data dan operasi pada Java, mulai dari pengertian Java, komponen-komponennya, instalasi Java, memulai pemrograman Java, variable dan tipe data, operator, operasi dan struktur kontrol, serta debugging."
1. TUGAS MANDIRI
TIPE DATA DAN OPERASINYA
PADA JAVA
MATA KULIAH : KONSEP SISTEM INFORMASI
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS PUTERA BATAM
2013
Nama :Asep Jaenudin
NPM : 120210034
Kode Kelas : 122-SI111-M5
Dosen : Cosmas Eko Suharyanto, S.Kom.
2.
3. i
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah
menganugerahkan rahmat, karunia serta ridha-Nya, sehingga saya dapat
menyelesaikan makalah Tugas mandiritentang ”Tipe Data dan Operasinya Pada
Java”. Makalah Tugas mandiriini disusun sebagai salah satu Tugas makalah pada
mata kuliah Konsep Sistem Informasi.
Dalam penulisan makalah ini, saya telah banyak menerima bimbingan dan
saran-saran dari berbagai pihak. Maka pada kesempatan ini saya ingin
mengucapkan terima kasih yang setulusnya kepada:
1. Bapak Cosmas Eko Suharyanto, selaku Dosen mata kuliah Konsep Sistem
Informasi di Universitas Putera Batam yang telah banyak memberikan
penjelasan teori yang berkaitan dengan tugas makalah ini.
2. Rekan-rekan serta semua pihak yang tidak dapat penulis sebutkan satu
persatu yang telah membantu saya dalam pembuatan makalah ini.
Akhirnya saya berharap makalah ini dapat berguna dan dapat
dipergunakan sebagaimana mestinya. Saya mengharapkan kritik dan saran untuk
kemajuan di masa-masa mendatang. Atas perhatiannya sayaucapkan terima kasih.
Batam, 28Mei 2013
Penyusun
4. ii
DAFTAR ISI
KATA PENGANTAR......................................................................................... i
DAFTAR ISI........................................................................................................ ii
DAFTAR GAMBAR........................................................................................... iii
DAFTAR TABEL ............................................................................................... ii
BAB I. PENDAHULUAN................................................................................... 1
1.1 Latar Belakang......................................................................................... 1
1.2 Landasan Teori......................................................................................... 2
1.3 Rumusan Masalah.................................................................................... 3
1.4 Tujuan Penulisan...................................................................................... 3
BAB II. PEMBAHASAN.................................................................................... 4
2.1 Kelebihan dan Kekurangan Teknologi Java............................................ 4
2.1.1Kelebihan Teknologi Java....................................................................... 5
2.1.2Kekurangan Teknologi Java.................................................................... 5
2.2 Komponen Java........................................................................................ 6
2.2.1Lingkungan (Enterprise) Java................................................................. 7
2.2.2 Java Development Kit (JDK)................................................................ 7
2.3 Instalasi Java ............................................................................................. 8
2.4 Memulai Pemrograman Java.................................................................... 13
2.5 Variable dan Tipe Data Pada Java ........................................................... 15
2.5.1Jenis-jenis Variabel................................................................................. 17
2.5.2Literal...................................................................................................... 18
2.5.3 String, Objek dan Subrutin ................................................................... 22
2.6 Operator Pada Java ................................................................................... 29
2.7 Operasi dan Struktur Kontrol Pada Java.................................................. 36
2.8 Membuat Kode, Menguji, dan Mencari Kesalahan (debugging).............. 40
BAB III. PENUTUP............................................................................................ 47
3.1 Kesimpulan............................................................................................... 47
3.2 Saran ........................................................................................................ 47
DAFTAR PUSTAKA.......................................................................................... 48
5. iii
DAFTAR GAMBAR
1. Gambar 1. Instal JDK ...................................................................................... 8
2. Gambar 2. Custom JDK ................................................................................... 8
3.Gambar 3. Progress Instalasi JDK .................................................................... 9
4.Gambar 4. JCreator Setup Wizard..................................................................... 9
5.Gambar 5. JCreator License Agreement............................................................ 10
6.Gambar 6. Select Destination Location ............................................................. 10
7.Gambar 7. Select Menu Folder .......................................................................... 11
8.Gambar 8. Select Additional Tasks .................................................................... 11
9.Gambar 9. Ready to Install ................................................................................ 12
10.Gambar 10. Contoh Program Variabel dan Tipe Data (Out put).................... 21
11.Gambar 11. Contoh Program Kelas Math (Output) ........................................ 26
12.Gambar 12. Contoh Program Kelas String (Out put)...................................... 29
13.Gambar 13. Contoh Program Operasi Aritmatika (Out put)........................... 30
14.Gambar 14. Contoh Penerapan Operator Ternary (Out put).......................... 33
15.Gambar 15. Contoh penerapan operasi pemberi nilai (Out put)..................... 36
16.Gambar 16. Pengujian Sintaks Program Java 1.............................................. 40
17.Gambar 17. Pengujian Sintaks Program Java 2.............................................. 42
18.Gambar 18. Konfirmasi Debugging Perspective ............................................. 43
19. Gambar 19. Perspektif Mode Debugging........................................................ 43
20.Gambar 20. Tahap Menjalankan Program...................................................... 44
21.Gambar 21. Mengubah Isi Variabel ................................................................ 45
22. Gambar 22. Hasil Setelah Program Dijalankan............................................ 46
23. Gambar 23. Mengembalikan perspektif seperti semula................................. 46
6. iv
DAFTAR TABEL
1. Tabel 1. Tipe Data Primitif.............................................................................. 17
2. Tabel 2. Representasi Bilangan Real............................................................... 19
3. Tabel 3. Operator Aritmatika .......................................................................... 29
4. Tabel 4. Operator Pembanding, Boolean dan Kondisi.................................... 30
5. Tabel 5. Tabel Kebenaran Operasi Boolean AND .......................................... 31
6.Tabel 6. Tabel kebenaran operasi OR ............................................................... 32
7.Tabel 7. Tabel Kebenaran operasi NOT............................................................ 32
8.Tabel 8. Operator Pemberi Nilai....................................................................... 35
7. 1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pada abad ke-21 ini, penggunaan teknologi jaringan dalam dunia komputer
sudah lumrah dan tidak terbantahkan lagi manfaatnya dalam mendukung berbagai
kegiatan manusia.Jaringan ini banyak dimanfaatkan untuk kegiatan pendidikan,
bisnis, militer, bahkan untuk game pun juga memanfaatkan jaringan sebagai
penghubung dua atau lebih PC yang digunakan untuk bermain game.
Tidak salah lagi jika banyak para programmer sekarang ini semakin kreatif
dalam membuat inovasi dalam membuat jaringan yang semakin efektif dan efisien
penggunaannya. Hal ini dikarenakan banyaknya permintaan dari client yang semakin
rumit permintaannya untuk kecepatan transfer data/informasi dalam jaringan itu
sendiri, sehingga dibutuhkan jaringan yang aksesnya cepat, tidak lelet, dan tentu saja
punya tingkat keamanan yang membuat client nyaman.
Penggunaan bahasa pemrograman java dalam dunia jaringan juga semakin
banyak kegunaannya, karena java merupakan bahasa pemrograman nomor satu dari
berbagai bahasa pemrograman yang sudah ada.Java merupakan bahasa pemrograman
populer yang dapat digunakan untuk mengembangkan beraneka ragam tipe aplikasi;
mulai dari aplikasi-aplikasi desktop, applet, aplikasi web berskala enterprise, dan juga
untuk perangkat-perangkat kecil seperti: pager, telepon selular, maupun PDA. Untuk
memenuhi kebutuhan tersebut, Java dikategorikan ke dalam tiga buah edisi: J2SE
(Java 2 Standard Edition) untuk mengembangkan aplikasi-aplikasi desktop dan applet
J2EE (Java 2 Enterprise Edition) untuk mengembangkan aplikasi-aplikasi berbasis
client/server berskala enterprise J2ME (Java 2 Micro Edition) untuk mengembangkan
aplikasi-aplikasi yang dapat dijalankan di dalam perangkat kecil.
1.2 Landasan Teori
Sejarah Java
Java dipelopori oleh James Gosling, Patrick Naughton, Chris Warth, Ed Frank,
dan Mike Sheridan dari Sun Microsystems, Inc pada tahun 1991.Mereka
membutuhkan kurang lebih 18 bulan untuk membuat versi pertamanya. Bahasa ini
8. 2
pada awalnya disebut ―Oak‖ tapi kemudian diubah menjadi ―Java‖ pada tahun 1995
karena nama Oak telah dijadikan hak cipta dan digunakan sebagai bahasa
pemrograman lainnya. Antara pembuatan Oak pada musim gugur 1992 hingga
diumumkan ke publik pada musim semi 1995, banyak orang yang terlibat dalam
desain dan evolusi bahasa ini. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank
Yellin, dan Tim Lindholm merupakan kontributor kunci yang mematangkan prototipe
aslinya.
Java Modern
Java telah digunakan dalam banyak hal dan telah membuktikan keberadaannya
pada abad ke 21. Saat ini, Java digunakan bermacam jenis aplikasi seperti aplikasi
embedded, aplikasi keuangan, desktop, simulasi pesawat, pemrosesan citra, game,
aplikasi perusahaan terdistribusi yang disebut J2EE dan masih banyak lagi.
Java Virtual Machine (JVM)
Java Virtual Machine merupakan aplikasi sederhana yang ditulis dalam bahasa
C untuk mengeksi program yang ditulis dalam bahasa Java.Pada saat kompilasi
(perubahan dari bahasa tingkat tinggi ke bahasa lebih rendah), program tersebut
diubah menjadi KODE BYTE.Kemudian pada saat eksekusi, JVM membaca kode
byte tersebu dan mengubahnya menjadi bahasa mesin yang dimengerti oleh sistem
operasi tempat program tersebut dijalankan.
Karena JVM sangat bergantung pada platformnya (bahasa mesin merupakan
bahasa level rendah yang hanya dimengerti oleh suatu mesin tertentu, misalnya Intel,
tapi tidak dapat dimengerti oleh mesin lain, seperti Macintosh), bytecode ini dapat
dibuat untuk terbebas dari kungkungan platform tertentu. Code byte yang dihasilkan
dalam proses kompilasi bahasa Java akan selalu sama untuk setiap sistem operasi atau
jenis mesinnya, tetapi JVM akan mengubah kode byte tersebut menjadi bahasa mesin
tujuannya.
Just In Time Compiler (JIT)
Meskipun Java didesain untuk diinterpretasi, secara teknis tidak ada yang
menghalangi Java untuk dikompilasi menjadi bahasa mesin seperti bahasa-bahasa
pemrograman lainnya. Sun menyediakan kompiler Just In Time Compiler (JIT) untuk
mengkompilasi kode byte itu menjadi bahasa mesinnya pada saat yang bersamaan
9. 3
dengan eksekusinya. Walaupun demikian, pendekatan JIT ini menghasilkan
kemampuan yang lebih dibandingkan dengan interpretasi biasa.
1.3 Rumusan Masalah
Berdasarkan latar belakang yang diangkat, ditemukan beberapa permasalahan
yang kiranya akan menjadi bahasan pada penulisan makalah ini, diantaranya yaitu :
1. Apa saja keunggulan dan kekurangan Teknologi Java ?
2. Komponen apa saja yang terdapat dalam Java ?
3. Bagaimana Tahapan Instalasi Pemrograman Java ?
4. Bagaimana memulai Pemrograman Java ?
5. Apa saja variable dan tipe data pada Java?
6. Apa saja operator pada pemrograman Java?
7. Bagaimana operasi dan struktur kontrol pada Java?
8. Bagaimana Membuat kode, menguji, dan mencari kesalahan (debugging)?
1.4 Tujuan Penulisan
Makalah ini disusun dengan tujuan sebagai saran untuk mengetahui pesatnya
perkembangan teknologi computer di masa sekarang ini, salah satunya di dunia
pemrograman yang sekarang semakin banyak diminati.Selain itu, tujuan disusunnya
makalah ini adalah untuk memenuhi tugas mandiri mata kuliah Konsep Sistem
Informasi, dikarenakan Penulis masih berstatus sebagai mahaiswa Jurusan Teknik
Informatika, Universitas Putera Batam.
10. 4
BAB II
PEMBAHASAN
2.1 Kelebihan Dan Kekurangan Pemrograman Java
Bahasa pemrograman lain yang telah ada sebelum Java lahir
sudah merupakan bahasa yang baik dan mudah dipelajari oleh
programmer profesional. Akan tetapi para programmer ini
menginginkan sesuatu yang baru yang memiliki banyak hal yang
menyelesaikan masalah mereka.Utamanya adalah keamanan kode
mereka. Hal ini melahirkan pikiran yang revolusioner untuk menemukan bahasa
pemrograman lain yang disebut Java. Tidak hanya keamanan tapi juga beberapa hal
yang sering disebut sebagai Java-Buzzwords.Kata-kata ini menjelaskan berbagai fitur
tambahan dan beberapa hal yang membuat Java demikian sukses dan diterima oleh
dunia perangkat lunak.Berikut ini adalah penjelasan serta keuntungan dari kata-kata
tersebut.
Seperti diuraikan sebelumnya, Java lahir dari suatu pemikiran mendalam akan
bahasa pemrograman yang ada pada saat itu, seperti C dan C++. Hal ini akan
memudahkan programmer profesional untuk dapat mengerti lebih jelas tentang Java,
fungsionalitas, dan lain sebagainya apabila ia memiliki pengetahuan dasar tentang
C++ dan konsep pemrograman berorientasi objek.
Tujuannya agar konsep dasar dari teknologi Java dapat dimengerti dengan
mudah, dan programmer dapat segera menghasilkan sesuatu sedini mungkin.Tidak
hanya ini, penemu Java memastikan bahwa Java juga bermula dari bahasa
pemrograman dasar yang sudah ada pada saat itu.Kemudian mereka membuang
berbagai fitur yang rumit dan membingungkan.
Bahasa pemrograman Java didesain sejak awal untuk menjadi bahasa yang
berorientasi objek.Setelah kira-kira 30 tahun, akhirnya teknologi objek menjadi
kenyataan dan diterima oleh sebagian besar komunitas pemrograman.
Konsep berorientasi objek memungkinkan pembuatan software yang
kompleks, berbasis network, sehingga dapat disimpulkan bahwa teknologi Java
menghasilkan platform pembuatan perangkat lunak yang baik dan efisien serta
berorientasi objek.
11. 5
2.1.1 Kelebihan Teknologi Java
Mulai dengan cepat: Java merupakan bahasa pemrograman berorientasi objek,
mudah dipelajari, terutama untuk programmer yang sudah menguasai C atau C++.
Tulis lebih sedikit program: Jumlah kelas, jumlah metode, dll, menunjukkan bahwa
program yang ditulis dalam bahasa pemrograman Java memiliki jumlah 4 kali lipat
lebih kecil dari program sama yang ditulis dalam bahasa C++
Tulis program lebih baik: Bahasa pemrograman Java menganjurkan praktek
membuat program yang baik, dan automatic garbage collection membantu Anda
untuk menghindari kebocoran memori. Orientasi objeknya, arsitektur komponen
JavaBeans, dan jangkauannya yanga luas, API yang mudah diperluas, memungkinkan
Anda menggunakan kode yang ada.
Membuat program dengan lebih cepat: Bahasa pemrograman Java lebih mudah
dari C++, pemrograman akan menjadi 2 kali lipat lebih cepat, dengan jumlah baris
yang jauh lebih sedikit.
Menghindari kebergantungan pada platform tertentu: Anda dapat menjalankan
program Anda pada banyak platform dengan TIDAK menggunakan library yang
ditulis spesifik untuk platform tertentu.
Tulis sekali, jalankan di mana saja: Karena aplikasi yang ditulis dalam bahasa Java
dikompilasi ke dalam kode byte yang bebas platform, aplikasi yang ditulis dapat jalan
secara konsisten pada platform apa saja.
Distribusikan software Anda dengan mudah: Dengan Java Web Start, pengguna
program Anda akan dapat menggunakan aplikasi Anda dengan mudah. Sistem
pengecekan versi otomatis pada saat program dimulai menjamin pengguna Anda
selalu menjalankan versi terkini. Apabila versi baru tersedia, Java Web Start akan
melakukan instalasi secara otomatis.
2.1.2 Kekurangan Teknologi Java
Tulis sekali, perbaiki di mana saja – Masih ada beberapa hal yang tidak kompatibel
antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge
yang sampai sekarang tidak berfungsi pada Mac OS X.
Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi
menjadi kode sumber. Ini dimungkinkan karena koe jadi Java merupakan bytecode
yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas,
12. 6
metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft.NET Platform.
Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan
dan mudah dibajak/direverse-engineer.
Penggunaan memori yang banyak.Penggunaan memori untuk program berbasis
Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti
C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal).Biasanya ini bukan
merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend
memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih
harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.
2.2 Komponen Java
JVM (Java Virtual Machine)
Java dapat berjalan pada sebuah sistem operasi maka membutuhkan suatu
Java Virtual Machine (JVM).JVM sendiri terdiri dari Java Runtime
Environment (JRE) dan Java Development Kit (JDK).Sun Microsystems
mengeluarkan tiga kelas paket Java, yaitu J2-SE JRE (hanya berisi JRE), J2-
SE SDK (berisi JDK + JRE), dan J2-EE SDK (berisi JDK+JRE dan tools
untuk aplikasi enterprise).Untuk versi SE (Standard Edition) tersedia gratis
pada situs www.Java.com.
IDE (Integrated Development Environment)
IDE (Integrated Development Environment) adalah sebuah editor
pemrograman sebuah bahasa.Untuk Java sendiri ada banyak IDE yang tersedia
dipasaran baik yang bersifat gratis (freeware) ataupun yang berbayar.Beberapa
IDE yang populer antara lain, JCreator (www.jcreator.com), Netbeans
(www.netbeans.org), JBuilder (www.borland.com/jbuilder), dan lain-lain.
Perlu diingat, suatu class merupakan unit yang paling mendasar, dalam
pemrograman Java adalah class adalah komponen aplikasi, yang menangani kode dan
data dalam pemrograman Java.
13. 7
2.2.1 Lingkungan (Enterprise) Java
Kompiler Java mengkonversi kode sumber (source code) menjadi program
biner yang terdiri dari bytecode.Bytecode adalah instruksi mesin untuk JavaVirtual
Machine. Pada saat Anda mengeksekusi program Java, program yang disebut Java
interpreter memeriksa dan kemudian mengeksekusi perintah byte code dalam Java
Virtual Machine (JVM). Interpreter Java dapat dijalankan sebagai stand alone atau
menjadi bagian dari web browser seperti Netscape Navigator, Internet Explorer dan
Mozilla Firefox. Di dalam lingkungan Java, bisa membuat program apa saja seperti:
games, animasi, database dll. Java juga mudah dipelajari oleh siapa pun.
2.2.2 Java Development Kit (JDK)
Java Development Ki(JDK) berisi sekumpulan tools baris perintah (command-
line tool) untuk menciptakan program Java. Rilis JDK dapat di-download dari alamat
URL berikut: http://Java.sun.com/products/JDK/index.html.
Berikut adalah daftar komponen utama JDK:
1. Compilator (Javac). Kompilasi Javac menghasilkan file bytecode kelas dengan
ektensi .class. Kompilator menciptakan suatu file class untuk setiap kelas yang
didefinisikan di file sumber.
2. Interpreter program Java (Java). Interpreter untuk menjalankan program
bytecode Java.Interpreter bertindak sebagai alat bantu baris printah, untuk
menjalankan program Java non-grafis.
3. Applet viewer (applet viewer). Applet viewer adalah alat bantu untuk menguji
Java applet secara minimal.
4. Debugger (jdb). Java debugger (jdb) adalah untilitas baris printah untuk
melakukan debugging aplikasi Java.
5. Class file disassembler (Javap). Java class file disassembler (Javap) untuk
melakukan penguraian (disassemble) terhadap file class.
6. Header and stub file generator (Javah). Header and stub file generator (Javah)
untuk menghasilkan C header dan file kode sumber untuk implementasi
method-method Java dalam bahasa C.
7. Java documentation generator (Javadoc). Java documentation generator adalah
alat bantu untuk menghasilkan dokumentasi API secara langsung dari kode
sumber Java.
14. 8
2.3 Instalasi Java Development Kit (JDK)
Pada JDK penulis menggunakan JDK 1.6 update 11-windows, setelah itu kita
klik setup JDK tersebut, kemudian beberapa saat akan tampil gambar sebagai berikut:
Gambar 1. Instal JDK
Kemudian pilih tombol Accept, beberapa saat kemudian akan menampilkan
gambar, sebagai berikut:
Gambar 2. Custom JDK
15. 9
Setelah itu, langsung kita pilih tombol Next saja, maka akan menampilkan:
Gambar 3. Progress Instalasi JDK
Tunggu beberapa saat, sampai proses selesai. Kemudian dengan begitu Java
sudah terinstal pada komputer Anda dan langkah selanjutnya adalah bagaimana cara
mengintsal JCreator-nya. Yaitu:
Pertama jalankan program JCreator yang sudah download. Maka akan muncul
layar seperti gambar dibawah.
Gambar 4. JCreator Setup Wizard
16. 10
Klik next, maka akan muncul layar seperti gambar dibawah.
Gambar 5. JCreator License Agreement
Klik I accept the agreement, kemudian tekan next. Setelah itu akan muncul
layar seperti gambar berikut:
Gambar 6. Select Destination Location
Klik next , karena itu destinasi installation dari JCreator secara default. Klik
OK jika muncul layar konfirmasi.
17. 11
Gambar 7. Select Menu Folder
Klik next, untuk membuat Start Menu Folder.
Gambar 8.Select Additional Tasks
Jika ingin menyertakan shortcut, maka klik Create a desktop icon, selanjutnya
tekan next.
18. 12
Gambar 9. Ready to Install
Jika sudah, klik install, tunggu hingga proses instalasi selesai.Klik Launch
JCreator, kemudian tekan Finish. Setelah itu secara otomatik akan muncul layar
setting JCreator.
Inilah step kunci dari instalasi JCreator. Ketika diminta mengenai destinasi
dari JDK, maka secara otomatis akan ada destinasi instalasi JDK jika telah
menginstall JDK sebelumnya. mengisi destinasi dari Java Documentation File. Cukup
cari dimana tempat menaruh file "docs" .
Destinasi JDK : C:..jdk1.6.0
Destinasi Java API : C:..jdk1.6.0docs
Atau jika menggunakan JDK versi 1.4, maka destinasinya adalah sbb:
JDK : C:j2sdk1.4.2_04
Java API : C:j2sdk1.4.2_04docs
Jika setelah menginstall tidak menemukan layar setting, maka ketika layar
JCreator telah muncul, masuk ke menu Option, lalu klik Configure. Kemudian pada
layar yang muncul, klik pilihan JDK Profiles.Kemudian, klik JDK yang terdapat
disana, lalu klik EDIT, yang terdapat disebelah kanan layar. Pastikan destinasi dari
JDK dan Documentation file. Kemudian klik OK, Apply, OK.
Catatan : Dalam penginstalan JCreator, Anda sebaiknya menginstal JDK
terlebih dahulu pada computer.
19. 13
2.4 Memulai Pemrograman Java
Program komputer adalah rangkaian instruksi yang diberikan agar komputer
dapat bekerja.Suatu pekerjaan yang mungkin sederhana bagi manusia tidak dapat
dimengerti oleh komputer.Manusia harus memberikan petunjuk kepada komputer
bagaimana melakukan suatutugas dalam bentuk bahasa pemrograman. Bahasa
pemrograman berbeda dengan bahasa manusia, karena komputer membutuhkan
aturan yang lebih baku apa yang boleh dan apa yang tidak boleh dalam suatu bahasa
pemrograman. Aturan ini disebut sintaks bahasa.Sintaks bahasa pemrograman
ditentukan berdasarkan apa yang bisa dilakukan oleh komputer, misalnya loop
(perulangan), cabang (branch), atau fungsi. Hanya program dengan sintaks yang benar
yang dapat dikompilasi atau diinterpretasi yang pada akhirnya bisa dijalankan di
komputer. Kompiler akan memberikan pesan kesalahan apabila ada kesalahan dalam
sintaks sehingga kita memperbaikinya.
Untuk menjadi programmer yang sukses, kita harus mengerti secara detail
sintaks dari bahasa pemrograman yang kita akan gunakan. Tetapi, sintaks hanya
sebagian cerita.Kita ingin program yang kita buat berjalan sesuai dengan yang kita
inginkan.Artinya program tersebut harus benar secara logika.Program yang benar
secara logika disebut memiliki semantik yang benar.
Program “Selamat Datang”
Program―SelamatDatang‖ memiliki 4 komponen, yaitu :
definisi paket (package)
komentar
definisi kelas (class)
metode main
Sintaks Program:
packageselamatdatang;
publicclass SelamatDatang {
/**
* @param args
*/
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
System.out.println("Selamat Datang!");
}
}
20. 14
Definisi paket (package)
packageselamatdatang;
Package dalam Java merupakan kumpulan dari berbagai kode yang terangkum
dalam satu paket. Untuk memudahkan penulisan dan pembagian logika suatu
program, satu paket terbagi menjadi beberapa berkas (file) di mana setiap file
memiliki fungsi atau tugas yang sangat khusus, misalnya satu file berfungsi untuk
mendeklarasikan konstanta dan kelas, sementara file yang lain berisi implementasi
kelas dan prosedurnya.
Pada contoh aplikasi SelamatDatang di atas, paket ini hanya berisi satu buah
file yang isinya terdiri dari satu kelas dan satu metode.Definisi paket tidak selalu
diperlukan, tetapi hal ini merupakan kebiasaan baik untuk melatih kita berfikir secara
logis dan sistematis.
Komentar
/**
* @param args
*/
// TODO Auto-generated method stub
Komentar tidak akan diproses oleh kompiler tetapi berguna bagi programmer lain.
Bahasa Java memiliki 3 jenis komentar :
/* text */ — Compiler akan mengabaikan kata kata antara /* dan */
/** documentation */ — Ini merupakan komentar yang dipergunakan khusus
untuk dokumentasi. Kompiler akan mengabaikan komentar dari /* hingga */.
Alat bantujavadoc akan memproses komentar dokumentasi untuk membuat
dokumentasi secara otomatis dari sumber program.
// text — Kompiler akan mengabaikan segala sesuatu dari // hingga akhir baris
Definisi Kelas
publicclass SelamatDatang {
...
}
Kelas merupakan bagian integral dari bahasa Java karena Java merupakan
bahasa berorientasi objek.Setiap aplikasi harus terdiri dari satu kelas.Di sini kita
definisikan kelas SelamatDatang sebagai kelas utama.
21. 15
Metode main
Dalam bahasa pemrograman Java, setiap aplikasi harus memiliki satu buah
metode main yang bentuknya seperti berikut :
publicstaticvoid main(String[] args){
...
}
Metode main mirip dengan fungsi main pada bahasa C/C++ di mana fungsi ini
merupakan pintu gerbang dimulanya suatu program. Metoda main dapat dipanggil
dengan menyertakan variabel, baik hanya satu variabel, banyak variabel atau bahkan
tidak ada sama sekali.Yang terakhir adalah perintah berikut untuk menampilkan
Selamat Datang pada komputer Anda.
System.out.println("Selamat Datang!");
Perintah tersebut menggunakan pustaka inti Java, yaitu kelas Sistem.
2.5 Variabel dan Tipe Data Java
Nama merupakan hal penting dalam teknik pemrograman. Dalam suatu
program, nama digunakan untuk menyebut sesuatu. Untuk menggunakan "sesuatu"
tersebut, programmer harus mengerti bagaimana aturan pemberian nama dan aturan
untuk menggunakan nama tersebut dalam programnya. Atau dengan kata lain,
programmer harus mengerti sintaks dan semantik dari nama.
Menurut aturan sintaks Java, nama merupakan rangkaian dari 1 atau lebih
karakter. Harus dimulai dengan huruf dan harus terdiri dari huruf, angka atau karakter
garis bawah '_'. Berikut ini adalah contoh nama yang diperbolehkan:
N n rate x15 quite_a_long_name HelloWorld
Hurus kecil dan huruf besar dianggap berbeda, sehingga HelloWorld,
helloworld, HELLOWORLD, dan heLLOwoRLD adalah nama yang berbeda-beda.
Beberapa kata tertentu merupakan nama yang memiliki kegunaan tertentu oleh
Java, dan tidak dapat dipergunakan oleh programmer. Kata-kata ini disebut reserved
words (kata-kata cadangan) misalnya: class, public, static, if, else, while, dan
lain-lain.
Hal lain yang penting adalah compound names atau nama campuran, yaitu
yang merupakan nama biasa yang dihubungkan dengan titik, misalnya
System.out.println. Idenya adalah "sesuatu" pada Java dapat terdiri dari "sesuatu"
yang lain. Nama System.out.println artinya System menampung out dan out
22. 16
menampung println. Kita sebut "sesuatu" sebagai identifier (pengenal) tidak peduli
apakah ia berupa nama tunggal atau campuran.
Program melakukan manipulasi data yang disimpan dalam memori.Dalam
bahasa mesin, data hanya bisa diambil dengan menyebut alamatnya di memori. Dalam
bahasa pemrograman tingkat tinggi seperti Java, nama bisa digunakan untk mengganti
alamat data tersebut di memori. Tugas komputer adalah untuk melacak di mana data
tersebut di simpan, sedangkan programmer menggunakan nama untuk memerintahkan
komputer mengambil data tersebut dari memori. Nama yang digunakan seperti ini
disebut variable.
Variabel sebenarnya berarti lebih kompleks.Variabel bukan isi dari data, tapi
lokasi di memori yang menyimpan data tersebut.Variabel bisa diibaratkan sebagai
kotak penyimpanan data, bukan isi kotaknya. Karena data di dalam kotak bisa
berubah, variabel hanya dapat dipercaya pada satu saat saja, walaupun tempatnya
selalu sama.
Dalam bahasa Java, satu-satunya cara untuk memasukkan data ke dalam
variabel adalah dengan menggunakan assignment statement, atau pernyataan
pemberian nilai. Pernyataan ini berbentuk:
variable= ekspresi;
di mana ekspresi menyatakan apapun yang berhubungan dengan nilai suatu data.
Ketika komputer menjalankan instruksi ini, komputer akan menghitung dan
menyimpan hasilnya ke dalam variabel. Contoh:
kecepatan=40;
Variable dalam pernyataan di atas adalah kecepatan dan ekspresinya adalah
angka 40.Komputer menghitung pernyataan ini dan menyimpan 40 ke dalam variabel
kecepatan, dan mengganti apapun yang telah disimpan sebelumnya.
Sekarang misalnya kita ingin melakukan perhitungan yang lebih kompleks:
jarak= kecepatan * waktu
Di sini, * merupakan operasi perkalian.Komputer mengambil data yang
disimpan dalam variabel kecepatan dan waktu, melakukan perkalian, dan
menyimpan hasilnya dalam jarak.
Variabel dalam bahasa Java didesign untuk menyimpan hanya 1 jenis tipe
data. Kompiler akan menampilkan kesalahan sintax apabila variabel ini dicoba untuk
diberi tipe data jenis lain. Oleh karena itu Java disebut bahasa pemrograman bertipe
kuat atau strongly typed language.
23. 17
Ada 8 tipe data primitif dalam bahasa Java:
Jenis
Data
Deskripsi Ukuran Minimum Maksimum
boolean
Hanya bisa berisi
benar atau salah
1-bit
char Karakter Unicode 16-bit
byte Bilangan bulat 8-bit -127 128
short Bilangan bulat 16-bit -32768 32767
int Bilangan bulat 32-bit -2147483648 2147483647
long Bilangan bulat 64-bit -9223372036854775808 9223372036854775807
float Bilangan riil 32-bit
1.40129846432481707e-
45
3.40282346638528860e+38
double Bilangan riil 64-bit
4.94065645841246544e-
324
1.79769313486231570e+308
Tabel 1. Tipe Data Primitif
Suatu variabel baru dapat digunakan apabila telah dideklarasikan. Pernyataan
deklarasi variabel digunakan untuk mendeklarasikan satu atau lebih variabel dan
memberinya nama.
Ketika komputer mengeksekusi deklarasi variabel, komputer akan
menyediakan ruangan di memori kemudian menyimpan alamat ini sesuai dengan
nama variabel yang diberikan. Deklarasi variable berbentuk seperti :
nama_tipe nama_variabel;
Nama_variabel dapat berupa sebuah nama variabel atau beberapa nama
sekaligus yang dipisah dengan koma. Gaya pemrograman yang baik yaitu dengan
mendeklarasikan satu variabel dalam satu pernyataan, kecuali variabel tersebut
berhubungan erat satu sama lain. Misalnya:
float num;
Stringnama;
Stringnama;
boolean bol;
int x,y;
Atau pendeklarasian variabel bisa juga dilakukan sekaligus dengan pemberian
nilainya, seperti pada contoh berikut:
int num =1000;
char ch ='e';
float angka =-1.504;
boolean bol =true;
24. 18
2.5.1 Jenis-jenis Variabel
Ada beberapa jenis variabel Java yang dapat dikelompokkan sebagai berikut :
Instance Variables (tidak statis). Dalam bahasa pemrograman berorientasi
objek, objek menyimpan variabel yang tidak dideklarasikan dengan kata kunci
static dalam kategori non-statis, atau dapat berubah-ubah. Suatu kelas dapat
dijelmakan ke dalam beberapa objek. Nilai yang terkandung dalam variabel
tak-statis ini berbeda untuk setiap objeknya.
Class Variables (statis). Variabel ini merupakan bagian integral dari suatu
kelas, dan tidak ada satu objek pun yang dapat menyatakan kepemilikan atas
variabel ini. Variabel yang dideklarasikan sebagai statis digunakan bersama
oleh semua objek. Variabel ini lebih bersifat global yang nilainya sama untuk
setiap objek pada kelas yang bersangkutan.
Local Variables. Variabel ini didefinisikan di dalam suatu metoda (method)
atau dalam suatu prosedur. Variabel ini bersifat lokal karena hanya dapat
diakses oleh metoda atau prosedur tersebut.
Parameter. Paramater atau argumen adalah variabel yang digunakan pada
saat suatu metoda atau prosedur dipanggil. Parameter berguna untuk
memberikan nilai awal untuk diteruskan (pass) ke dalam suatu prosedur atau
metoda.
2.5.2 Literal
Pada bagian ini akan dijelaskan tentang literal, yaitu rangkaian kata atau huruf
yang menyatakan suatu nilai. Misalnya:
int angka =10;
Pada pernyataan di atas, yang dinamakan literal adalah 10, karena 10 berarti
bilangan bulat atau integer. Pada bahasa pemrograman java, terdapat beberapa jenis
literal yang melambangkan bilangan bulat, riil, kalimat, atau boolean.
Literal Bilangan Bulat
Bilangan bulat dapat dilambangkan dalam beberapa bentuk.Bilangan bulat
biasa dilambangkan dengan deretan angka yang dimulai dengan angka yang bukan
nol.
int angka =-10;
25. 19
Bilangan oktal adalah bilangan bulat berbasis 8, yang berarti hanya dapat
terdiri dari angka-angka 0 hingga 7.Bilangan oktal ditulis seperti bilangan bulat biasa
dimulai dengan 0.
// 22 basis delapan atau 18 dalam desimal
int angka = 022;
Bilangan heksadesimal adalah bilangan berbasis 16. Bilangan heksadesimal
dilambangkan dengan 0 hingga 9 dan a hingga f dan dimulai dengan 0x.
// 2a heksadesimal atau 42 dalam desimal
int angka = 0x2a;
Long integer. Seperti dijelaskan pada bab terdahulu long integer
membutuhkan memori sebesar 64bit, yang artinya kita dapat menyimpan bilangan
bulat hingga 2 ^ 64. Untuk merepresentasikan long integer, tambahkan huruf L pada
akhir bilangan.
int angka = 22L;
Literal Karakter
Kita dapat melambangkan suatu karakter dengan tanda petik tunggal misalnya
‗a‘ atau ‗3′ atau ‗=‘. Suatu karakter dapat juga dilambangkan dengan kode ASCII
nya.Caranya dengan memulainya dengan u00 (garis miring terbalik) kemudian
diikuti dengan kode ASCII nya dalam bentuk heksadesimal.
// huruf 'A' dalam ASCII
char huruf ='u0041';
Selain itu ada beberapa karakter lain selain alfabet yang dapat dilambangkan
dengan escape sequence. Berikut ini beberapa contohnya.
n = tombol enter atau baris baru.
r = carriage return.
t = tombol tab.
b = tombol backspace.
= karakter
‘ = karakter ‗
‖ = karakter ‖
Literal Boolean
Nilai true dan false pada java merupakan literal boolean. Suatu variabel
bertipe boolean hanya dapat memiliki nilai true atau false.
boolean ok =true;
26. 20
Ingat bahwa boolean true atau false TIDAK menggunakan tanda petik tunggal
seperti ekspresi pada karakter.
Literal Bilangan Riil
Bilangan riil, misalnya -0.00127 atau 415.842, pada java dapat disimpan baik
sebagai float atau double. Bilangan real dapat direpresentasikan dalam bentuk desimal
biasa, pecahan, atau eksponen (dilambangkan dengan e atau E).
Tipe
Ukuran
Rentang Presisi (jumlah digit)
bytes bit
float 4 32 +/- 3.4 x 1038
6-7
double 8 64 +/- 1.8 x 10308
15
Tabel 2. Representasi Bilangan Real
Imbuhan akhir d atau D dan f atau F dapat pula ditambahkan untuk
menentukan tipenya secara eksplisit.Berikut beberapa contohnya.
double d = 3.27E+32;
float f = 4f;
float pi =3.14159;
Literal String
Stringmerupakan untaian huruf dan angka yang tersusun menjadi satu
kalimat.Dalam bahasa java, string bukan merupakan tipe primitif, tetapi merupakan
kelas. String pada java tidak disimpan dalam bentuk array seperti pada C. Java
menyediakan beberapa metoda untuk melakukan penggabungan, modifikasi, atau
perbandingan. String ditulis di antara dua tanda petik ganda seperti contoh berikut.
Stringsalam="Selamat Datang";
String juga dapat mengandung karakter spesial seperti dibahas pada literal
karakter. Misalnya:
String hallo ="Selamat Datang "Bapak Presiden"";
System.out.println("Hallo BambangnSelamat pagi,nSemoga hari
anda cerahn";
Literal Null
Literal terakhir pada bahasa java adalah literal null.Null merupakan kondisi di
mana suatu objek tidak diberi alokasi memori. Pada saat suatu objek dideklarasikan,
komputer akan mengalokasikan memori untuk objek tersebut. Apabila objek tersebut
telah selesai dipergunakan, kita dapat melepas lokasi memori yang digunakan oleh
27. 21
objek tersebut sehingga memori itu dapat digunakan oleh objek lain. Berikut ini
adalah contohnya:
obj=null;
Literal null berfungsi memberi tahu garbage collector (pemulung memori)
bahwa objek tersebut tidak lagi terpakai. Kemudian memori akan dilepaskan agar
dapat digunakan oleh objek lain.
Contoh Program Variabel dan Tipe Data
Berikut ini adalah listing program penghitungan bunga bank:
packagebungabank;
publicclass BungaBank {
/**
* @param args
*/
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
/* Deklarasi variable */
double pokok; // nilai investasi
double sukubunga; // suku bunga bank
double bunga; // nilai bunga
/* Perhitungan */
pokok =20000;
sukubunga =0.10; // sama dengan 10%
bunga = pokok * sukubunga;
pokok = pokok + bunga;
/* Cetak hasil keluaran */
System.out.print("Bunga yang dihasilkan adalah Rp. ");
System.out.println(bunga);
System.out.print("Nilai investasi setelah 1 tahun adalah Rp.
");
System.out.println(pokok);
}
}
Berikut adalah hasil keluarannya (Out put):
Gambar 10. Contoh Program Variabel dan Tipe Data (Out put)
28. 22
2.5.3 String, Objek dan Subrutin
Bagian sebelumnya memperkenalkan 8 jenis tipe data primitif dan tipe data
String. Perbedaan mendasar antara tipe primitif dan Stringadalah : nilai dari tipe
String berupa objek. Objek akan dibahas pada bagian lain mengenai kelas (class). Di
bagian ini kita akan belajar bagaimana String digunakan dan juga mempelajari
konsep pemrograman penting yang lain, yaitu subrutin.
Subrutin adalah kumpulan instruksi program yang digabungkan sehingga
memiliki fungsi tertentu.Dalam bahasa Java, setiap subrutin termasuk di dalam bagian
suatu kelas atau objek.Java menyediakan kelas standar yang siap digunakan.Nilai tipe
String adalah objek yang memiliki kumpulan subrutin yang dapat digunakan untuk
memanipulasi String tersetbut.Kita bisa memanggil subrutin tersebut tanpa harus
mengerti bagaimana subrutin tersebut bekerja. Sebenarnya ini adalah tujuan subrutin,
yaitu sekumpulan perintah yang memiliki fungsi tertentu tanpa harus mengetahui
secara detail apa yang terjadi di dalam.
Kelas terdiri dari variabel dan subrutin yang disimpan di dalamnya.Variabel
dan subrutin ini disebut static member (anggota statis). Contohnya adalah pada
program SelamatDatang, kelas SelamatDatang memiliki anggota main() yang
merupakan anggota statis kelas itu. Anggota yang berupa static member diberi
imbuhan static, seperti pada main().
Fungsi kelas yang lain adalah untuk mendeskripsikan suatu objek. Kelas di
sini berfungsi seperti tipe data.Nilai yang disimpan dalam tipe data itu adalah objek.
Misalnya String sebenarnya merupakan nama kelas yang disediakan bahasa Java.
String juga berupa tipe data dan kalimat seperti "Selamat Datang!" adalah isi dari
tipe data String.
Kegunaan kelas baik sebagai gabungan subrutin ataupun sebagai objek sering
membingungkan.Misalnya kelas String juga menyimpan beberapa subrutin statik
selain juga sebagai tipe data.Contoh kelas standar lainnya adalah Math yang berisi
kumpulan subrutin statik untuk melakukan berbagai perhitungan matematis.
Kelas sebagai tipe data
Mari mulai dengan melihat kembali subrutin System.out.print.Subrutin ini
digunakan untuk menampilkan pesan kepada user.
29. 23
Misalnya System.out.print("Selamat datang!") menampilkan pesan
Selamat datang!
System merupakan salah satu kelas standar Java.Salah satu anggotanya
bernama out. Karena variable ini berada di dalam kelas System, kita harus
memanggilnya dengan nama lengkapnya yaitu System.out. Variabel System.out
merupakan suatu objek, dan objek itu memiliki subrutin yang bernama print.
Pengenal campuran System.out.print mengacu pada subrutin print di dalam objek
out dalam kelas System.
Untuk melihat dari sisi lain, sebetulnya System.out merupakan objek dari
kelas PrintStream. PrintStream adalah salah satu kelas standar Java.Objek dengan
tipe PrintStream adalah objek tempat informasi bisa dicetak. Setiap objek yang
bertipe PrintStream memiliki subrutin bernama print yang bertugas untuk
mencetak sesuatu ke medium tersebut. Dalam hal ini System.out adalah tujuan
tempat print dilakukan. Objek lain yang bertipe PrintStream bisa mengirim
informasi ke tujuan lain, misalnya file atau network atau ke komputer lain.
Ini adalah esensi dari pemrograman berorientasi objek, di mana beberapa hal
yang memiliki kesamaan - dalam hal PrintStream sama-sama sebagai tempat tujuan
print - dapat digunakan dengan cara yang sama, yaitu memanggil subrutin print.)
Karena nama variabel, nama kelas, dan nama subrutin berbentuk hampir sama, ada
baiknya untuk membedakannya sehingga di kemudian hari program dapat dibaca
dengan jelas. Kelas standar Java menggunakan nama yang selalu dimulai dengan
huruf besar, sedangkan nama variabel dimulai dengan huruf kecil. Ini bukan sintaks
Java, tetapi lebih seperti konvensi. Setiap orang bebas menggunakan konvensinya
masing-masing, tetapi apabila pemrograman dilakukan secara bersama-sama, seperti
pada open source programming, konvensi yang sama akan sangat memudahkan orang
lain membaca dan menguji program yang kita buat. Nama subrutin juga dimulai
dengan huruf kecil, sama dengan nama variabel. Tetapi subrutin harus diikuti dengan
tanda buka kurung sehingga masih mudah dibedakan dengan nama variabel.
Kelas sebagai kumpulan subrutin dan variabel static
Selain sebagai tipe data, kelas System juga memiliki subrutin statik yang
bernama exit. Memanggil System.exitakan menghentikan jalannya program, dan
digunakan apabila karena suatu hal (misalnya program telah selesai atau adanya error)
30. 24
program harus dihentikan. Subrutin exit menerima parameter bilangan bulat,
misalnya System.exit(0) atau System.exit(1), untuk memberitahu kepada sistem
operasi alasan kenapa program dihentikan. Status 0 berarti program berhenti normal
tanpa adanya error, sedangkan status lain berarti ada sesuatu yang salah yang terjadi
di tengah eksekusi program tersebut.Setiap subrutin melakukan fungsi
tertentu.Beberapa di antaranya melakukan perhitungan lalu melaporkan hasil
perhitungannya.
Ada juga yang berfungsi untuk mengambil data dari tempat tertentu dan
melaporkan data yang didapat. Subrutin jenis ini disebut function (fungsi). Fungsi
adalah subrutin yang mengembalikan (return) suatu nilai. Nilai yang dikembalikan
akan digunakan lebih lanjut dalam program.
Sebagai contoh adalah fungsi untuk menghitung akar kuadrat dari suatu
bilangan.Java memiliki fungsi seperti itu yang disebut Math.sqrt.Fungsi ini
merupakan anggota statik dari kelas yang bernama Math.Jika x adalah suatu bilangan,
makan Math.sqrt(x) menghitung akar kuadrat dari x dan mengembalikan hasil
perhitungannya. Karena Math.sqrt(x) mengembalikan suatu bilangan, kita tidak
bisa memanggil fungsi ini seperti:
Math.sqrt(x);// Tidak masuk akal!
Kita tentunya ingin menggunakan hasilnya untuk instruksi selanjutnya,
misalnya menuliskan hasilnya di layar seperti
System.out.print(Math.sqrt(x));// Menampilkan akar kuadrat x
di layar.
atau menyimpan hasilnya pada variabel lain, seperti:
panjangDiagonal=Math.sqrt(x);
Kelas Math
Kelas Math memiliki banyak fungsi statik. Beberapa yang penting di antaranya:
Math.abs(x), menghitung nilai mutlak (absolut) dari x. Nilai mutlak bilangan
negatif adalah bilangan positif, dan bilangan positif tetap bilangan positif.
Fungsi trigonometri Math.sin(x), Math.cos(x), and Math.tan(x). (Untuk
semua fungsi trigonometri, sudut memiliki satuan radian, bukan derajat)
Fungsi trigonometri inverse, yang mencari sudut dari suatu nilai trigonometric,
kebalikan dari fungsi trigonometri, seperti arcus sin, arcus cos, dan arcus
tangen. Math.asin(x), Math.acos(x), and Math.atan(x).
31. 25
Math.exp(x), menghitung pangkat dari bilangan natural e, atau ex
. Dan
logaritma natural loge x atau ln x bisa dihitung dengan menggunakan fungsi
Math.log(x).
Math.pow(x,y) menghitung xy
atau x pangkat y.
Math.floor(x) menghitung pembulatan ke bawah dari suatu bilangan riil,
misalnya 3.84 akan dibulatkan ke bawah menjadi 3.0.
Math.random() memilih bilangan acak di antara 0.0 dan 1.0. Komputer
memiliki algoritma perhitungan tertentu yang hasilnya bilangan acak
(meskipun bulan bilangan yang betul-betul acak, tetapi cukup untuk
kebanyakan fungsi).
Paremeter (nilai di dalam kurung) fungsi-fungsi di atas bisa bertipe numerik
apa saja (misalnya double, int, dll), tetapi keluarannya bertipe double, kecuali abs(x)
yang tipe keluarannya sama dengan tipe parameternya.
Math.random() tidak memiliki parameter, tetapi tanda kurungnya harus tetap
ditulis untuk membedakan fungsi dan variabel. Contoh fungsi lain yang tidak
memiliki parameter adalah System.currentTimeMillis() yang berguna untuk
mengambil waktu saat ini dalam satuan milidetik, dihitung sejak 1 Januri 1970 waktu
GMT. Satu milidetik sama dengan 1 per 1000 detik. Keluarannya bertipe long.
Untuk menghitung waktu yang diperlukan untuk menjalankan suatu perintah,
jalankan fungsi System.currentTimeMillis() sebelum dan sesudah suatu instruksi
dijalankan. Perbedaannya adalah waktu yang diperlukan untuk menjalankan suatu
instruksi.
Contoh Program Kelas Math
Berikut ini adalah listing program untuk melakukan beberapa perhitungan
matematika, menampilkan hasilnya di layar, dan melaporkan waktu yang diperlukan
untuk melakukan perhitungan tersebut.
packagewaktukomputasi;
publicclass WaktuKomputasi {
/**
* Program ini akan melakukan beberapa perhitungan
matematika,
* menampilkan hasilnya di layar, dan melaporkan waktu yang
diperlukan
32. 26
* untuk melakukan perhitungan tersebut
*
* @param args
*/
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
long waktuMulai;
long waktuSelesai;
waktuMulai=System.currentTimeMillis();
double panjang, lebar, sisiMiring; // sisi
segitiga siku-siku
panjang=18.0;
lebar=27;
sisiMiring=Math.sqrt(panjang*panjang + lebar*lebar);
System.out.print("Segitiga siku-siku dengan panjang
18 dan lebar 27 memiliki sisi miring ");
System.out.println(sisiMiring);
System.out.println("nSecara matematis, sin(x)*sin(x)
+ "
+"cos(x)*cos(x) - 1 = 0");
System.out.println("Mari kita cek untuk x = 1 :");
System.out.print("sin(1)*sin(1) + cos(1)*cos(1) - 1 =
");
System.out.println(Math.sin(1)*Math.sin(1)
+Math.cos(1)*Math.cos(1)-1);
System.out.println("(Mungkin akan ada kesalahan
desimal dalam "
+"perhitungan bilangan real!)");
System.out.print("nIni adalah bilangan acak : ");
System.out.println(Math.random());
waktuSelesai=System.currentTimeMillis();
System.out.print("nTotal waktu perhitungan : ");
System.out.print((waktuSelesai - waktuMulai)/1000.0);
System.out.println(" detik");
}
}
Berikut adalah hasil keluarannya :
Gambar 11. Contoh Program Kelas Math
Kelas String
33. 27
Nilai suatu String adalah objek.Objek ini berisi rangkaian huruf yang
membentuk string.Objek tersebut juga berisi subrutin.Misalnya length adalah fungsi
yang menghitung panjang suatu string, atau jumlah karakter dalam suatu string.
Misalnya string str yang dideklarasikan sebagai berikut :
Stringstr;
str="Hari ini cerah sekali!"
Untuk menghitung jumlah karakter dalam string str, panggil fungsi
str.length() yang keluarannya bertipe int. Fungsi ini tidak membutuhkan
parameter. Fungsi length merupakan anggota kelas String dan dapat digunakan
oleh semua data yang bertipe String.
Dan juga bisa digunakan oleh literal string, misalnya program berikut
menghitung jumlah karakter dalam string "Indonesia Raya" :
System.out.print("Jumlah karakter dalam "Indonesia Raya" adalah ");
System.out.print("Indonesia Raya".length());
System.out.println(" karakter");
Kelas String memiliki beberapa fungsi di antaranya :
s1.equals(s2) adalah fungsi yang mengembalikan nilai boolean (true atau
false). Fungsi ini akan menghasilkan true jika s2 sama dengan s1, dan salah
jika tidak. Kesamaan yang diuji adalah kesamaan persis baik kapitalnya
maupun urutan huruf-hurufnya.
s1.equalsIgnoreCase(s2) juga menghasilkan nilai boolean yang menguji
apakah string s2 sama dengan s1 dengan tidak membandingkan kapitalnya.
"Kucing".equalsIgnoreCase("kucing") menghasilkan true.
s1.length(). Seperti diulas sebelumnya, fungsi ini menghitung jumlah
karakter dalam string s1.
s1.charAt(N). N adalah integer (bilangan bulat). Fungsi ini mengembalikan
karakter ke-N dari string s1. Karakter pertama dihitung sebagai posisi ke-0.
s1.charAt(0) berarti mengambil karakter pertama, sedangkan s1.charAt(1)
berarti mengambil karakter ke-2, dan seterusnya. Karakter terakhir memiliki
indeks s1.length()-1. Fungsi ini akan mengeluarkan pesan kesalahan
apabila N bernilai negatif atau lebih besar dari s1.length()-1.
s1.substring(N,M), di mana N dan M bilangan bulat. Fungsi ini mengambil
potongan string antara karakter ke-N hingga karakter M-1. Catatan bahwa
34. 28
karakter ke-M tidak ikut diambil. Kita contohkan Misalnya, "jalan
layang".substring(1,4) menghasilkan "ala".
s1.indexOf(s2) mengembalikan nilai integer. Fungsi ini mencari string s2 di
dalam string s1, dan apabila ditemukan mengembalikan posisi awal s2 di
dalam s1. Jika tidak ditemukan, fungsi ini akan mengembalikan -1. Fungsi ini
bisa juga digunakan untuk mencari string s2 dalam s1 setelah posisi ke-N
dalam string s1. Misalnya, "kelapa muda".indexOf("a") menghasilkan 3,
sedangkan "kelapa muda".indexOf("a",6) menghasilkan 10.
s1.compareTo(s2) membandingkan s2 dan s1. Jika s1 dan s2 sama, hasilnya
0. Jika s1 kurang dari s2, hasilnya bilangan negatif , dan jika s1 lebih besar
dari s2, hasilnya bilangan positif. "Kurang dari" atau "lebih dari" mengacu
pada urutannya dalam abjad jika keduanya huruf kecil atau keduanya huruf
besar. Jika kapitalnya berbeda, perbandingannya bergantung pada nilai ASCII-
nya.
s1.toUpperCase() adalah fungsi untuk mengubah seluruh huruf dalam s1
menjadi huruf besar.
s1.toLowerCase() berfungsi untuk mengubah huruf dalam s1 menjadi hurug
kecil.
s1.trim() adalah berfungsi menghapus karakter yang tak bisa dicetak,
misalnya spasi, baris baru, enter, yang ada sebelum atau sesudah suatu
kalimat. Misalnya " selamat pagi bu ".trim() menghasilkan "selamat
pagi bu".
Untuk s1.toUpperCase(), s1.toLowerCase(), s1.trim() nilai s1 tidak
berubah. Fungsi ini melakukan perhitungan kemudian mengembalikan string baru
hasil perhitungan tersebut.Kita bisa juga menggunakan tanda + menyambung 2 string.
Misalnya "mata" + "hari" menjadi "matahari".Nilai yang dapat disambungkan bukan
hanya string dan string, tetapi juga string dan angka, misalnya "jalan" + 2 menjadi
"jalan2".
Contoh Program Kelas String
Berikut ini adalah listing program untuk melakukan beberapa contoh
menggunakan kelas String, menampilkan hasilnya di layar, dan melaporkan waktu
yang diperlukan untuk melakukan perhitungan tersebut.
35. 29
packagecontohstring;
publicclass ContohString {
/**
* @param args
*/
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
// demo String.length() dan operator + untuk
menghubungkan karakter
String str;
str ="Hari ini cerah sekali!";
System.out.println("Panjang string ""+ str +""
adalah "+ str.length());
System.out.print("Jumlah karakter dalam "Indonesia
Raya" adalah ");
System.out.print("Indonesia Raya".length());
System.out.println(" karakter");
// demo equals dan compareTo
System.out.println(""jambu" = "Jambu"?
"+"jambu".equals("Jambu"));
System.out.println("ignore case "jambu" =
"Jambu"? "+"jambu".equalsIgnoreCase("Jambu"));
}
}
Berikut adalah hasil keluarannya :
Gambar 12. Contoh Program Kelas String
2.6 Operator Pada Java
Operator Aritmatika
Operator aritmatika digunakan untuk melakukan operasi matematika, seperti
penambahan, pengurangan, pembagian, dan modulo (atau sisa pembagian). Contoh
penggunaan :
Simbol Nama operator Contoh penggunaan
+ Operator penjumlahan n = n + 1;
- Operator pengurangan n = n - 1;
36. 30
* Operator perkalian n = n * 1;
/ Operator pembagian n = n / 1;
% Operator sisa pembagian n = n % 1;
+ Operator penyambung string n = "saya "+"tidur";
Tabel 3. Operator Aritmatika
Contoh pada program:
packageoperatoraritmatika;
publicclass OperatorAritmatika {
/**
* @param args
*/
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
int x =2;
int y =5;
int z =3;
int g =0;
g = x + y;
System.out.println("Penjumlahan (x+y) : "+ g);
g = y - x;
System.out.println("Pengurangan (y-x) : "+ g);
g = x * y;
System.out.println("Perkalian (x*y) : "+ g);
g = y / x;
System.out.println("Pembagian (y/x) : "+ g);
g = z % y;
System.out.println("Sisa pembagian (z%x) : "+ g);
g = x +(y *(z/x));
System.out.println("Hasilnya sekarang : "+ g);
}
}
Keluaran Program :
Gambar 13. Contoh Program Operasi Aritmatika
37. 31
Operator Pembanding, Boolean dan Kondisi
Operator kondisi (conditional operator) menghasilkan nilai true atau false
tergantung dari variabelnya, dalam hal ini operasinya dilakukan pada dua operand.
Operator boolean adalah operator kondisi yang kedua operand-nya berupa nilai
boolean (true atau false), sedangkan Operator Pembanding membandingkan 2 nilai
seperti pada operasi matematika.
Catatan : Pada objek, seperti String, operasi pembanding akan membandingkan
alamat memory tempat objek itu disimpan, bukan membandingkan isinya. Untuk
membandingkan isi String, gunakan equals(), equalsIgnoreCase(), dan
compareTo() seperti dibahas pada bagian sebelumnya.
Simbol Nama operator Contoh
== Sama dengan b = (1 == 2);
!= Tidak sama dengan b = (1 == 2);
> Lebih besar b = (1 > 2);
>= Lebih besar atau sama dengan b = (1 >= 2);
< Lebih kecil b = (1 < 2);
<= Lebih kecil atau sama dengan b = (1 <= 2);
&& Conditional AND b = true && false;
|| Conditional OR b = true || false;
! NOT b = !true;
?: Bentuk pendek dari if-then-else
Tabel 4. Operator Pembanding, Boolean dan Kondisi
1. Operator boolean AND
Operator kondisi AND menghasilkan "true" apabila kedua operandnya bernilai
"true". Jika salah satunya atau keduanya "false", operator ini menghasilkan "false".
Berikut ini tabel kebenaran operasi booleanAND:
Op1 atau Exp1 Op2 atau Exp2 Hasil
true true true
true false false
false true false
false false false
Tabel 5. Tabel Kebenaran Operasi Boolean AND
38. 32
Operator &&akan mengevaluasi Op2 (di sebelah kanan) HANYA jika
operand 1 bernilai "true". Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah
kiri) bernilai "false", hasilnya akan selalu "false" tidak tergantung pada isi dari Op2.
2. Operator kondisi OR
Operator kondisi OR menghasilkan "true" jika salah satu operandnya bernilai
"true". Jika keduanya "false", operator ini menghasilkan "false". Berikut ini tabel
kebenaran operasi OR:
Op1 atau Exp1 Op2 atau Exp2 Hasil
true true true
true false true
false true true
false false false
Tabel 6. Tabel kebenaran operasi OR
Operator || akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1
bernilai "false". Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah kiri) bernilai
"true", hasilnya akan selalu "true" tidak tergantung pada isi dari Op2.
3. Operator NOT
Operator NOT ("!") melakukan operasi boolean NOT pada operand atau
ekspresi tunggal. Operator ini mengecek nilai boolean dari suatu operand atau expresi
kemudian membalik nilainya (dari true ke false atau false ke true). Berikut ini adalah
tabel kebenaran operasi NOT:
Op1 Hasil
true false
false true
Tabel 7. Tabel Kebenaran operasi NOT
4. Operator Ternary (?:)
Java memiliki operator berkondisi lain yang disebut ternary "?:", yang pada
dasarnya merupakan bentuk pendek dari if-then-else. Secara umum:
kondisi ? jika_benar : jika_salah
39. 33
Pada dasarnya operator "?:" akan mengevaluasi "kondisi". Apabila kondisi
bernilai "true", operator akan mengembalikan "jika_benar", tetapi apabila "kondisi"
bernilai "false", operator akan mengembalika "jika_salah". Misalnya:
x =(1>2)?10:20
Dari contoh di atas, "x" akan memiliki nilai 20, karena ekspresi (1 > 2) adalah
salah (atau "false").
Contoh Program:
packageoperatorkondisi;
publicclass OperatorKondisi {
/**
* Contoh program menggunakan operator kondisi
*
* @param args
*/
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
int x =5;
int y =10, angka =0;
boolean bl =true;
if((x ==5)&&(x < y))
System.out.println("Nilai x adalah "+ x);
if((x == y)||(y >1))
System.out.println("Nilai y lebih besar dari x");
angka = bl ? x : y;
System.out.println("Angka yang keluar adalah "+
angka);
}
}
Berikut adalah hasil keluarannya :
Gambar 14. Contoh Penerapan Operator Ternary
Operator Pemberi Nilai & Type Casting
Operator merupakan simbol untuk melakukan perhitungan atau suatu operasi
pada satu atau lebih dari satu hal.Setelah kita mendeklarasi dan mengisi suatu
variabel, kita dapat menggunakan operator untuk melakukan beberapa hal seperti
penambahan, pengurangan dan sebagainya.
40. 34
Operator Pemberi Nilai
Operator penugasan dan pemberian nilai merupakan operator yang paling
umum dalam semua bahasa pemrograman. Operator ini dilambangkan dengan "="
yang digunakan untuk memberikan nilai kepada suatu variabel di sebelah kiri
operator. Jika variabel tersebut telah memiliki nilai, nilainya akan diganti dengan
variabel atau angka di sebelah kanan operator.
Operator ini juga dapat digunakan untuk memberikan referensi kepada suatu
objek.
Beberapa contoh :
Stringnama="Budi";
boolean dewasa =true;
// buat objek baru
Shape s1 =newShape();
// beri referensi s1 kepada s2
Shape s2 = s1;
// nilai sebelumnya diganti
dewasa=false;
Anda dapat juga memberikan nilai kepada beberapa variabel secara
bersamaan.Misalnya :
x = y = z =2;
x =(y + z);
Operator "=" dievaluasi dari kanan ke kiri. Pada ekspresi pertama, angka 2
diberikan kepada "z", kemudian nilai yang disimpan "z" diberikan kepada "y", dan
kemudian "y" ke "x" secara bersamaan. Pada ekspresi kedua, nilai hasil evaluasi
pertambahan dimasukkan ke variabel "x".
Pada dasarnya, kedua sisi tanda "=" harus memiliki tipe yang sama. Misalnya
x = A, x dan A harus memiliki tipe yang sama. Bagaimana jika tidak, misalnya:
int A;
short B;
A =17;
B =(short)A;
Pada kode di atas, B akan mengambil nilai A yang sudah dikonversi ke tipe
short. Tanda (short) dalam kurung artinya menginstruksikan Java untuk mengubah
nilai A menjadi short sebelum diberikan kepada B.
41. 35
Perubahan tipe ini disebut type casting. Kita bisa mengubah tipe apa saja,
tetapi karena rentang tiap tipe berbeda, maka nilainya belum tentu sama dengan nilai
aslinya. Misalnya (short)100000 adalah -31072.
Untuk perubahan tipe dari bilangan real (float atau double) ke bilangan bulat,
Java melakukan type casting dengan memangkas desimalnya. Jadi 3.56 akan diubah
menjadi 3 dalam bilangan bulat.
Nilai char juga bisa diubah ke dalam bilangan bulat, yaitu dengan
menggantinya dengan bilangan Unicode-nya.
Selain operasi "=", Java juga memiliki operator pemberian nilai beruntun, dan
dapat digunakan oleh semua operator aritmatika, manipulasi bit, atau pergeseran bit.
Misalnya pada ekspresi berikut, nilai "x" akan dijumlahkan dengan 2, kemudian
hasilnya disimpan kembali ke "x".
x +=2;
Table berikut menunjukkan semua operator pemberian nilai yang dapat Anda
gunakan sehingga kode Anda menjadi lebih efisien dan mudah dibaca.
Operator Contoh Ekspresi setara
+= x += y; x = (x + y);
-= x -= y; x = (x - y);
*= x *= y; x = (x * y);
/= x /= y; x = (x / y);
%= x %= y; x = (x % y);
&= x &= y; x = (x & y);
|= x |= y; x = (x | y);
^= x ^= y; x = (x ^ y);
<<= x <<= y; x = (x << y);
>>= x >>= y; x = (x >> y);
>>>= x >>>= y; x = (x >>> y);
Tabel 8. Operator Pemberi Nilai
Contoh Program:
packageoperatorpemberinilai;
publicclass OperatorPemberiNilai {
/**
* Contoh program menggunakan operator pemberi nilai
(assignment operator)
*
* @param args
*/
42. 36
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
int x =5;
int y =10;
x += y;
System.out.println("Hasil penjumlahan : "+ x);
x -= y;
System.out.println("Hasil pengurangan : "+ x);
x *= y;
System.out.println("Hasil perkalian : "+ x);
x /= y;
System.out.println("Hasil pembagian : "+ x);
x %= y;
System.out.println("Sisa pembagian : "+ x);
x &= y;
System.out.println("Hasil operasi AND : "+ x);
x |= y;
System.out.println("Hasil operasi OR : "+ x);
x <<= y;
System.out.println("Hasil operasi pergeseran bit ke
kiri :"+ x);
}
}
Keluaran programnya :
Gambar 15. Contoh penerapan operasi pemberi nilai
2.7 Operasi Dan Struktur Kontrol Pada Java
Komponen mendasar dari suatu program - variabel, ekspresi, penyataan, dan
pemanggilan subrutin - telah dijelaskan pada Penjelasan sebelumnya. Mulai dari
sekarang, kita akan melihat bagaimana komponen dasar tersebut berinteraksi sehingga
menjadi program yang lebih kompleks.
43. 37
Kompleksitas program akan lebih dititikberatkan pada apa yang bisa
dilakukan dari dalam sebuah subrutin. Lebih khusus, akan dijelaskan lebih lanjut
tentang struktur kontrol.
Struktur kontrol, yaitu perulangan (loop) dan percabangan (branch), dapat
digunakan untuk mengulangi perintah berulang-ulang atau untuk memilih dua atau
lebih skenario. Java memiliki beberapa struktur kontrol dan kita akan lihat secara
lebih detail kemudian.
Jika kita dihadapkan pada suatu permasalahan yang akan dipecahkan oleh
program komputer, bagaimana caranya kita berfikir untuk merancang program
tersebut. Kita akan melihat sebagian jawabannya di bab ini, dan kemudian akan kita
gunakan dalam beberapa contoh yang tersedia.
Blok, Perulangan, dan Percabangan
Kemampuan suatu program untuk melakukan tugas kompleks dilakukan
dengan menggabungkan perintah sederhana menjadi struktur kontrol. Dalam bahasa
Java, ada 6 struktur tersebut, yaitu blok, perulangan while, perulangan do ...
while, perulangan for, pernyataan if, dan pernyataan switch.
Masing-masing struktur ini sebetulnya merupakan pernyataan tunggal yang
berdiri dengan sendirinya, tetapi di dalamnya terdiri dari satu atau lebih perintah
sehingga keseluruhannya menjadi suatu struktur perintah.
Blok
Blok adalah pernyataan sederhana yang dimulai dengan { dan diakhiri dengan
}. Tujuannya untuk mengelompokkan beberapa perintah sehingga lebih dimengerti.
Misalnya
{
perintah
}
Pernyataan blok biasanya terdapat dalam struktur kontrol, tetapi sebetulnya
tanpa struktur kontrol pun, blok tetap berlaku. Contoh sederhana penggunaan blok ini
adalah dalam subrutin main() yang kita lakukan pada contoh-contoh sebelumnya.
Berikut ini adalah 2 contoh penggunaan blok:
{
System.out.println("Hallo");
System.out.println("Dunia");
}
44. 38
{// blok ini digunakan untuk menukar isi variable x dan y
int temp;
temp= x;
x = y;
y = temp;
}
Pada blok kedua, kita mendeklarasikan variable baru temp. Dalam blok kedua
ini, variabel apapun yang dideklarasikan tidak akan dapat diakses dari luar blok ini.
Variabel ini disebut variabel lokal, karena hanya bisa diakses dari dalam blok.
Ketika komputer menjalankan program ini, komputer akan mempersiapkan
memori untuk menyimpan variabel yang dideklarasikan di dalam blok ini. Ketika blok
ini selesai dijalankan, komputer akan melepas memori yang digunakan dalam blok ini
untuk digunakan oleh bagian program lain.
Konsep "scope" atau jangkauan pada konsep pemrograman, mengacu pada
bisa atau tidaknya suatu variabel dilihat oleh bagian program lain. Jangkauan suatu
variabel menyatakan di bagian mana variabel ini valid atau dengan kata lain bisa
diakses. Jangkauan variabel dalam suatu blok terbatas hanya pada blok tersebut.
Blok sendiri sebetulnya bukan merupakan struktur kontrol. Program akan
berjalan seperti biasa dari atas kebawah seperti biasa. Secara umum struktur kontrol
dibagi menjadi 2 bagian, yaitu :perulangan dan percabangan.
Perulangan
Sebagai contoh untuk membahas tentang perulangan, kita lihat pernyataan
while, yang memiliki bentuk seperti:
while(suatu_kondisi){
perintah
}
Semantik pada pernyataan while tersebut adalah sebagai berikut. Ketika
komputer sampai pada pernyataan while, komputer akan melakukan perhitungan
pada suatu_kondisi. Apabila suatu_kondisi bernilai true, blok yang berisi
perintah akan dilakukan.
Setelah komputer sampai pada bagian akhir blok, komputer akan menghitung
kembali suatu_kondisi. Jika masih bernilai true, maka blok tersebut akan
dieksekusi, dan jika tidak, program akan melompat ke bagian program berikutnya
setelah blok berakhir. Atau dengan kata lain, jika suatu_kondisi bernilai false, blok
perintah tidak akan dieksekusi.
45. 39
Berikut ini adalah contoh untuk menulis bilangan 1 hingga 5.
int angka =1;// inisialisasi variabel, kita mulai dengan mengisi
variabel angka dengan 1
while(angka <=5){
System.out.println(angka);// cetak isi angka di layar
angka= angka +1;// tambah angka dengan 1
}
System.out.println("Selesai...");
Variabel angka kita inisialiasi (persiapkan) dan kita isi mula-mula dengan 1.
Ketika program sampai pada pernyataan while, program akan mengevaluasi apakah
angka <=5.
Pada saat program baru dimulai, angka masih bernilai 1, sehingga pernyataan
angka <=5 bernilai true. Dalam hal ini perintah di dalam blok akan dieksekusi, yaitu
mencetak angka ke layar, kemudian menambah angka dengan 1. Sekarang angka
bernilai 2.
Setelah sampai pada akhir blok, program akan kembali pada awal pernyataan
while. Sekarang angka bernilai 2, dan karena 2 masih kurang dari atau sama dengan 5,
program akan kembali mengeksekusi perintah dalam blok.
Begitu seterusnya hingga angka bernilai 6. Pada saat ini program akan
berhenti melakukan perulangan dan berhenti melakukan eksekusi perintah di dalam
blok tersebut, kemudian melakukan perintah berikutnya, yaitu menampilkan kata
"Selesai...".
Percabangan
Pernyataan if memperintahkan komputer untuk memilih salah satu aksi yang
akan dilakukan, tergantung pada suatu kondisi tertentu. Bentuknya dapat ditulis
sebagai berikut:
if(suatu_kondisi)
perintah_1;
else
perintah_2;
Perintah_1 dan perintah_2 juga bisa berbentuk blok, sehingga pernyataan di
atas dapat ditulis juga sebagai berikut:
if(suatu_kondisi){
perintah_1;
}else{
perintah_2;
}
46. 40
Ketika komputer sampai pada pernyataan if, komputer akan menghitung
apakah suatu_kondisi bernilai true. Jika iya, maka blok perintah berikutnya akan
dieksekusi, dalam hal ini perintah_1. Jika tidak, maka blok setelah pernyataan else
akan dieksekusi, yaitu perintah_2.
Sebagai contoh, mari kita kembali pada contoh program untuk membalik nilai
x dan y, dengan syarat x harus lebih besar dari y. Dalam hal ini, setelah program ini
dieksekusi, nilai x akan selalu bernilai lebih kecil dari y, karena jika nilai x lebih
besar, nilai x akan ditukar dengan nilai y.
if(x > y){// jika x lebih besar dari y
// blok ini digunakan untuk menukar isi variable x dan y
int temp;
temp= x;
x = y;
y = temp;
}
Contoh berikut adalah program untuk menentukan apakah suatu bilangan
merupakan bilangan genap atau bilangan ganjil.
Dengan menggunakan operator %, yaitu sisa pembagian, kita dapat
menentukan apabila sisa pembagian suatu bilangan dengan 2 adalah 0, maka bilangan
tersebut merupakan bilangan genap.Jika tidak, maka bilangan tersebut adalah
bilangan ganjil.
if((x %2)==0){
System.out.println(x +" adalah bilangan genap");
}else{
System.out.println(x +" adalah bilangan ganjil");
}
2.8 Membuat kode, menguji, dan mencari kesalahan (debugging)
Akan sangat sederhana dan indah apabila program yang kita tulis akan
berjalan 100% tanpa kesalahan sama sekali. Kita tinggal memencet tombol run, dan
semuanya berjalan sesuai rencana.Nyatanya tidak demikian.
Coba Anda ganti salah satu dari beberapa contoh yang sudah diberikan dengan
mengganti salah satu kurung { menjadi (. Kemudian pada Eclipse, jalankan dengan
"Run ->Run". Lihat apa yang terjadi.
Eclipse akan menampilkan pesan kesalahan, itu artinya secara sintaks, atau
format penulisan program ada memiliki kesalahan, dan Anda harus memperbaikinya
sebelum program bisa dijalankan.
47. 41
Gambar 16. Pengujian Sintaks Program Java 1
Sintaks adalah salah satu cara menentukan bagaimana komputer harus bekerja.
Manusia tidak membutuhkan sintaks untuk berbicara karena manusia bisa
menentukan mana subjek, predikat, atau objek dengan mudah, bahkan untuk kalimat
yang belum pernah dibaca atau didengar sekalipun.Bagi komputer, sintaks membantu
komputer mengelola logika, mana yang merupakan variabel, mana yang berupa
subrutin, mana perulangan, mana percabangan dan lain-lain. Dalam bahasa Java, yang
merupakan bahasa dengan sintaks ketat, perbedaan sintaks sedikit saja membuat Java
tidak mengerti apa yang dimaksud dalam program.
Bagi beberapa programmer, ketidakluwesan Java mungkin menghambat,
tetapi perlu diingat bahwa kesalahan hanya datang dari manusia.Ketidakluwesan Java
membantu programmer harus menggunakan logika yang benar, dan tidak boleh salah
dalam menggunakan variabel.Variabel yang sudah ditentukan tipenya tidak dapat
diubah ditengah jalan, kecuali dengan membuat variabel baru dengan tipe yang
berbeda.
Debugging
Ketika program Anda tidak menunjukkan kesalahan sintaks, bukan berarti
program Anda bebas dari kesalahan. Program harus diuji apakah ia berjalan sesuai
dengan yang diharapkan. Idealya apabila program menerima input yang tidak sesuai
dengan yang diharapkan, program akan memberikan pesan kepada penggunanya
tentang kesalahan tersebut, bukan tiba-tiba keluar tanpa pesan.
48. 42
Kita mungkin harus melakukan testing secara lebih perlahan-lahan. Apabila
jumlah baris dalam program kita kecil, mungkin kesalahan tersebut dengan mudah
akan kita temui. Tetapi apabila program tersebut sangat besar, maka mencari
kesalahan yang kelihatannya sederhana tidaklah mudah.
Pencarian kesalahan ini dalam bahasa pemrograman disebut dengan
"debugging", yang jika diterjemahkan ke dalam bahasa Indonesia berarti
membersihkan kutu, karena kesalahan kecil dianggap sebagai kutu yang mengganggu
jalannya program. Eclipse menyediakan peralatan untuk melakukan debugging, yaitu
dengan menekan tombol "Run ->Debug". Dalam Eclipse, debugging yang bisa
dilakukan antara lain: membuat breakpoint (tempat berhenti program), mengeksekusi
satu demi satu perintah, mengeksekusi satu subrutin, melihat isi variabel saat ini, dan
bahkan mengganti variabel pada saat program dijalankan.
Membuat breakpoint
Kita bisa menjalankan program baris demi baris, tetapi sebelum kita
melakukannya, kita harus memberhentikan program tersebut di satu tempat terlebih
dahulu. Tempat pemberhentian program sementara ini disebut breakpoint.Untuk
mengeset breakpoint, double klik bagian paling kiri dari baris di mana Anda ingin
program tersebut berhenti.Misalnya pada tampilan berikut, program berhenti di baris
double x=0;.Perhatikan juga bahwa baris yang diberi breakpoint memiliki tanda
bulat di sampingnya.
Gambar 17. Pengujian Sintaks Program Java 2
49. 43
Untuk menghapus breakpoint, double click lagi tanda bulat di baris yang
sudah diberi breakpoint tadi.
Menjalankan program hingga breakpoint
Coba tekan tombol F11 atau "Run ->Debug". Pada saat Anda memulai
debugging, Eclipse akan memberikan pertanyaan bahwa perspective (atau tampilan
Eclipse) Anda akan diubah ke debugging perspective. Tekan Yes untuk mengubah
perspective tersebut.
Gambar 18.Konfirmasi Debugging Perspective
Berikut ini adalah perspektif dalam mode debugging.
Gambar 19.Perspektif Mode Debugging
50. 44
Perhatikan bahwa di samping tanda bulat tadi, ada tanda panah (->) yang
menunjukkan saat ini komputer telah melaksanakan program hingga pada baris ini.Di
samping kanan adalah daftar variabel yang dideklarasikan dalam program ini.Karena
baris yang kita pilih adalah baris pertama setelah deklarasi pada subrutin main, maka
hanya satu variabel yang tersedia, yaitu yang berasal dari arg.
Menjalankan program langkah per langkah
Apabila Anda sudah berada dalam mode debugging, Anda bisa melakukan
navigasi untuk melakukan eksekusi sesuka Anda. Ada beberapa pilhan yang
disediakan oleh Eclipse, semuanya terdapat dalam menu Runyaitu :
Resume melanjutkan eksekusi program yang berhenti.
Suspend menghentikan sementara program yang sedang jalan.
Terminate menghentikan sesi debugging saat ini.
Step Into mengeksekusi SATU perintah atau masuk ke dalam subrutin.
Step Over mengeksekusi SATU perintah. Jika perintah tersebut merupakan
perintah panggilan subrutin, maka subrutin tersebut akan dieksekusi tanpa
masuk ke dalam subrutin yang dipanggil tersebut.
Step Return mengeksekusi seluruh perintah pada subrutin ini kemudian
kembali kepada pemanggilnya.
Run to Line menjalankan program dari baris tempat berhentinya program
sekarang hingga baris yang Anda tentukan. Atau jika di antaranya terdapat
breakpoint lagi, maka program akan berhenti di breakpoint tersebut.
Mari kita coba untuk menjalankan progam satu langkah dengan menggunakan
"Run ->Step Over" atau tombol F6.
Berikut ini adalah screen shot setelah program maju satu langkah. Perhatikan
bahwa tanda panah maju satu langkah. Dan juga karena instruksi pada baris ini adalah
mendeklarasikan variabel x bertipe double, dan kemudian mengisinya dengan 0,
variabel ini akan muncul di kanan atas perspektif Debug.
51. 45
Gambar 19.Tahap Menjalankan Program
Lakukan terus Step Over hingga program berakhir, dan Anda akan melihat
langkah demi langkah bagaimana program dijalankan secara bertahap.
Perlu diingat, pada saat program sampai pada instruksi untuk mengambil input
Anda, klik bagian bawah (tab yang bernama Console), dan masukkan angka sebagai
input kemudian tekan Enter. Lihat bagaimana variabel di kanan atas berubah sesuai
dengan input yang Anda berikan.
Melihat dan mengubah isi variable
Di sini kita jalankan program setiap baris hingga a = a + 1 Kemudian, kita
ingin memperpanjang perulangan, sehingga bukan melakukan 5 kali perulangan,
tetapi 6 kali, yaitu dengan mengubah nilai a menjadi -1. Ini bisa dilakukan yaitu
dengan mengklik nilai dari a, yang semula 0, kemudian diganti menjadi -1, seperti
pada screen shoot berikut:
52. 46
Gambar 20.Mengubah Isi Variabel
Setelah diganti coba jalankan program hingga selesai, misalnya dengan "Run -
>Resume". Jangan lupa untuk memasukkan inputnya di bagian Console. Lihat
sekarang bilangan ke-0 ditanyakan 2 kali, yang artinya user diperintahkan untuk
memasukkan 6 bilangan. Tentunya hasil rata-ratanya salah, karena perhitungan rata-
rata dilakukan dengan rumus x = x/5, dalam hal ini seharusnya adalah 6.
Gambar 21.Hasil Setelah Program Dijalankan
Setelah selesai melakukan debugging, Anda mungkin ingin mengubah
perspektif kembali seperti semula. Caranya, di bagian paling kanan (lihat gambar
dibawah), klik tanda >> kemudian pilihan akan muncul. Klik perspektif Java untuk
mengubahnya menjadi tampilan semula.
Gambar 22.Mengembalikan perspektif seperti semula
53. 47
BAB IV
PENUTUP
4.1 Kesimpulan
Dari pembahasan di atas, penulis menarik kesimpulan bahwa :
1) Java dikenal sebagai bahasa pemrograman yang bersifat strongly, yang berarti
diharuskan mendeklarasikan tipe data dari semua variable yang apabila lupa
atau salah dalam mengikuti aturan pendeklarasian variable, maka akan terjadi
error pada saat proses kompilasi.
2) Tipe data yang terdapat pada bahasa pemrograman Java pada umumnya tidak
jauh berbeda dengan bahasa pemrograman lain seperti C, C++, Pascal, Basic,
dan lainnya, yakni terdiri dari integer, floating point, char, dan boolean.
3) Aturan penulisan variabel pada bahasa pemrograman Java juga tidak jauh
berbeda dengan bahasa pemrograman lain seperti C, C++, Pascal, Basic, dan
lainnya, yakni harus diawali dengan huruf/abjad, karakter mata uang, dan
underscore ( _ ) dan terdiri dari huruf/abjad, angka, dan underscore ( _ ), serta
tidak boleh menggunakan kata-kata yang dikenal oleh bahasa pemrograman
Java (keyword), seperti byte, case, int, dan lainnya.
4) Sama halnya dengan semua bahasa pemrograman, Java juga menyediakan
operator-operator aritmatika untuk memanipulasi data numerik.
5) Selain operator aritmatika, Java juga mempunyai operator-operator lain,
seperti operator increment dan decrement, operator assignment (penugasan),
operator relasi, operator logical, operator bitwise (yang terdiri dari and, or,
xor, dan complement), dan operator precedence.
4.1 Saran
Dikarenakan cukup rumitnya bahasa pemrograman Java dan semakin
banyaknya pesaing yang berkompetisi di bidang pemrograman Java, maka Penulis
menyarankan kepada pembaca (khususnya pemula), untuk sejak dini mempelajari
bahasa pemrograman tersebut.
54. 48
DAFTAR PUSTAKA
Rijalul Fikri, Ipam Fuadim Adam, Imam Prakoso (2005). Pemrograman Java.
Penerbit Andi Offset.Yogyakarta.
Utama, Ginanjar (2003). Berfikir Objektif: Cara Efektif Menguasai Java. Penerbit
IlmuKomputer. Yogyakarta.
Sutarto, Rachmad Hakim (2009). Mastering Java: Konsep Pemrograman Java dan
Penerapannya Untuk Membuat Software Aplikasi.Penerbit Elex
Media Komputindo.Jakarta.
http://hasim319.wordpress.com/2010/01/16/tips-belajar-java/.Diakses pada tanggal 27
Mei 2013.
http://bayazhar.wordpress.com/2013/02/23/pengantar-dasar-pemrograman-java/.
Diakses pada tanggal 27 Mei 2013.