43
DIKTAT PEMROGRAMAN 2 UNIVERSITAS INDRAPRASTA Ahmad Fauzi, M.Kom

DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Embed Size (px)

Citation preview

Page 1: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

DIKTAT

PEMROGRAMAN 2 UNIVERSITAS INDRAPRASTA

Ahmad Fauzi, M.Kom

Page 2: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 1

PENGENALAN JAVA

1.1 Sejarah Singkat Java

Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James

Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box.

Dikarenakan perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran

kecil dan mengandung kode yang liat. Juga karena manufaktur – manufaktur berbeda

memilih processor yang berbeda pula, maka bahasa harus bebas dari manufaktur manapun.

Proyek diberi nama kode ”Green”.

Kebutuhan untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform

mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus Wirth, pencipta

bahasa Pascal telah merancang bahasa portabel yang menghasilkan intermediate code untuk

mesin hipotesis. Mesin ini sering disebut dengan mesin maya (virtual machine). Kode ini

kemudian dapat digunakan di sembarang mesin yang memiliki interpreter. Proyek Green

menggunakan mesin maya untuk mengatasi isu utama tentang netral terhadap arsitektur mesin.

Karena orang–orang di proyek Green berbasis C++ dan bukan Pascal maka

kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural.

Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang mendapat inspirasi

dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri

merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN

menggantinya dengan JAVA. Nama JAVA sendiri terinspirasi pada saat mereka sedang

menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah

satu dari mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya

mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java.

Produk pertama proyek Green adalah Star 7 (*7), sebuah kendali jarak jauh yang sangat

cerdas. Dikarenakan pasar masih belum tertarik dengan produk konsumer cerdas maka

proyek Green harus menemukan pasar lain dari teknologi yang diciptakan. Pada saat yang

sama, implementasi WWW dan Internet sedang mengalami perkembangan pesat. Di lain

pihak, anggota dari proyek Green juga menyadari bahwa Java dapat digunakan pada

pemrograman internet, sehingga penerapan selanjutnya mengarah menjadi teknologi yang

berperan di web.

1.2 Karakteristik Java Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut : 1. Sederhana

Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun sintaks

pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer

yang rumit dan multiple inheritance. Java juga menggunakan automatic memory

allocation dan memory garbage collection.

Page 3: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

2. Berorientasi objek (Object Oriented)

Java mengunakan pemrograman berorientasi objek yang membuat program dapat

dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi

objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-

objek tersebut.

3. Dapat didistribusi dengan mudah

Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries

networking yang terintegrasi pada Java.

4. Interpreter

Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM).

Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes

dapat dijalankan pada platform yang berbeda-beda.

5. Robust

Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan

mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java

mempunyai runtime-Exception handling untuk membantu mengatasi error pada

pemrograman.

6. Aman

Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java

memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan

untuk merusak sistem komputer yang menjalankan aplikasi tersebut.

7. Architecture Neutral

Program Java merupakan platform independent. Program cukup mempunyai satu

buah versi yang dapat dijalankan pada platform yang berbeda dengan Java Virtual

Machine.

8. Portabel

Source code maupun program Java dapat dengan mudah dibawa ke platform yang

berbeda-beda tanpa harus dikompilasi ulang.

9. Performance

Performance pada Java sering dikatakan kurang tinggi. Namun performance Java

dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise,

Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT).

10. Multithreaded

Java mempunyai kemampuan untuk membuat suatu program yang dapat

melakukan beberapa pekerjaan secara sekaligus dan simultan.

11. Dinamis

Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada

suatu class dengan menambahkan properties ataupun method dapat dilakukan

tanpa menggangu program yang menggunakan class tersebut.

1.3 Sebagian Fitur dari JAVA

1.3.1 Java Virtual Machine

JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada

sebuah mesin nyata. JVM menyediakan spesifikasi hardware dan platform dimana kompilasi

kode Java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari

platform manapun karena proses kompilasi diselesaikan oleh JVM.

Page 4: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini

dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau lebih. Bytecode adalah

serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode mesin harus

dijalankan pada sistem komputer dimana kompilasi ditujukan, sementara bytecode berjalan

pada java interpreter yang tersedia di semua platform sistem komputer dan sistem operasi.

1.3.2 Garbage Collection

Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer mengalokasikan

memori pada saat dijalankan. Namun, setelah menggunakan alokasi memori tersebut, harus

terdapat cara untuk menempatkan kembali blok memori tersebut supaya program lain dapat

menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah programmer yang mutlak

bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana programmer tersebut alpa

untuk mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama

memory leaks.

Program Java melakukan garbage collection yang berarti program tidak perlu

menghapus sendiri objek–objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban

pengelolaan memori oleh programmer dan mengurangi atau mengeliminasi sumber kesalahan

terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.

1.3.3 Code Security

Code Security terimplementasi pada Java melalui penggunaan Java Runtime

Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari

untrusted Java Code.

1. Pertama, class-loader menangani pemuatan kelas Java ke runtime interpreter. Proses ini

menyediakan pengamanan dengan memisahkan kelas–kelas yang berasal dari local disk

dengan kelas–kelas yang diambil dari jaringan. Hal ini membatasi aplikasi Trojan karena

kelas–kelas yang berasal dari local disk yang dimuat terlebih dahulu.

2. Kedua, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode

memenuhi aturan–aturan dasar bahasa Java.

3. Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan

apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses

eksternal dan sistem windowing.

Setelah seluruh proses tersebut selesai dijalankan, barulah kode program di eksekusi.

Java juga menyediakan beragam teknik pengamanan lain :

1. Bahasa dirancang untuk mempersulit eksekusi kode perusak. Peniadaan pointer

merupakan langkah besar pengamanan. Java tidak mengenal operasi pointer. Di tangan

programmer handal, operasi pointer merupakan hal yang luar biasa untuk optimasi dan

pembuatan program yang efisien serta mengagumkan. Namun mode ini dapat menjadi

petaka di hadapan programmer jahat. Pointer merupakan sarana luar biasa untuk

pengaksesan tak diotorisasi. Dengan peniadaan operasi pointer, Java dapat menjadi bahasa

yang lebih aman.

2. Java memiliki beberapa pengaman terhadap applet. Untuk mencegah program bertindak

mengganggu media penyimpanan, maka applet tidak diperbolehkan melakukan open,

read ataupun write terhadap berkas secara sembarangan. Karena Java applet dapat

Page 5: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

membuka jendela browser yang baru, maka jendela mempunyai logo Java dan teks

identifikasi terhadap jendela yang dibuka. Hal ini mencegah jendela pop-up menipu

sebagai permintaan keterangan username dan password.

1.4 Fase Pemrograman JAVA

Gambar 1.1 Fase-fase pemrograman java

1. Membuat Source Code program dengan menggunakan editor text atau software pihak ketiga

lainnya yang dapat memudahkan dalam membuat program dengan bahasa java. Kode

program yang dibuat kemudian disimpan dalam sebuah berkas berekstensi .java

2. Proses kompilasi (Compile), proses ini memeriksa kode program terjadi kesalahan atau tidak.

3. Hasil dari proses compile adalah sebuah berkas bytecode yang berekstensi .class

4. Class hasil compile yang berupa bytecode dapat dijalankan pada semua platform yang

memiliki Java Virtual Machine.

1.5 Token Token adalah elemen terkecil dari program yang masih memiliki arti bagi kompilator. Token

didalam java terbagi menjadi 5 (lima).

Gambar 1.2 Token didalam java terbagi menjadi 5.

Token

Identifier

Keyword

Literal Operator

Separator

Page 6: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

1.5.1 Identifier

Java Identifier adalah suatu tanda yang mewakili nama-nama variabel, method, class, dsb.

Pendeklarasian Java adalah case-sensitive. Hal ini berarti bahwa Identifier : Hello tidak

sama dengan hello. Identifier harus dimulai dengan salah satu huruf, underscore “_”, atau tanda

dollar “$”. Hurufnya dapat berupa huruf besar maupun huruf kecil. Karakter selanjutnya

dapat menggunakan nomor 0 smpai 9.

Syarat penamaan sebuah identifier:

1. Tidak boleh dimulai dengan angka.

2. Tidak boleh mengandung karakter khusus kecuali “_” dan ”$”.

3. Tidak boleh mengandung karakter putih (white space).

4. Tidak boleh menggunakan keyword java.

Tabel 1.1 Contoh Penulisan Identifier

Contoh identifier

Benar Salah

luasLingkaran luasLin&karan

$panjang 4panjang

lebar1 lebar 1

al4y 4lay

user_name user name

1.5.2 Keyword

Keyword (kata kunci) adalah identifier yang telah dipesan atau didefinisikan sebelumnya

oleh Java untuk tujuan tertentu. Anda tidak dapat menggunakan keyword sebagai nama

variabel, class, method , dsb.

Berikut ini adalah daftar dari kata kunci dalam Java (Java Keywords):

Tabel 1.2 Daftar Kata Kunci (Keyword) JAVA

abstract assert boolean break byte

case catch char class const

continue default do double else

enum extends final finally float

for if goto implements import

instanceof int interfaca long native

new package private protected public

return short static strictfp super

switch syncronized this throw throws

transient try void volatile while

1.5.3 Literal

Penulisan besaran untuk variabel adalah penting, literal Java terdiri dari angka, karakter,

dan string. Angka terdiri dari bilangan bulat (integer), bilangan mengambang (floating point), dan

boolean. Nilai boolean untuk true dan false direpresentasikan sebagai 1 dan 0. Karakter selalu

mengacu ke karakter Unicode. String berisi rangkaian karakter. String literal merepresentasikan

