• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

Membagikan "DIKTAT PEMROGRAMAN 2 UNIVERSITAS INDRAPRASTA. Ahmad Fauzi, M.Kom"

Copied!
43
0
0

Teks penuh

(1)

DIKTAT

PEMROGRAMAN 2

UNIVERSITAS INDRAPRASTA

Ahmad Fauzi, M.Kom

(2)

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.

(3)

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.

(4)

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

(5)

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

(6)

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.

(7)

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.

(8)

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) */

(9)

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. }

(10)

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

(11)

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 10 8 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.

(12)

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;

(13)

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;

(14)

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 :

(15)

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 10 >= 5 true 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

(16)

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

(17)

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. }

(18)

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. }

(19)

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;

(20)

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

(21)

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); }

(22)

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

(23)

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. }

(24)

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.

(25)

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.

(26)

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 }

(27)

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; }

(28)

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. }

(29)

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

(30)

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!

(31)

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.

(32)

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.

(33)

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

(34)

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.

(35)

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 kondisi-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),

(36)

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

(37)

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 kondisi-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

Gambar

Gambar 1.1 Fase-fase pemrograman java
Tabel 1.2 Daftar Kata Kunci (Keyword) JAVA
Gambar 1.2 Penjelasan Class Sederhana
Tabel 2.1 Daftar Tipe Data Sederhana
+4

Referensi

Dokumen terkait

Berdasarkan penelitian yang dilakukan dapat disimpulkan bahwa sensor ion timbal dapat dibuat berdasarkan konsep elektroda selektif ion dengan melapiskan ionofor yang

proses pencucian pakaian secara profesional, banyaknya permasalahan yang timbul di dalam pabrik makanan tempat ia bekerja terkait kebersihan pakaian hasil pencucian

 Memperhatikan  Membuat catatan  Bertanya  Mengerjakan Tugas pada Buku Kerja Buku Kerja (Modul) White board, laptop, beningan OHP, spidol 130 menit Penutup

Komponen koverter DC/DC tipe boost berfungsi tidak saja menaikkan tegangan keluaran baterai agar sesuai dengan tegangan nominal motor listrik sebagai komponen

Analysis Moody’s menaikkan outlook untuk sistem perbankan Indonesia dari stabil menjadi positif ditopang oleh perbaikan dalam terkait operasional, kualitas aset dan

Gambar peta diatas mengalami proses pengolahan secara manual untuk digunakan dalam proses pengolahan citra, sehingga hasil pengolahan citra terhadap peta tersebut digunakan

Ini berarti jika kondisi tersebut tidak terpenuhi (false), maka pernyataan di dalam blok tidak akan dilaksanakan dan eksekusi program akan dilanjutkan ke perintah yang ada di

&gt;= Akan bernilai true atau 1 hanya jika nilai yang disebelah kiri lebih besar atau sama dengan dari yang disebelah kanan( selain ini akan bernilai false atau 0).. &lt;=