banyak karakter dan muncul di dalam pasangan tanda petik ganda (”...”).

Literal karakter direpresentasikan satu karakter Unicode tunggal dan muncul di pasangan

tanda petik tunggal (‟...‟). Serupa C/C++, karakter khusus (seperti karakter kendali dan karakter

yang tidak dapat dicetak) direpresentasikan dengan backslash (\) diikuti kode karakter.

Page 7: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

1.5.4 Operator

Operator menspesifikasikan evaluasi atau komputasi terhadap objek. Operan yang

dioperasikan dapat berupa literal, variabel, atau nilai yang dikirim oleh metode atau fungsi.

Macam-macam operator pada java:

1. Operator Aritmatika

2. Operator Relasi

3. Operator Logika

4. Operator Kondisi

1.5.5 Separtor (pemisah)

Separator digunakan untuk menginformasikan ke kompilator Java mengenai adanya

pengelompokkan di kode program. Berikut daftar separator yang digunakan dalam Java :

Tabel 1.3 Daftar Separotor pada Java

Notasi Nama Deskripsi

(...) Kurung

Untuk menghimpun parameter dalam definisi dan pemanggilan method, juga digunakan untuk menyatakan tingkat pernyataan, menghimpun pernyataan, untuk pengaturan alur program, dan untuk menyatakan tipe cast (cast types)

{...} Kurung kurawal Untuk menghimpun nilai yang otomatis dimasukkan ke dalam array, digunakan juga untuk mendefinisikan blok program, untuk cakupan class, method, dan lokal.

[...] Kurung siku Untuk mendeklarasikan tipe array

; Titik koma Untuk mengakhiri sebuah pernyataan (statement)

, Koma Untuk memisahkan identifier-identifier di bagian deklarasi variabel

. Titik Untuk memisahkan nama paket dari sub-paket dan class dan untuk memisahkan variabel atau method dari variabel referensi.

1.6 Program Sederhana Java Sebuah file kode sumber (dengan ekstensi java.) Memegang satu definisi kelas. Kelas

tersebut merupakan bagian dari program, meskipun aplikasi yang sangat kecil mungkin perlu

hanya satu kelas. Kelas harus memiliki sepasang kurung kurawal.

1. public class PraktikumSatu{

2. public static void main(String[] args){

3. System.out.println(“Hello World”);

4. }

5. }

1.7 Komentar Pada Java Komentar adalah catatan yang ditulis pada kode dengan tujuan sebagai bahan

dokumentasi. Komentar membantu programmer untuk mengkomunikasikan dan memahami

program. Komentar tersebut bukan bagian dari program (bukan statement) dan diabaikan oleh

kompiler sehingga tidak mempengaruhi jalannya program.

Page 8: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Terdapat 3 cara penulisan komentar pada java: 1. Menggunakan dua garis miring (//)

Semua teks setelah tanda // dianggap sebagai komentar.

Contoh:

// ini adalah komentar satu baris (single line comments)

2. Menggunakan sepasang /* dan */

Cara ini digunakan untuk membuat komentar dalam beberapa baris.

Diawali dengan /* dan diakhiri dengan */, semua teks yang berada diantara dua tanda

tersebut dianggap sebagai komentar.

Contoh:

/* ini adalah contoh komentar yang ditulis dalam 2 baris

atau juga disebut dengan multilines comments */

3. Komentar khusus javadoc

Komentar javadoc khusus digunakan untuk men-generate dokumentasi HTML untuk

program Java Anda. Anda dapat menciptakan komentar javadoc dengan memulai

baris dengan /** dan mengakhirinya dengan */.

Contoh:

/**

* Write a description of class MateriTiga here.

* @author (your name)

* @version (a version number or a date)

*/

Gambar 1.2 Penjelasan Class Sederhana

Page 9: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PRAKTIKUM

PraktikumDua

1. /**

2. * Mengetahui cara menuliskan komentar pada java

3. * @author Teknik Informatika Unindra

4. */

5.

6. public class PraktikumDua{

7. public static void main(String[] args){

8. // Menampilkan NPM (Komentar Satu Baris)

9. System.out.println(“NPM : ......”);

10.

11. /* Contoh Komentar Lainnya */

12. System.out.println(“Nama : .....”);

13.

14. /* Komentar

15. ini lebih

16. Dari satu baris */

17. System.out.println(“Teknik Informatika”);

18. }

19. }

Page 10: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 2

TIPE DATA, VARIABEL, KONSTANTA

2.1 TIPE DATA Tipe data mendefinisikan metode penyimpanan untuk mereperesentasikan informasi dan

cara informasi diinterprentasikan. Tipe data berkaitan erat dengan penyimpanan variabel di

memori, karena tipe data variabel menentukan cara kompilator menginterpretasikan isi memori.

Tipe data dalam Java dibagi 2 kategori; tipe data sederhana (primitive types) dan tipe data komposit

(reference types).

2.1.1 Tipe data sederhana (primitive types)

Bahasa pemrograman Java mendefinisikan delapan tipe data primitif. Mereka diantaranya

adalah boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long

(integer), double and float (floating point).

a. Byte

Tipe ini adalah tipe terkecil dari tipe integer. Tipe byte pada umumnya digunakan pada saat

kita bekerja dengan sebuah data stream dari suatu file maupun jaringan, yaitu untuk keperluan

proses membaca / menulis. Rentang nilai byte adalah -128 s.d 127.

Untuk mendeklarasikan variabel bertipe byte, perlu menggunakan kata kunci byte. Berikut ini

contoh pendeklarasian tiga buah variabel bertipe byte.

byte a;

byte b, c = 20;

byte x = 121;

b. Short

Tipe ini merupakan tipe 16-bit yang berada pada rentang nilai -32.768 s.d 32.767. Untuk

mendeklarasikan variabel bertipe short, perlu menggunakan kata kunci short. Berikut ini contoh

pendeklarasian tiga buah variabel bertipe short.

short a;

short b, c = 20;

short x = 121;

c. Int

Tipe ini adalah tipe yang paling banyak digunakan untuk merepresentasikan nilai integer.

Karena dianggap paling efisien dibandingkan dengan tipe – tipe integer lainnya. Tipe data ini

memiliki rentang nilai -2147483648 s.d 2147483647. Berikut ini contoh pendeklarasian tiga buah

variabel bertipe int.

int a;

int b, c = 20;

int x = 32789;

d. Long

Long adalah tipe 64-bit bertanda. Tipe ini digunakan untuk kasus – kasus tertentu yang

nilainya berada di luar rentang tipe int. Dengan kata lain, tipe long biasanya terpaksa digunakan

Page 11: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

pada saat tipe int sudah tidak cukup lagi menampungnya. Berikut ini contoh pendeklarasian tiga

buah variabel bertipe long.

long a;

int b, c = 24569845632;

int x = 327891345;

e. Float

Dispesifikasikan dengan kata kunci float, menggunakan 32-bit untuk menyimpan nilai.

Ketelitian tunggal diolah lebih cepat pada sejumlah prosesor dan hanya mengambil ruang

setengahnya, tetapi akan mulai tidak teliti jika nilai yang diolah terlalu besar atau terlalu kecil.

Perhitungan sederhana yang membutuhkan hanya sedikit ketelitian pecahan, misalkan

perhitungan total suatu besaran, dimana kita hanya membutuhkan ketelitian sepersepuluh, dapat

direperesentasikan dengan tepat, yaitu dengan float. Berikut contoh deklarasi variabel float :

float a;

float b, c = 0.56;

float x = 33.49;

f. Double

Dinyatakan dengan kata kunci double, menggunakan 64-bit untuk menyimpan nilai. Semua

fungsi matematis transcendental, seperti sin, cos, dan sqrt, menghasilkan besaran double. Jika kita

ingin menjaga ketelitian sampai banyak perulangan perhitungan atau mengolah bilangan besar,

double adalah pilihan terbaik. Berikut contoh deklarasi variabel double :

double luas;

double pi = 3.1416;

double inch = 2.54;

Untuk lebih jelasnya lihat tabel dibawah ini:

Tabel 2.1 Daftar Tipe Data Sederhana

Kelompok Tipe Data Jangkauan Memori

Integer

byte -128 s.d 127 8 bit

short -32768 s.d 32767 16 bit

int -2147483648 s.d 2147483647 32 bit

long -9223372036854775808 s.d 9223372036854775807

64 bit

Floating Point

float -3.4 x 108 s.d 3.4 x 108 32 bit

double -1.7 x 10308 s.d 1.7 x 10308 64 bit

char 8 bit

boolean true, false

2.1.2 Tipe data komposit (reference types)

Komposit, Tipe data komposit disusun dari tipe data sederhana atau tipe komposit lain yang

telah ada. Tipe ini antara lain: String, array, class, dan interface.

Page 12: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

2.2 VARIABEL Variabel adalah tempat menampung data atau menampung suatu nilai. Dikatakan variabel

karena nilai yang ditugaskan kepadanya dapat diubah. Dalam pemrograman java, setiap variabel

harus dideklarasikan (diperkenalkan) terlebih dahulu dengan memberitahukan kepada kompiler

nama variabel dan tipe datanya. Bentuk umum deklarasi variabel adalah sebagai berikut:

tipedata namaVariabel;

Berikut adalah beberapa contoh deklarasi variabel:

int panjang;

int lebar;

double luas;

float kelililingLingkaran;

Jika beberapa variabel bertipe sama, maka dapat dideklarasikan secara bersamaan, dengan

dipisahkan tanda koma (,) sebagai berikut:

int panjang, lebar, tinggi;

double luasLingkaran, luasSegitiga;

Variabel seringkali memiliki nilai awal. Anda bisa mendeklarasikan suatu variabel dan

sekaligus menginisialisasikannya. Sebagai contoh:

int tinggi = 6;

int tinggi = 6, panjang = 5;

Setiap pendeklarasian sebuah variabel harus diakhiri dengan sebuah semicolon „;‟. Semicolon

dibutuhkan karena pendeklarasian sebuah variabel adalah sebuah statement di Java. Variabel

merupakan sebuah identifier di java, maka syarat penamaan sebuah variabel mengikuti aturan

penamaan identifier.

2.3 KONSTANTA Konstanta sama seperti variabel, tetapi suatu konstanta merepresentasikan data permanen

yang tidak dapat diubah. Suatu konstanta harus dideklarasikan dan diinisialisasikan dalam

statement yang sama. Kata final merupakan kata kunci (keyword) dalam java untuk

mendeklarasikan suatu konstanta. Bentuk umum deklarasi konstanta adalah sebagai berikut:

final tipedata NAMA_KONSTANTA = nilai;

Contoh deklarasi konstanta:

final double PI = 3.14159;

final String KAMPUS = “Unindra”;

Page 13: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Praktikum

PraktikumTiga

1. /*

2. * Praktikum Tiga

3. * Mengetahui cara penggunaan variabel dan menampilkannya

4. * @author Teknik Informatika Unindra

5. */

6.

7. public class PraktikumTiga{

8. public static void main(String[] args){

9. //membuat variabel panjang

10. int panjang;

11.

12. //membuat variabel lebar dan langsung inisialisasi nilai

13. int lebar = 8;

14.

15. //membuat variabel luas

16. double luas;

17.

18. panjang = 10;

19. luas = panjang * lebar;

20.

21. //Menampilkan (mencetak) data pada console

22. System.out.println(“Panjang = “ + panjang);

23. System.out.println(“Lebar = “ + lebar);

24. System.out.println(“Luas = “ + luas);

25. }

26. }

Latihan

1. Buatlah sebuah program untuk menghitung luas lingkaran yang didalamnya terdapat

konstantan bernama PI (3.14159), dan menampilkan hasilnya pada console Blue-J;

2. Buatlah sebuah program untuk menghitung luas segitiga dan menampilkan hasilnya pada

console Blue-J;

Page 14: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 3

OPERATOR

Operator dapat diartikan juga simbol yang biasa digunakan dalam menulis suatu

pernyataan dalam bahasa pemrograman. Operator akan melakukan suatu operasi terhadap

operand sesuai dengan fungsinya. Operator ini mengikuti bermacam-macam prioritas yang pasti

sehingga compilernya akan tahu yang mana operator untuk dijalankan lebih dulu dalam

kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan.

3.1 Operator Penugasan

Setelah suatu variabel dideklarasikan anda bisa menugaskan suatu nilai kepadannya

menggunakan operator penugasan. Dalam java tanda “sama dengan” (=) digunakan sebagai

operator penugasan. Contoh operator penugasan:

int x = 1; // menugaskan 1 kepada variabel x

double luas = 1.0; // menugaskan 1.0 kepada variabel luas

x = 5 * (2 + 4); // menugaskan nilai ekspresi kepada x

Suatu variabel dapat juga digunakan di dalam suatu ekspresi. Sebagai contoh:

x = x + 1;

Operator penugasan juga dapat digunakan secara berantai, contoh:

a = b = c = 10;

3.2 Operator Aritmatika Operator aritmatika mencakup: penjumlahan (+), pengurangan (-), perkalian (*), pembagian

(/), dan modulus (%).

Tabel 3.1

Operator Arti Contoh Hasil

+ Penjumlahan 5 + 4 9

- Pengurangan 10 – 7 3

* Perkalian 8 * 2 16

/ Pembagian 10 / 5 2

% Modulus (Sisa bagi) 25 % 3 1

Ketika dua operand dari operator pembagian adalah integer, maka hasilnya akan integer.

Bagian fraksional akan dibuang. Misalnya, 5/2 akan menghasilkan 2, bukan 2.5.

3.3 Operator Penaikan dan Penurunan Operator ini biasa disebut dengan operator increment dan decrement. Operator ini digunakan

untuk menaikkan atau menurunkan suatu nilai integer (bilangan bulat) sebanyak satu (1) satuan

dan hanya dapat digunakan pada variabel. Sebagai contoh, pernyataan

hitung = hitung + 1; //menambahkan variabel hitung dengan 1

Sama dengan :

hitung++;

Page 15: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Tabel 3.2 Operator Increment dan Decrement

Operator Nama Penjelasan Contoh

(asumsi i = 1)

++var Preincrement Menaikan nilai var sebanyak 1 dan menggunakan nilai var yang baru.

int j = ++i; // j = 2, i = 2

var++ Postincrement Menaikan nilai var sebanyak 1 tetapi menggunakan nilai var yang asli.

int j = i++; //j = 1, i = 2

--var Predecrement Mengurangi nilai var sebanyak 1 dan menggunakan nilai var yang baru.

int j = --i; //j = 0, i = 0

var-- Postdecrement Mengurangi nilai var sebanyak 1 dan menggunakan nilai var yang asli

int j = i--; //j = 1, i = 0

3.4 Operator Relasional Operator ini digunakan untuk membandingkan dua buah nilai operand dan menghasilkan

nilai Boolean, yaitu true atau false. Java menyediakan enam operator relasional, seperti yang ditunjukkan pada tabel yang dapat

digunakan untuk membandingkan dua nilai.

Tabel 3.3 Operator Relasional

Operator Nama Contoh Hasil

< Lebih kecil dari 5 < 5 false

5 < 10 true

<= Lebih kecil sama dengan 5 <= 5 true

10 <= 5 false

> Lebih besar dari 7 > 7 false

7 > 4 true

>= Lebih besar sama dengan 7 >= 7 true

10 >= 5 true

== Sama dengan 8 == 9 false

9 == 9 true

!= Tidak sama dengan 10 != 5 true

10 != 10 false

3.5 Operator Logika Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai boolean,

dengan kata lain operator ini hanya dapat digunakan untuk operand yang bertipe boolean. Terdapat 6 operator logika dalam java, yaitu: && (logika AND), & (boolean logika AND), ||

(logika OR), | (boolean logika inclusive OR), ^ (boolean logika exclusive OR), dan ! (logika NOT).

3.5.1 Operator AND (&&) dan boolean logika AND (&)

Hasil operator AND bernilai true jika dan hanya jika kedua operand memiliki nilai boolean

true. Berikut ini adalah tabel kebenaran untuk AND

Tabel 3.4 Tabel Kebenaran Operator AND

P1 P2 P1 && P2

true true true

false true false

true false false

false false false

Page 16: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

3.5.2 Operator OR (||) dan boolean logika OR (|)

Hasil operator OR bernilai true jika salah satu dari operand memiliki nilai boolean true.

Berikut ini adalah tabel kebenaran untuk OR:

Tabel 3.4 Tabel Kebenaran Operator AND

P1 P2 P1 || P2

true true true

false true true

true false true

false false false

3.5.3 Operator exclusive OR (^)

Hasil operator exclusive OR bernilai true jika dan hanya jika kedua operand memiliki nilai

boolean yang berbeda. Berikut ini adalah tabel kebenaran untuk exclusive OR:

Tabel 3.4 Tabel Kebenaran Operator OR

P1 P2 P1 ^ P2

true true false

false true true

true false true

false false false

3.5.4 Operator NOT (!)

Logika NOT digunakan dalam satu argumen, dimana argumen tersebut dapat menjadi

suatu pernyataan, variabel atau konstanta. Berikut adalah tabel kebenaran untuk NOT:

Tabel 3.4 Tabel Kebenaran Operator AND

P1 !P1

true false

false true

3.6 Operator – operator Shorthand

Seperti yang telah dijelaskan sebelumnya, suatu variabel terkadang ditugaskan kembali

setelah digunakan kedalam variabel tersebut. Sebagai contoh:

i = i + 8;

Java mengizinkan untuk menggabungkan penugasan dengan operator penjumlahan

menggunakan operator shorthand. Sebagai contoh, statement di atas dapat dituliskan kembali

sebagai:

i += 8;

Operator += disebut dengan operator penugasan penjumlahan. Operator – operator

shorthand lainnya ditampilkan pada tabel dibawah ini:

Tabel 3.4 Tabel Kebenaran Operator AND

Operator Nama Contoh Ekivalen

+= Penugasan Penjumlahan i += 8 i = i + 8

-= Penugasan Pengurangan i -= 8 i = i – 8

*= Penugasan Perkalian i *= 8 i = i * 8

/= Penugasan Pembagian i /= 8 i = i / 8

%= Penugasan Modulus i %= 8 i = i % 8 * Tidak boleh ada spasi dalam opertor shorthand. Misalnya + = seharusnya +=

Page 17: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PRAKTIKUM

PraktikumEmpat

1. /*

2. * Praktikum Empat

3. * Mengetahui penggunaan operator aritmatika

4. * @author Teknik Informatika Unindra

5. */

6.

7. public class PraktikumEmpat{

8. public static void main (String[] args){

9.

10. int hasil = 1 + 2; //hasil sekarang adalah 3

11. System.out.println(hasil);

12.

13. hasil = hasil – 1; //hasil sekarang adalah 2

14. System.out.println(hasil);

15.

16. hasil = hasil * 2; //hasil sekarang adalah 4

17. System.out.println(hasil);

18.

19. hasil = hasil / 2; //hasil sekarang adalah 2

20. System.out.println(hasil);

21.

22. hasil = hasil + 8; // hasil sekarang adalah 10

23. hasil = hasil % 7; // hasil sekarang adalah 3

24. System.out.println(hasil);

25. }

26. }

PraktikumLima

1. /*

2. * Praktikum Lima

3. * Mengetahui penggunaan operator increment dan decrement

4. * @author Teknik Informatika Unindra

5. */

6.

7. public class PraktikumLima{

8. public static void main (String[] args){

9.

10. int a = 1;

11. int b = a++; //b mendapat nilai dari a(1), a kemudian bertambah 1

12. System.out.println("a = " + a); //2

13. System.out.println("b = " + b); //1

14.

15. int c = 1;

16. int d = ++c; //d mendapat nilai setelah c bertambah 1 (2)

17. System.out.println("c = " + c); //2

18. System.out.println("d = " + d); //2

19.

20. int i = 1;

21. int j = i--; //j mendapat nilai dari i(1), a kemudian berkurang 1

22. System.out.println("i = " + i); //0

23. System.out.println("j = " + j); //1

24.

25. int k = 1;

26. int l = --k; //l mendapat nilai setelah k berkurang 1 (0)

27. System.out.println("k = " + k); //0

28. System.out.println("l = " + l); //0

29. }

30. }

Page 18: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PraktikumEnam

1. /*

2. * Praktikum Enam

3. * Mengetahui penggunaan operator relasional

4. * @author Teknik Informatika Unindra

5. */

6.

7. public class PraktikumEnam{

8. public static void main (String[] args){

9.

10. int x = 72;

11. int y = 99;

12. int z = 99;

13. System.out.println("Inisialisais nilai variabel ...");

14. System.out.println("x = " + x); // x = 72

15. System.out.println("y = " + x); // y = 99

16. System.out.println("z = " + x); // z = 99

17.

18. System.out.println("Perbandingan Lebih Besar Dari (>) :");

19. System.out.println("x > y = " + (x > y)); // false

20. System.out.println("y > x = " + (y > x)); // true

21. System.out.println("z > y = " + (z > y)); // false

22.

23. System.out.println("Perbandingan Lebih Besar Sama Dengan (>=) :");

24. System.out.println("x >= y = " + (x >= y)); // false

25. System.out.println("y >= x = " + (y >= x)); // true

26. System.out.println("z >= y = " + (z >= y)); // true

27.

28. System.out.println("Perbandingan Lebih Kecil Dari (<) :");

29. System.out.println("x < y = " + (x < y)); // true

30. System.out.println("y < x = " + (y < x)); // false

31. System.out.println("z < y = " + (z < y)); // false

32.

33. System.out.println("Perbandingan Lebih Kecil Sama Dengan (<=) :");

34. System.out.println("x <= y = " + (x <= y)); // true

35. System.out.println("y <= x = " + (y <= x)); // false

36. System.out.println("z <= y = " + (z <= y)); // true

37.

38. System.out.println("Perbandingan Sama Dengan (==) :");

39. System.out.println("x == y = " + (x == y)); // false

40. System.out.println("y == z = " + (y == z)); // true

41.

42. System.out.println("Perbandingan Tidak Sama Dengan (!=) :");

43. System.out.println("x != y = " + (x != y)); // true

44. System.out.println("z != y = " + (z != y)); // false

45. }

46. }

Page 19: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 4

INPUT DARI KEYBOARD

Pada praktikum – praktikum sebelumnya nilai dari suatu variabel ditetapkan di dalam kode

sumber (source code), untuk mendapatkan nilai yang berbeda, anda perlu memodifikasi kode

sumber dan mengkompilasi ulang program. Hal tersebut tentu akan cukup merepotkan. Pada

pembahasan kali ini akan dijelaskan bagaimana cara mendapatkan masukan (input) dari keyboard.

Pada java terdapat beberapa cara yang dapat dilakukan untuk mendapatkan masukan dari

keyboard, diantaranya yaitu menggunakan : kelas Scanner, kelas BufferedReader, dan dengan

GUI.

4.1 Kelas Scanner Deklarasi umum penggunaan kelas Scanner adalah sebagai berikut :

Scanner bacaInput = new Scanner(System.in);

Sintaks new Scanner(System.in) menciptakan suatu objek bertipe Scanner. Sintaks Scanner

bacaInput mendeklarasikan bahwa variabel bacaInput adalah suatu variabel bertipe Scanner.

Objek bacaInput dapat memanggil seluruh metode – metode yang ada pada kelas Scanner yang

berfungsi untuk membaca berbagai tipe data masukan. Untuk lebih jelasnya dapat dilihat pada

tabel dibawah ini, metode – metode untuk objek Scanner.

Tabel 4.1 Metode pada kelas Scanner

Metode Penjelasan

nextByte() Membaca suatu integer bertipe byte

nextShort() Membaca suatu integer bertipe short

nextInt() Membaca suatu integer bertipe int

nextLong() Membaca suatu integer bertipe long

nextFloat() Membaca suatu angka pecahan bertipe float

nextDouble() Membaca suatu angka pecahan bertipe double

next() Membaca suatu string yang berakhir dengan karakter spasi

nextLine() Membaca sebaris teks (suatu string yang berakhir dengan enter)

Kelas Scanner berada pada paket java.util, maka anda harus mengimpornya terlebih dahulu

pada baris sebelum deklarasi class dengan sintaks :

Import java.util.Scanner;

4.2 Kelas BufferedReader Pada bagian ini, kita akan menggunakan class BufferedReader yang berada di package

java.io untuk mendapatkan input dari keyboard.

Sintaks untuk menggunakan class BufferedReader adalah sebagai berikut:

BufferedReader dataIn = new BufferedReader (new InputStreamReader( System.in));

Sama seperti menggunakan class Scanner, BufferedReader merupakan sebuah class yang

berada di luar dari package yang kita buat, sehingga harus di import terlebih dahulu;

Page 20: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.IOException;

Pada class BufferedReader juga terdapat fungsi untuk menerima inputan dari keyboard

yaitu dengan fungsi readLine(). Fungsi ini harus ditulis dalam blok try-catch, try-catch berguna

untuk menangani exception pada java.

try{

String name = dataIn.readLine();

}catch( IOException e ){

System.out.println("Error!");

}

4.3 Menggunakan GUI Cara lain untuk mendapatkan input dari user adalah dengan menggunakan class

JoptionPane yang didapatkan dari javax.swing package. JoptionPane memudahkan

memunculkan dialog box standard yang memberikan kepada user sebuah nilai atau

menginformasikan sesuatu.

Contoh penggunaan JOptionPane:

4.4 Keluaran Konsol Terforma Jika anda ingin menampilkan hanya dua digit angka dibelakang titik desimal dari suatu nilai

pecahan, anda mungkin menuliskan kode seperti ini:

double x = 2.0 / 3;

System.out.println(“x sama dengan = “ + (int) (x * 100) / 100.0);

System.out.println(“Hello World”);

Keluaran

x sama dengan 0.66

Akan tetapi, cara yang lebih baik untuk melakukan ini adalah dengan memformat keluaran

menggunakan metode printf. Sintaks untuk memanggil metod ini adalah:

System.out.printf(format, item1, item2, ... , item-n);

Dimana format adalah suatu string yang memuat substring dari penspesifikasi format.

Suatu pensfesifikasi format menentukan bagaimana suatu item ditampilkan. Suatu item bisa jadi

suatu nilai numerik, suatu nilai karakter, suatu boolean, atau suatu string. Suatu pensfesifikasi

Page 21: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

sederhana mengandung suatu tanda persen (%) yang diikuti dengan suatu kode konversi. Tabel

dibawah ini menyajikan beberapa penspesifikasi sederhana yang sering dipakai

Penspesifikasi Keluaran Contoh

%b Suatu nilai boolean True atau false

%c Suatu nilai karakter „a‟

%d Suatu nilai integer 345

%f Suatu nilai pecahan 3.1415

%e Suatu notasi saintifik standar 3.456e+01

%s Suatu string

Contoh penggunaan konsol terformat: int hitung = 5;

double pi = 3.1415;

System.out.printf(“hitung adalah = %d dan PI adalah %f”, hitung, pi);

Keluaran

Hitung adalah = 5 dan PI adalah 3.141500

Daftar item harus sesuai dengan urutan penspesifikasi, dalam nama dan tipe. Sebagai

contoh, penspesifikasi untuk hitung adalah %d dan untuk pi adalah %f. Secara default, suatu nilai

pecahan akan ditampilkan enam (6) digit di belakang titik desimal. Anda bisa menspesifikasi lebar

dan kepresisian seperti yang ditampilkan pada tabel dibawah ini:

Contoh Keluaran

%4c Keluaran karakter dan menambahkan empat spasi sebelum karakter item.

%5d Keluaran item integer dengan lebar minimum 5. Jika jumlah digit dalam item < 5, akan ditambahkan beberapa spasi sebelum angka item. Jika jumlah digit dalam item >5, lebar akan ditambahkan secara otomatis.

%10.2f Keluaran item pecahan dengan lebar minimum 10, termasuk satu titik desimal dan dua (2) digit setalah titik desimal. Jadi dialokasikan 7 digit sebelum titik desimal. Jika jumlah digit dalam item <7, akan ditambahkan beberapa spasi sebelum angka item. Jika jumlah digit dalam item >7, lebar akan ditambahkan scara otomatis

Berikut contoh lainnya: public class PraktikumFormat{

public static void main (String[] args){

int angka = 86;

double nilai = 49.3456;

//persen n (%n) digunakan untuk pindah baris

System.out.printf(“variabel angka %d%n”, angka);

System.out.printf(“variabel angka dengan 2 digit desimal %.2f”, nilai);

}

}

Page 22: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PRAKTIKUM

Contoh penggunaan kelas Scanner:

PraktikumTujuh

1. /*

2. * Praktikum Tujuh

3. * Mengetahui cara penggunaan kelas Scanner

4. * @author Teknik Informatika Unindra

5. */

6.

7. import java.util.Scanner; //memanggil kelas Scanner dari paket java.util

8. public class PraktikumTujuh{

9. public static void main(String[] args){

10. //membuat Objek Scanner

11. Scanner bacaInput = new Scanner(System.in);

12.

13. //menampilkan perintah untuk menginput nama anda

14. System.out.print(“Masukan nama anda = “);

15.

16. //memasukan nama kedalam variabel nama

17. String nama = bacaInput.nextLine(); //bacaInput = objek scanner

18.

19. //menampilkan nama

20. System.out.println(“Nama Anda adalah = “ + nama);

21.

22. }

23. }

Penjelasan program

- Baris 1 – 5 merupakan komentar yang menerangkan tentang program

- Baris 7, memanggil/mengimpor kelas Scanner dari paket java.util

- Baris 8, pendeklarasian class

- Bari 9, metode main dimana metode ini yang pertama kali dijalankan

- Baris 11, pembuatan objek bacaInput dari kelas Scanner

- Baris 14, menampilkan perintah pada konsol dengan tampilan “Masukan nama anda = “

- Baris 17, menugaskan hasil objek bacaInput kedalam variabel nama

- Baris 20, menampilkan isi dari variabel nama

- Baris 22, kurung kurawal tutup, yang menutup metode main

- Baris 23, kurung kurawal tutup, yang menutup class PraktikumJava (akhir dari class)

Page 23: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Contoh penggunaan class BufferedReader;

PraktikumDelapan

1. /*

2. * Praktikum Delapan

3. * Mengetahui cara penggunaan kelas BufferedReader

4. * @author Teknik Informatika Unindra

5. */

6.

7. // Memanggil class-class yang dibutuhkan

8. import java.io.BufferedReader;

9. import java.io.InputStreamReader;

10. import java.io.IOException;

11.

12. public class PraktikumDelapan{

13. public static void main(String[] args){

14. //membuat Objek BufferedReader

15. BufferedReader dataInput = new BufferedReader(new

InputStreamReader( System.in) );

16.

17. String nama = “”;

18. System.out.print(“Masukan nama anda = “);

19.

20. try{

21. nama = dataInput.readLine();

22. }catch( IOException e ){

23. System.out.println("Terjadi kesalahan pada Inputan!”);

24. }

25. //menampilkan nama

26. System.out.println(“Nama Anda adalah = “ + nama);

27.

28. }

29. }

Contoh Penggunaan JOptionPane

Praktikum Sembilan

1. /*

2. * Praktikum Sembilan

3. * Mengetahui cara penggunaan kelas Scanner

4. * @author Teknik Informatika Unindra

5. */

6.

7. // Memanggil class-class yang dibutuhkan

8. import javax.swing.JOptionPane;

9.

10. public class PraktikumSembilan {

11. public static void main(String[] args){

12. String a1 = JOptionPane.showInputDialog(“Angka Pertama :”);

13. String a2 = JOptionPane.showInputDialog(“Angka Kedua :”);

14.

15. int angkaSatu = Integer.parseInt(a1); //konversi String ke int

16. int angkaDua = Integer.parseInt(a2); //konversi String ke int

17. int hasil = angkaSatu + angkaDua;

18.

19. String total = String.valueOf(hasil); // konversi int ke String

20. JOptionPane.showMessageDialog(null,“Hasil Penjumlahan = “ + total);

21.

22. }

23. }

Page 24: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Latihan

1. Buatlah sebuah program java yang membaca panjang dan lebar suatu persegi panjang dari

keyboard menggunakan kelas Scanner, kemudian menghitung Luas dan Keliling dari persegi

panjang tersebut dan menampilkan hasilnya!

Output yang diharapkan:

Masukan panjang persegi = 8 <enter>

Masukan lebar persegi = 5 <enter>

Luas Persegi Panjang = 40

Keliling Persegi Panjang = 36

2. Buatlah sebuah program java yang membaca tinggi dan alas suatu segitiga dari keyboard

menggunakan kelas Scanner, kemudian menghitung Luas dari segitiga tersebut dan

menampilkan hasilnya!

Output yang diharapkan:

Masukan tinggi segitiga = 8 <enter>

Masukan panjang alas segitiga = 5 <enter>

Luas segitiga = 20

3. Buatlah sebuah program java yang membaca suatu derajat dalam celcius dari keyboard

menggunakan kelas Scanner, kemudian mengkonversinya menjadi derajat fahreinheit dan

menampilkan hasilnya! *fahrenheit = (9/5) * celcius + 32

Output yang diharapkan:

Suhu dalam derajat celcius = 10 <enter>

Maka, suhu dalam derajat fahreinheit = 50

4. Buat kembali program – program yang telah dibuat dalam latihan 1-3 dengan menggunakan

class BufferedReader dan JOptionPane.

Page 25: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 5

PERCABANGAN

Statement/pernyataan pada source code java umumnya dijalankan dari atas kebawah

(berurutan/sequence) sesuai dengan urutannya. Namun terkadang ada kalanya sebuah

pernyataan dikerjakan sesuai kondisi tertentu.

Sebagai contoh, pada saat membuat program login, anda akan menanyakan password

pengguna. Apakah pengguna memasukan password yang benar? Jika ya, biarkan pengguna

memasuki sistem lebih lanjut, jika tidak, keluarkan pengguna tersebut. Jadi bahasa pemrograman

Java membutuhkan cara untuk membuat cabang program salah satu dari dua arah. Dalam Java,

hal ini disebut dengan IF statement.

Pada bagian ini akan dijelaskan tentang struktur kontrol pemilihan dimana pernyataan yang

dieksekusi sesuai dengan kondisi tertentu.

5.1 IF Tunggal If tunggal merupakan salah satu percabangan/pemilihan dalam pemrograman java dimana

eksekusi suatu pernyataan hanya dan hanya jika kondisi terpenuhi (true). Sintaks statemen IF satu

arah ditunjukan sebagai berikut:

if (kondisi)

statement;

atau

if (kondisi){

statement 1;

statement 2;

...

statement – n;

}

Jika hasil evaluasi terhadap kondisi bernilai true maka statemen – statemen di dalam blok

akan dieksekusi. Kurung kurawal bisa diabaikan jika hanya ada satu statemen yang akan

dikerjakan jika kondisi bernilai true.

Contoh penulisan statemen if:

if (totalBelanja > 100000){

diskon = totalBelanja * 10 /100;

totalBelanja = totalBelanja – diskon;

}

System.out.println(“Jumlah Bayar = “ + totalBelanja);

Pada contoh potongan source code diatas dapat dijelaskan bahwa, jika variabel totalBelanja

lebih dari (>) 100000 maka akan mendapatkan diskon, dan totalBelanja akan dikurangi (-)

sebanyak diskon yang didapat. Namun jika tidak, 2 statemen di dalam blok if tidak dikerjakan.

Page 26: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Ekspresi kondisi harus diapit oleh sepasang tanda kurung. Sebagai contoh, kode dalam (a)

adalah salah, sedangkan kode dalam (b) adalah benar.

if i > 0 {

System.out.println(“i positif”);

}

if (i > 0) {

System.out.println(“i positif”);

}

(a) salah (b) benar

5.2 IF – ELSE Intruksi percabangan if ... else adalah intruksi percabangan yang menyediakan aksi jika

kondisi yang dispesifikasikan bernilai benar (true), dan juga menyediakan aksi jika kondisi yang

dispesifikasikan bernilai salah (false). Lain halnya dengan if tunggal yang hanya menyediakan

aksi jika kondisi yang dispesifikasikan bernilai benar (true).

Berikut adalah sintaks suatu percabangan if ... else :

if (kondisi) {

statement – statement true

} else {

statement – statement false

}

Jika hasil evaluasi terhadap kondisi bernilai true, maka statement – statement true

dieksekusi, sebaliknya jika kondisi bernilai false, maka statement – statement false dieksekusi.

Sebagai contoh perhatikan kode berikut ini:

if (nilai >= 65) {

System.out.println(“Selamat Anda Lulus”);

} else {

System.out.println(“Mohon Maaf Anda Tidak Lulus”);

}

Penjelasan contoh diatas: jika variabel nilai lebih dari atau sama dengan (>=) 65 (kondisi

true), maka akan menampilkan kalimat “Selamat Anda Lulus”, sebaliknya (kondisi false) akan

menampilkan kalimat “Mohon Maaf Anda Tidak Lulus” (else).

5.3 IF Majemuk (if ... else if) If majemuk dapat juga dikatakan percabangan banyak arah yang terdiri dari beberapa

statement if. Jika kondisi tidak dipenuhi, ditanya kembali kondisi yang lain dan seterusnya.

Apabila semua kondisi tidak terpenuhi, akan mengerjakan statement di bawah else (paling

terakhir). Bentuk umum dari sintaks if majemuk adalah sebagai berikut:

if (kondisi-1) {

aksi jika kondisi-1 benar

} else if (kondisi-2){

aksi jika kondisi-2 benar

} else if (kondisi-3){

aksi jika kondisi-3 benar

} ...

else if (kondisi-N){

aksi jika kondisi-N benar

} else {

aksi jika seluruh konisi tidak terpenuhi

}

Page 27: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Perhatikan contoh berikut:

int testscore = 76;

char grade;

if (testscore >= 90) {

grade = 'A';

} else if (testscore >= 80) {

grade = 'B';

} else if (testscore >= 70) {

grade = 'C';

} else if (testscore >= 60) {

grade = 'D';

} else {

grade = 'F';

}

System.out.println("Grade = " + grade);

Eksekusi statement if diatas akan menghasilkan output Grade = C.

Proses eksekusi pertama kali akan memeriksa apakah nilai (testscore >= 90) jika bernilai

true, maka grade menjadi „A‟, jika kondisi tersebut bernilai false, maka kondisi kedua (testscore

>= 80) akan diperiksa. Jika kondisi tersebut bernilai true, maka grade menjadi „B‟. Jika kondisi

tersebut bernilai false, maka kondisi ketiga dan kondisi-kondisi lainnya diperiksa sampai suatu

kondisi terpenuhi (true). Jika ternyata semua kondisi bernilai false, maka grade menjadi „F‟.

5.4 IF NESTED Suatu statement if dapat memuat statement if lainnya. Atau dengan kata lain, statement if

sebelah dalam dikatakan nested (bersarang) di dalam statement if sebalah luar. Sebagai contoh:

int a = 5, b = 3, c = 2;

int maks;

if (a > b) {

if(a>c) {

maks = a;

} else {

maks = c;

}

} else if (b > c){

maks = b;

} else {

maks = c;

}

Page 28: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PRAKTIKUM

PraktikumSepuluh

1. /**

2. * Praktikum Sepuluh

3. * Mengetahui cara penggunaan statemen if tunggal

4. * @author Teknik Informatika Unindra

5. */

6.

7. import java.util.Scanner; //memanggil kelas Scanner dari paket java.util

8. public class PraktikumSepuluh{

9. public static void main(String[] args){

10. Scanner bacaInput = new Scanner(System.in);

11. System.out.print(“Masukan Suatu Angka = “);

12. int angka = bacaInput.nextInt();

13. if (angka % 2 == 0)

14. System.out.println(“Kelipatan Dua”);

15.

16. if (angka % 5 == 0){

17. System.out.println(“Kelipatan Lima”);

18. System.out.println(“Statement Lain”);

19. }

20. System.out.println(“Terimakasih”);

21. }

22. }

Program diatas meminta untuk memasukan suatu angka (baris 11), dan memasukannya kedalam

variabel angka (baris 12). Menampilkan kalimat “Kelipatan Dua” jika angka yang dimasukan

dapat dibagi 2 tanpa sisa (baris 13 – 14), dan menampilkan “Kelipatan Lima” dan “Statement

Lain” jika angka yang dimasukan dapat dibagi 5 tanpa sisa (baris 16 – 19). Apapun kondisi yang

didapat, program akan menampilkan “Terimakasih” (baris 20) karena pernyataan tersebut tidak

bergantung pada kondisi if.

PraktikumSebelas

1. /**

2. * Praktikum Sebelas

3. * Mengetahui cara penggunaan statemen if ... else

* Program untuk memeriksa apakah suatu angka ganjil atau genap

4. * @author Teknik Informatika Unindra

5. */

6.

7. import java.util.Scanner; //memanggil kelas Scanner dari paket java.util

8. public class PraktikumSebelas{

9. public static void main(String[] args){

10. //membuat Objek Scanner

11. Scanner bacaInput = new Scanner(System.in);

13. System.out.print(“Masukan Suatu Angka = “);

14. int angka = bacaInput.nextInt();

16. if (angka % 2 == 0){

17. System.out.println(angka + “ adalah angka Genap”); // true

18. } else {

19. System.out.println(angka + “ adalah angka Ganjil”); // false

20. }

22. }

23. }

Page 29: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PraktikumDuaBelas

1. /**

2. * Praktikum DuaBelas

3. * Mengetahui cara penggunaan statemen if ... else if

4. * @author Teknik Informatika Unindra

5. */

6.

7. public class PraktikumDuaBelas{

8. public static void main(String[] args){

9. int hari = 2;

10. String namaHari;

11. if (hari == 1){

12. namaHari = “Senin”;

13. } else if (hari == 2){

14. namaHari = “Selasa”;

15. } else if (hari == 3){

16. namaHari = “Rabu”;

17. } else if (hari == 4){

18. namaHari = “Kamis”;

19. } else if (hari == 5){

20. namaHari = “Jumat”;

21. } else if (hari == 6){

22. namaHari = “Sabtu”;

23. } else {

24. namaHari = “Minggu”;

25. }

26.

27. System.out.println(“Nama Hari = “ + namaHari);

28.

29. }

30. }

Latihan

1. Ubahlah Source Code PraktikumDuaBelas, sehingga program tersebut menerima input

berupa angka dari console, dan menampilkan nama hari yang dimaksud!

2. Evaluasi program yang telah anda buat, bagaimana jika yang anda input adalah angka 10,

apakah hasilnya? Jelaskan!

3. Buatlah suatu program yang meminta pengguna untuk memasukan usia dan menampilkan

kategori dari usia tersebut berdasarkan tabel dibawah ini:

Usia Kategori

1 – 16 tahun Anak-anak

17 – 25 tahun Remaja

>25 tahun Dewasa

Output yang diharapkan:

Masukan Usia Anda : 22 <enter>

Kategori Usia Anda adalah Remaja

Page 30: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Kumpulan latihan

1. Buatlah program untuk menentukan diskon dan total harga sejumlah pembelian dengan

aturan diskon sebagai berikut :

No Jumlah Pembelian Diskon

1 Rp. 300.000 s.d Rp. 500.000 40%

2 Rp. 200.000 s.d Rp. 299.999 30%

3. Rp. 100.000 s.d Rp. 199.999 20%

4. Rp. 50.000 s.d Rp. 99.000 10%

2. Buatlah sebuah program untuk menentukan besaran gaji seorang karyawan berdasarkan

keterangan berikut:

Gaji pokok ditentukan dari golongan karyawan

Setiap bulan karyawan mendapatkan tambahan gaji berupa uang transport yang dihitung

per hari.

Total Gaji per bulan = gaji pokok + (jumlah masuk * uang transport)

Golongan karyawan Gaji Pokok Uang Transport (per hari)

A Rp. 3.000.000,- Rp. 15.000,-

B Rp. 2.500.000,- Rp. 10.000,- C Rp. 2.000.000,- Rp. 5.000,-

3. Sebuah Perpustakaan menentukan harga sewa berdasarkan status peminjam. Jika

peminjamnya adalah pelajar, maka harga sewa buku adalah Rp. 500,-/hari. Jika

peminjammnya adalah mahasiswa, maka harga sewa buku adalah Rp. 1000,-/hari. Dan jika

peminjamnya adalah masyarakat umum, maka harga sewa buku adalah Rp. 1500,-/hari. Selain

hal tersebut, perpustakaan itu juga memberikan diskon kepada peminjam berdasarkan jumlah

buku yang dipinjam. Jika jumlah buku yang dipinjam lebih dari 10, maka akan mendapatkan

diskon sebanyak 5% dari total harga sewa buku. Jika jumlah buku yang dipinjam lebih dari 5,

maka akan mendapatkan diskon 2,5% dari total harga sewa. Perpustakaan tersebut juga

memiliki aturan tentang batasan jumlah buku yang boleh dipinjam dan lama masa

peminjaman. Jumlah buku yang boleh dipinjam maksimal 15 buku, dan lama peminjaman

maksimal adalah 7 hari. Buatlah sebuah program menggunakan scanner untuk menghitung

berapa harga sewa yang harus dibayarkan oleh peminjam!

Page 31: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 6

SWITCH - CASE

Statement if dalam PraktikumDuaBelas membuat pilihan berdasarkan true dan false. Ada 6

kondisi untuk menentukan nama hari, yang bergantung pada nilai angkaHari. Untuk

melakukannya, PraktikumDuaBelas menggunakan if-majemuk. Tetapi statement if-majemuk

yang berlebihan dapat membuat suatu program sulit untuk dibaca. Java menyediakan suatu

statement switch untuk menangani berbagai alternatif secara efisien. Berbeda dengan if, switch

hanya memperbolehkan pilihan kondisi yang bertipe integer, seperti byte, long, short, int dan

char. Char dapat sebagai variabel pilihan switch karena char sebenarnya kisaran nilai angka 0

sampai dengan 65535.

Bentuk umum percabangan switch adalah sebagai berikut:

switch (switch_expression){

case case_selector_1:

statement 1; //

statement 2; // Blok 1

... //

break;

case case_selector_2:

statement 1; //

statement 2; // Blok 2

... //

break;

default:

statement 1; //

statement 2; // Blok n

... //

break;

}

Ketika pernyataan switch ditemukan pada potongan kode program, java pertama kali

akan memeriksa switch_expression, dan menuju ke case yang akan menyamakan nilai yang

dimiliki oleh switch_expression. Selanjutnya program akan mengeksekusi pernyataan pada dari

kode setelah case yang ditemukan sampai menemui pernyataan break, selanjutnya akan

mengabaikan pernyataan yang lainnya hingga akhir dari struktur dari pernyataan switch.

Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default.

Sebagai catatan, bahwa bagian blok default adalah opsional. Sebuah pernyataan switch bisa jadi

tidak memiliki blok kode default.

CATATAN:

Tidak seperti pada pernyataan if, beberapa pernyataan pada struktur pernyataan switch

akan dieksekusi tanpa memerlukan tanda kurung kurawal ({}).

Ketika sebuah case pada pernyataan switch menemui kecocokan, semua pernyataan pada

case tersebut akan dieksekusi. Tidak hanya demikian, pernyataan lain yang

berada pada case yang sesuai juga akan dieksekusi.

Untuk menghindari program mengeksekusi pernyataan pada case berikutnya, kita

menggunakan pernyataan break sebagai pernyataan akhir pada setiap blok case.

Contoh Penggunaan Switch

Page 32: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

int noHari = 5;

switch (noHari){

case 1:

System.out.println(“Hari Senin”);

break;

case 2:

System.out.println(“Hari Selasa”);

break;

case 3:

System.out.println(“Hari Rabu”);

break;

case 4:

System.out.println(“Hari Kamis”);

break;

case 5:

System.out.println(“Hari Jumat”);

break;

case 6:

System.out.println(“Hari Sabtu”);

break;

case 7:

System.out.println(“Hari Minggu”);

break;

default:

System.out.println(“No Hari Tidak ada yang sesuai”);

}

Potongan source code diatas adalah memeriksa apakah noHari cocok dengan nilai

1,2,3,4,5,6, dan 7. Jika cocok, akan ditampilkan nama hari seusai dengan case nya. Jika tidak ada

satu pun yang cocok, maka nilai default akan dikerjakan.

Page 33: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PRAKTIKUM

PraktikumTigaBelas

1. /**

2. * Praktikum Tiga Belas

3. * Mengetahui cara penggunaan statemen swtich - case

4. * @author Teknik Informatika Unindra

5. */

6.

7. import java.util.Scanner;

8. public class PraktikumTigaBelas{

9. public static void main(String[] args){

10. Scanner bacaInput = new Scanner(System.in);

11. System.out.print(“Masukan nilai indeks huruf (A,B,C,D,E) = ”);

12. String indeksHuruf = bacaInput.next();

13. char indeks = indeksHuruf.charAt(0); //mengambil karakter pertama

14. switch (indeks){

15. case „A‟ : System.out.println(“Nilai anda Sangat Baik”);

16. break;

17. case „B‟ : System.out.println(“Nilai anda Baik”);

18. break;

19. case „C‟ : System.out.println(“Nilai anda Cukup”);

20. break;

21. case „D‟ : System.out.println(“Nilai anda Kurang”);

22. break;

23. case „E‟ : System.out.println(“Nilai anda Sangat Kurang”);

24. break;

25. default : System.out.println(“Salah Memasukan indeks Huruf”);

26. }

27. }

28. }

Latihan

1. Buatlah program yang terdapat struktur switch – case didalamnya untuk menentukan gaji

bulanan seorang pekerja berdasarkan golongannya. (Lihat tabel)

Golongan Gaji

1 1500000

2 2000000

3 2500000

Output yang diharapkan:

Masukan golongan anda = 2 <enter>

Gaji anda adalah 2000000

Page 34: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 7

PERULANGAN

Struktur kontrol pengulangan adalah berupa pernyataan dari Java yang mengijinkan kita

untuk mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentu yang diinginkan.

Ada tiga macam jenis dari struktur kontrol pengulangan yaitu while, do-while, dan for-loops.

7.1 Perulangan While Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang selama

kondisi dari kondisi-loop bernilai true. Sintaks untuk perulangan while adalah sebagai berikut:

while (kondisi-loop){

//tubuh loop

statement-statement ;

}

Pernyataan didalam perulangan while (tubuh loop) akan dieksekusi secara berulang. Setiap

kondisi-loop merupakan suatu ekspresi boolean yang mengendalikan tubuh loop. Kondisi

tersebut dievaluasi untuk menentukan apakah tubuh loop dieksekusi atau tidak. Jika hasil

evaluasi bernilai true, maka tubuh loop dieksekusi, sedangkan jika bernilai false, maka

keseluruhan loop berhenti dan meng-eksekusi perintah dibawah perulangan while (jika ada).

Kondisi - loop

Tubuh Loop(Statement)

TRUE

FALSE

Perhatikan contoh source code berikut:

int hitung = 1;

while (hitung < = 10 ) {

System.out.println(“Mudah Belajar Java”);

hitung++;

}

Contoh di atas menggambarkan bahwa variabel hitung diinisialisasikan dengan nilai 1,

kemudian kondisi-loop (hitung <= 10) dievaluasi, jika bernilai true maka menampilkan kalimat

Mudah Belajar Java, kemudian menambahkan variabel hitung dengan satu (hitung++). Jika

bernilai false maka perulangan akan berhenti. Output dari potongan source code diatas adalah

kalimat Mudah Belajar Java sebanyak 10 kali.

Page 35: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Pastikan bahwa nilai kondisi-loop pada akhirnya bernilai false sehingga program akan

berhenti. Kesalahan pemrograman yang umum terjadi adalah karena loop tidak pernah berhenti

(infinite loop). Yaitu, program tidak bisa menghentikan loop karena kondisi-kontinuasi-loop selalu

bernilai true.

Perhatikan contoh berikut:

int hitung = 1;

while (hitung < = 10 ) {

System.out.println(“Mudah Belajar Java”);

}

Contoh di atas merupakan kondisi pengulangan yang tidak akan pernah berhanti (infinite

loop). Hal tersebut dikarenakan nilai hitung akan selalu bernilai <= 10 (true).

7.2 Perulangan Do While Struktur do-while sebenarnya mirip dengan struktur while. Namun, pengulangan do-while

melakukan pemeriksaan kondisi-loop pada akhir blok pengulangan. Akibatnya, pada

pengulangan menggunakan struktur do-while proses pengulangan akan dilakukan minimal

sekali, meskipun ternyata kondisinya tidak terpenuhi (bernilai false). Sintaks untuk perulangan

while adalah sebagai berikut:

do {

//tubuh loop

statement-statement ;

} while (kondisi-loop);

Pernyataan di dalam do (tubuh loop) akan dieksekusi terlebih dahulu. Kemudian kondisi-

loop dievaluasi. Jika hasil evaluasi adalah true, maka tubuh loop dieksekusi kembali; jika bernilai

false maka perulangan berhenti. Dan melanjutkan statement berikutnya dibawah perulangan.

TUBUH LOOP(STATEMENTS)

KONDISI – LOOP

TRUE

FALSE

Perhatikan contoh berikut:

int hitung = 1;

do {

//tubuh loop

System.out.println(hitung + “ ”);

hitung++;

} while (hitung <= 10);

Contoh di atas menggambarkan bahwa variabel hitung diinisialisasikan dengan nilai 1,

statement yang berada pada tubuh loop akan dieksekusi (menampilkan nilai variabel hitung),

Page 36: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

kemudian menambahkan dengan 1 (hitung++). Kondisi-loop dievaluasi setelah tubuh loop

dieksekusi, jika bernilai true maka tubuh loop akan kembali dieksekusi; jika bernilai false maka

perulangan akan berhenti. Output dari potongan source code diatas adalah:

1 2 3 4 5 6 7 8 9 10

Untuk lebih memahami perbedaan antara struktur while dengan do-while, coba perhatikan

terlebih dua buah potongan source code program berikut:

int i = 6;

while (i < 5) {

System.out.println(“Belajar Java itu Mudah”);

i++;

}

Pada contoh di atas, blok pengulangan while tidak akan dieksekusi. Hal ini disebabkan nilai

variabel i lebih besar dari 5 yang menyebabkan kondisi-loop tidak terpenuhi (bernilai false).

Perhatikan contoh di bawah ini, dimana pengulangan menggunakan struktur do-while:

int i = 6;

do {

System.out.println(“Belajar Java itu Mudah”);

i++;

} while (i < 5 );

Pada contoh di atas, walaupun nilai variabel i lebih besar dari 5 (yang berarti kondisi loop

bernilai false), tapi program tetap akan mengeksekusi statement di dalam blok pengulangan

sebanyak 1 kali. Hal ini disebabkan karena struktur pengulangan do-while melakukan

pengecekan kondisi-loop setelah meng-eksekusi statement yang berada pada tubuh-loop.

Sehingga walaupun pada pengecekan kondisi-loop bernilai salah (false) statement di dalam

tubuh-loop tetap dikerjakan (1 kali).

7.3 Perulangan For Struktur for pada umumnya digunakan untuk melakukan pengulangan yang banyaknya

sudah pasti atau sudah diketahui sebelumnya. Dalam pengulangan for kita harus menentukan

nilai awal pengulangan dan nilai akhir pengulangan, pengulangan for tidak membutuhkan

counter untuk menaikan variabel karena sudah disebutkan pada salah satu parameter

pengulangan. Bentuk umum pengulangan for sebagai berikut:

for (nilai inisialisasi awal; kondisi loop; iterasi){

// tubuh loop, statement yang akan diulang

}

Proses pengulangan akan terus dilakukan selama kondisi-loop bernilai true. Dengan kata

lain, proses pengulangan hanya akan dihentikan apabila kondisi telah bernilai false atau sudah

tidak terpenuhi lagi.

Struktur pengulangan for biasanya menggunakan suatu variabel untuk mengendalikan

berapa kali tubuh loop akan dieksekusi dan menentukan kapan loop akan berhenti. Variabel ini

Page 37: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

disebut juga dengan variabel kontrol. Nilai inisialisasi awal merupakan variabel kontrol, proses

inisialisasi nilai awal hanya akan dilakukan sekali saja. Iterasi berfungsi menaikan (increment)

atau menurunkan (decrement) nilai variabel kontrol, dan kondisi loop mengevaluasi apakah

kondisi perulangan bernilai true atau false.

Untuk memudahkan pemahaman perhatikan contoh program berikut: 1. public class LatihanFor{

2. public static void main(String[] args){

3. int i;

4. for (i = 1; i <=10; i++){

5. //tubuh loop

6. System.out.println(“JAVA”);

7. }

8. }

9. }

Contoh di atas, melakukan perulangan for dengan inisialisai nilai awal i dengan 1, dan

meng-evaluasi kondisi loop (i <= 10), jika true maka secara berulang mengeksekusi statement

pada tubuh loop (baris 6). Aksi setalah tiap iterasi (i++), adalah suatu statement yang

memperbaharui variabel kontrol. Statement ini dieksekusi setelah (akhir) tiap iterasi. Statemen ini

menaikan (increment) variabel kontrol. Pada gilirannya, nilai variabel kontrol memaksa kondisi-

loop bernilai false. Kalau tidak, maka perulangan akan menjadi tak berhingga (infinite loop).

Variabel kontrol pengulangan dapat dideklarasikan dan diinisialisasi di dalam struktru

perulangan for, berikut adalah contohnya:

for (int i = 1; i <= 1000; i++){

System.out.println(“Pemrograman Java”);

}

7.4 PERULANGAN BERSARANG (NESTED) Perulangan bersarang artinya, di dalam sebuah struktur perulangan terdapat lagi struktur

perulangan lainnya. Sebagai contoh, perhatikan kode program berikut ini:

1. public class ForBersarang{

2. public static void main(String[] args){

3. int i;

4. for (i = 1; i <= 5; i++){

5. for (int j = 1; j <= i; j++){

6. System.out.print(i + “ ”);

7. }

8. System.out.println();

9. }

10. }

Hasil yang akan diberikan oleh program di atas adalah sebagai berikut:

1

2 2

3 3 3

4 4 4 4

5 5 5 5 5

Page 38: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Contoh program diatas bisa juga menggunakan struktur perulangan while maupun do-

while, seperti yang dicontohkan pada kode program berikut:

a. Menggunakan struktur while 1. public class WhileBersarang{

2. public static void main(String[] args){

3. int i = 1;

4. int j;

5. while (i <= 5) {

6. j = 1;

7. while (j <= i) {

8. System.out.print(i + “ ”);

9. j++;

10. }

11. System.out.println();

12. i++;

13. }

14. }

15. }

b. Menggunakan struktur do-while 1. public class WhileBersarang{

2. public static void main(String[] args){

3. int i = 1;

4. int j;

5. do {

6. j = 1;

7. do {

8. System.out.print(i + “ ”);

9. j++;

10. } while (j <=i);

11. System.out.println();

12. i++;

13. } while (i <= 5);

14. }

15. }

Page 39: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PRAKTIKUM 1. Menampilkan bilangan 20 bilangan genap pertama

Output:

2 4 6 8 10 12 ...

2. Menampilkan bilangan sederet bilangan 1 s.d 100 dengan ketentuan setiap angka kelipatan

tiga (3) yang ditampilkan kata “Tiga”, setiap kelipatan lima (5) yang ditampilkan adalah

kata “lima” dan setiap angka yang merupakan kelipatan 3 dan 5 yang ditampilkan adalah

“Unindra”

Output:

1 2 tiga 4 lima tiga 7 8 tiga lima 11 unindra 13 14 unindra ...

Page 40: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

BAB 8

ARRAY

Array adalah sekumpulan variabel bertipe sama yang diacu dengan nama yang sama.

Masing – masing elemen array dapat diakses melalui indeksnya. Dalam java, indeks array selalu

bertipe integer yang dimulai dari 0. Berikut ini gambar yang dapat mengilustrasikan sebuah array.

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7]

10 20 30 40 50 60 70 80

Gambae di atas menunjukan array A yang berisi 8 buah elemen bertipe integer, yaitu 10, 20,

30, 40, 50, 60, 70, 80. Setiap elemen array dapat diakses dengan cara A[indeks].

Array bertujuan untuk mengurangi penggunaan variabel yang banyak dan variabel array

juga memudahkan kita dalam engatur data seperti pengurutan, mencari nilai terbesar, mencari

rata-rata dan lainnya.

8.1 Array Satu Dimensi Untuk menggunakan array dalam sebuah program perlu dilakukan pendeklarasian suatu

variabel untuk mereferensi array dan menspesifikasi tipe elemen array. Berikut adalah sintaks

untuk mendeklarasikan array satu dimensi:

tipeElemen[] varArray;

Tipe elemen menandakan tipe dasar dari setiap elemen array yang ada. Dengan kata lain,

tipe dasar akan menentukan jenis data apa yang akan disimpan dalam masing – masing elemen

array. Tipe elemen dapat berupa sembarang tipe data. Sebagai contoh, kode berikut ini

mendeklarasikan suatu variabel angkaGenap yang mereferensi suatu array dengan elemen –

elemen int.

angkaGenap[] int;

Tidak seperti mendeklarasikan variabel tipe data primitif (sederhana), deklarasi suatu

variabel array tidak mengalokasikan memori untuk array tersebut. Deklarasi tersebut hanya

menyimpan lokasi untuk referensi kepada suatu array. Jika suatu variabel tidak memuat suatu

referensi kepada suatu array, maka nilai variabel tersebut adalah null.

Untuk bisa menugaskan elemen – elemen kepada suatu array harus terlebih dahulu

menciptakan array tersebut, setelah suatu array dideklarasikan anda dapat menciptakan array

tersebut dengan menggunakan kata kunci new dengan sintaks sebagai berikut:

varArray = new tipeElemen[jumlah elemen];

Page 41: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Dimisalkan ingin menentukan array dengan jumlah elemen sebanyak 10, sehingga penulisan

kode-nya adalah sebagai berikut:

angkaGenap = new int[10];

Sampai tahap ini, variabel angkaGenap akan mengacu ke array dengan 10 elemen bertipe

int. Untuk menugaskan nilai – nilai dari masing – masing elemen array tersebut, dapat digunakan

sintaks :

varArray [indeks] = nilai;

Sehingga untuk variabel angkaGenap jika ingin menugaskan nilai kepada elemen –

elemennya adalah sebagai berikut:

angkaGenap[0] = 2;

angkaGenap[1] = 4;

angkaGenap[2] = 6;

angkaGenap[3] = 8;

Mendeklarasikan suatu variabel array, menciptakan suatu array, dan menugaskan referensi

array kepada variabel dapat digabungkan menjadi satu statemen seperti ini:

tipeElemen[] varArray = new tipeElemen[jumlah elemen];

Ini adalah implementasi dari contoh statemen di atas:

int[] angkaGenap = new int[10];

8.2 Array Multidimensi Array multi-dimensi sebenarnya merupakan array dari array. Artinya, terdapat sebuah array

yang setiap elemennya juga bertipe array. Cara umum dalam java untuk mendeklarasikan array

dua dimensi sebagai berikut:

tipeElemen[][] varArray = new tipeElemen[jumlah elemen][jumlah elemen];

Ini adalah implementasi dari contoh statemen di atas:

int[][] varArray = new int[5][4];

Contoh statement diatas akan menghasilkan array 2 dimensi dengan 5 baris dan 4 kolom

Page 42: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

PRAKTIKUM

PraktikumEmpatBelas

1. /**

2. * Praktikum Tiga Belas

3. * Mengetahui cara penggunaan array 1 dimensi

4. * @author Teknik Informatika Unindra

5. */

6.

7. import java.util.Scanner;

8. public class PraktikumEmpatBelas{

9. public static void main(String[] args){

10. Scanner scan = new Scanner(System.in);

11. int[] arrayAngka = new int[5];

12. for(int i = 0; i<arrayAngka.length; i++){

13. System.out.print(“Masukan angka : “);

14. arrayAngka[i] = scan.nextInt();

15. }

16. for(int i = 0; i<arrayAngka.length; i++){

17. System.out.println(arrayAngka[i]);

18. }

19. }

20. }

PraktikumLimaBelas

1. /**

2. * Praktikum Tiga Belas

3. * Mengetahui cara penggunaan array 1 dimensi

4. * @author Teknik Informatika Unindra

5. */

6.

7.

8. public class PraktikumLimaBelas{

9. public static void main(String[] args){

11. String[][] arrayData = new String[2][3];

12. arrayData[0][0] = “20134350001”;

13. arrayData[0][1] = “Budi Santoso”;

14. arrayData[0][2] = “Jakarta”;

15. arrayData[1][0] = “20134350002”;

16. arrayData[1][1] = “Ryan Akbar”;

17. arrayData[1][2] = “Depok”;

18. System.out.println(“NPM \t\t Nama \t\t Alamat”);

19. for(int i = 0; i < 2; i++){

20. for(int j = 0; j < 3; j++){

21. System.out.println(arrayData[i][j] + “\t”);

22. }

23. System.out.println();

24. }

25. }

26. }

Page 43: DIKTAT PEMROGRAMAN 2 - informatikaunindra.orginformatikaunindra.org/file/PEMROGRAMAN 2/Diktat/PEMROGRAMAN 2.pdf · bahasa Pascal telah merancang bahasa portabel yang menghasilkan

Latihan 1. Buatlah sebuah program untuk menginput 10 buah bilangan bulat menggunakan class

Scanner, dan menampungnya kedalam sebuah array. Kemudian cetak jumlah dari

keseluruhan bilangan dan cetak rata-rata nya.

2. Buatlah sebuah program untuk menginput npm, nama, nilai uts, nilai uas, nilai praktikum dan

nilai akhir 5 orang mahasiswa, data mahasiswa ditampung dalam array 2 dimensi. Kemudian

cetak seluruh data yang di inputkan dalam bentuk tabel. (seperti PraktikumLimaBelas)