Вы находитесь на странице: 1из 67

#5

Review #1 - #4
Outline
 Introduction to Java
 Class, Object, Method, Variable, Algorithm
 Data Types, Operators, and Expression
 Constant, Conversion, String

11/02/21 Algoritma & Pemrograman 2


Komputer dan Komponennya
 Computer
 Performs computations and makes logical
decisions
 Millions / billions times faster than human
beings
 Komponen:
 Hardware (komponen fisik pada komputer)
 Software (program yang berjalan pada
komputer)
11/02/21 Algoritma & Pemrograman 3
Sistem Komputer: Hardware
 Struktur mesin: 5 Komponen Utama Komputer

11/02/21 Algoritma & Pemrograman 4


Komponen Software
 Software adalah instruksi-instruksi yang
memberitahu hardware apa-apa saja yang harus
dilakukan oleh hardware
 3 cara mendapatkan software: buy, modify, write
 Applications  tools for the user, usually a
collection of programs (Microsoft Office, Netscape
Navigator)
 Operating system  Program that controls the
computer hardware (Ms. Windows, Macintosh,
Linux / UNIX dan distro LINUX spt SuSe, Mandrake,
Redhat, Knoppix, dll)
11/02/21 Algoritma & Pemrograman 5
Manusia & Mesin [1]
 Interaksi: manusia mesin komputer
 pemanfaatan informasi  mesin membantu
dalam proses data
 Dua sisi:
 Manusia  “human readable”, mudah dibaca atau
dikenal / digunakan
 Mesin  “machine readable”, efisien diproses dan
disimpan

11/02/21 Algoritma & Pemrograman 6


Manusia & Mesin [2]
 Mesin komputer:
 Terdiri dari rangkaian digital (transistor, etc)  umumnya dalam
bentuk sinyal listrik
 Signal digital: hanya mempunyai dua status, on atau off yang
disimbolkan dengan 1 (untuk on) atau 0 (untuk off)  sistem
binari (binary system)
 Human Readable
 Mengerti bahasa pemrograman dengan sintaks & semantik
 Jembatan antara manusia & mesin  Program
komputer
 Program: urutan dan pemakaian simbol (keyword, notasi) yang
dapat digunakan secara mudah oleh manusia (programmer)
 sintaks & semantiks

11/02/21 Algoritma & Pemrograman 7


Levels of Presentation

11/02/21 Algoritma & Pemrograman 8


Level Bahasa Pemrograman
 High level
 Pascal, Java, Fortran
 Intermediate level
 C
 Low level
 Assembly
 Machine code
11/02/21 Algoritma & Pemrograman 9
Programming Language Paradigm

 Paradigma bahasa pemrograman:


 Imperatif (general purpose)
 C, Pascal, Basic
 Fungsional & Deklaratif
 LISP, PROLOG
 Object-Oriented Programming (OOP)
 C++, Java

11/02/21 Algoritma & Pemrograman 10


Compiler and Interpreter
 Komputer tidak mengerti bahasa manusia
 Bahasa Mesin terlalu sulit untuk manusia
 Jadi?
 Dipermudah dengan membuat bahasa pemrograman tingkat
tinggi
 Kemudian dilakukan penerjemahan bahasa program menjadi
bahasa mesin
 Caranya?
 Compiler: source machine code  load  execute
Kompilasi dijalankan sekali saja
 Intrepeter: source  execute
Intrepeter dijalankan setiap kali program tersebut dieksekusi
11/02/21 Algoritma & Pemrograman 11
Compiler & Interpreter in Java [1]

11/02/21 Algoritma & Pemrograman 12


Alur Program Java
 Source file (berekstensi .java) dikompilasi oleh Java
compiler (program utilitas javac) menghasilkan Java
byte-codes (berekstensi .class)
 Javac: source file (.java)  byte-codes (.class)
 Java byte-codes (berekstensi .class) diubah
menjadi bahasa mesin dan dieksekusi oleh
interpreter (program utilitas java). Saat ini, program
utilitas java memanggil Java Virtual Machine
 Dengan Java Virtual Machine, program Java dapat
berjalan pada semua platform tanpa harus dimodifikasi
 Java: byte-codes (.class)  bahasa mesin dan memanggil
Java Virtual Machine
11/02/21 Algoritma & Pemrograman 13
Compile & Run
 Contoh: Compile dan Run program
Hello
 edit Hello.java (proses edit source
code using command prompt - windows)
atau
vi Hello.java (edit source code using
Linux/Unix)
 javac Hello.java (proses kompilasi)
 java Hello (jalankan program)
11/02/21 Algoritma & Pemrograman 14
Class, Object, Method, Algorithm
 Blok kode program dalam bentuk: class
 Dalam sebuah file bisa terdapat banyak class, tetapi hanya satu
class bertipe public
 Class  blueprint dari object (tempat object-object yang
sejenis berada)
 Object  Representasi “sesuatu” (benda, pengertian,
dll) dalam dunia nyata.
 Class mempunyai methods untuk melakukan task atau
menyelesaikan problem.
 Algoritma: sekumpulan instruksi yang jelas pada
komputer untuk menyelesaikan sebuah permasalahan

11/02/21 Algoritma & Pemrograman 15


Class
 Definisi class pada program Java dengan
menggunakan kata kunci class pada program
 Nama class dan nama file (*.java) harus sama
dan case-sensitive (huruf besar & kecil dianggap
berbeda)

11/02/21 Algoritma & Pemrograman 16


Object: What objects do?
 object
 Entitas pada program yang mewakili sesuatu (object).
 Object mempunyai karakteristik (atribut) yang dapat
membedakan object-object yang sama
 Contoh: atribut object mobil  warna, ukuran, bentuk mobil.

11/02/21 Algoritma & Pemrograman 17


Object: Methods
 object dapat dimanipulasi dan melakukan aksi
dengan menggunakan “methods” pada object
tersebut
 Contoh: System.out  object yang
mengontrol display / tampilan
 Memanggil method: println  terjadi aktivitas
pada object System.out yang mengakibatkan
display / tampilan parameter ke layar.
 println  interface dari object dengan dunia luar
supaya dapat dimanfaatkan (public).
11/02/21 Algoritma & Pemrograman 18
Methods: Tasks
 Methods: menggambarkan fungsi atau kemampuan
objects tersebut melakukan operasi/tugas:
 Contoh: object mobil  change_color(), start_run() dll.
 Implementasi methods tidak perlu diketahui oleh
object lain yang memakai methods tersebut
 Contoh: untuk mengubah warna mobil, object
“student” dapat menggunakan methods
change_color() tanpa harus mengetahui bagaimana
methods tsb bekerja (berfungsi).
 Method main  method yang pertama kali dieksekusi
/ dicari dalam program Java dan harus ada 1 pada
semua aplikasi Java
11/02/21 Algoritma & Pemrograman 19
Object: Constructor [1]
 Syntax: new ClassName(parameters);
 Untuk Membuat object baru menurut
parameter yang diperlukan untuk class
tersebut.
 Nama constructor sama dengan nama class.

11/02/21 Algoritma & Pemrograman 20


Object: Constructor [2]
 Class yang berbeda mempunyai “constructor”
yang berbeda dari nilai, jenis dan jumlah
parameter.
 “Default Constructor”: tidak memberikan nilai
parameter (0 parameter)  Class yang akan
mendefinisikan sendiri parameter yang
digunakan
 Contoh: new Rectangle();

11/02/21 Algoritma & Pemrograman 21


Object Name
 Bagaimana melakukan identifikasi
object (jika object lebih dari satu?)
 Dapat dibuat banyak object dari class yang
sama.
 Identifikasi object  secara spesifik dapat
dilakukan manipulasi pada object tersebut.
 Variabel nama object  menyimpan object
yang dibuat dengan new.

11/02/21 Algoritma & Pemrograman 22


Object Variable [1]
Rectangle gambarKotak;
 gambarKotak  variabel dengan object bertipe
class Rectangle
 Tapi variabel ini belum menunjuk ke object
manapun yang telah dibuat (construct).

gambarKotak = new Rectangle(5,10,20,30);


 Pembuatan object bernama gambarKotak yang bertipe
Rectangle dengan constructor Rectangle(5,10,20,30).

11/02/21 Algoritma & Pemrograman 23


Object Variable [2]
 Operator new  membuat satu object
baru bertipe Rectangle dan memberikan
“reference” object tersebut ke variabel
gambarKotak.
 Dengan memakai variabel gambarKotak,
sebagai referensi  object tersebut dapat
dimanipulasi.

11/02/21 Algoritma & Pemrograman 24


Object Reference

Rectangle gambarKotak;
Rectangle drawKotak;

gambarKotak = new Rectangle(5,10,20,30);


drawKotak = gambarKotak;

11/02/21 Algoritma & Pemrograman 25


Algoritma [1]
 Bagaimana memulai menulis program?
Problem, task yang harus diselesaikan/dilakukan oleh

komputer!
 Keyakinan program akan dapat menyelesaikan task
tersebut?
 Problem-solving: menentukan step/tahapan supaya
proses/aktifitas dapat dijalankan untuk mencapai goal
(solved).
 Algoritma: representasi lebih detil dari problem-solving
 start
 input, tahapan, aktifitas, control-flow, mengolah data, if-
error, output (hasil, solved).
 terminate.

11/02/21 Algoritma & Pemrograman 26


Algoritma [2]
 Contoh: <<menghitung total gaji>>
1. Start: set total = 0;
2. Ambil data dari daftar pegawai;
3. Jumlahkan gaji pegawai dengan total;
4. Jika data pegawai belum habis,lakukan 2.
5. Jika data pegawai telah habis, output total.
6. Terminate.
 Karakteristik Algoritma:
 Unambiguous
 Executable
 Terminating
11/02/21 Algoritma & Pemrograman 27
Java: Tipe Data [1]
 Java: strongly typed languages
 Setiap variabel harus diasosiasikan dengan tipe data
yang telah dikenal.
 Tiap tipe data memiliki jumlah alokasi tempat
penyimpanan tertentu
 Kesalahan dapat dideteksi pada saat compile dan
mencegah kerancuan interpretasi data.
 Remember:
 Variabel adalah tempat (menunjuk lokasi) penyimpanan suatu
nilai tertentu.
 Dengan types: membatasi types data/nilai yang dapat disimpan
pada lokasi tersebut.

11/02/21 Algoritma & Pemrograman 28


Java: Tipe Data [2]
 Terdapat dua jenis tipe data:
 Primitive types: numeric type, boolean type

 Reference types: class, arrays, String, dll.

11/02/21 Algoritma & Pemrograman 29


Tipe Data Primitif
 Nilai default: nilai yang sudah terisi pada tipe
data sebelum diinisialiasi oleh programmer
 Besar: ukuran dari tipe data yang bersesuaian
dengan besar tempat penyimpanan untuk tipe
data tersebut

11/02/21 Algoritma & Pemrograman 30


Assignment
 Remember:
 Semua nama variabel dibuat untuk menyimpan nilai
(tergantung tipe data).
 Assignment
 Memberikan nilai baru kepada variabel (simbol: =)
 total = pennies * 0.01;
 Nama Variabel:
 Nilai yang disimpan pada variabel dapat berubah,
sesuai dengan yang diinginkan oleh program (input)
 Misalkan variabel dapat digunakan berulang-ulang untuk
menyimpan data yang baru.

11/02/21 Algoritma & Pemrograman 31


Deklarasi Variabel & Assignment
 Setiap variabel harus diasosiasikan dengan tipe
data yang telah dikenal.
 Semua nama variabel dibuat untuk menyimpan
nilai (tergantung tipe data).
 Deklarasi Variabel sekaligus assignment:
 int pennies = 8;
 double total = pennies * 0.01;
 char karakter = ‘a’;
 boolean isHungry = false;

11/02/21 Algoritma & Pemrograman 32


Jenis - Jenis Operator [1]
 Unary Operator (operator yang memerlukan 1 operand)
 ++ : increment
 -- : decrement
 ! : logical complement / negasi  Boolean NOT
 ~ : bitwise complement  Bitwise NOT
 new : untuk membuat object
 Binary Operator (operator yang memerlukan 2 operand)
 Operator aritmetika:

+ : addition (op1 + op2) / : division (op1 / op2)


* : multiplication (op1*op2) % : modulo (op1 % op2)
- : subtraction (op1 - op2)
11/02/21 Algoritma & Pemrograman 33
Jenis - Jenis Operator [2]
 Binary Operator:
 Operator relasional
 >, >=, <, <=, ==, !=
 Membandingkan dua nilai
 Menghasilkan nilai boolean (true atau false)
 Operator Conditional
 && (operator AND), || (operator OR)
 Evaluasi dari sekumpulan ekspresi true dan false
 Menghasilkan nilai boolean (true atau false)
 Operator Bitwise &, ^, | , <<, >>, dan >>>
11/02/21 Algoritma & Pemrograman 34
Presedensi & Asosiasi Operator
 Presedensi Operator: perbandingan urutan /
prioritas sebuah operator dengan operator
lainnya
 Contoh: operator aritmetika (*) mempunyai presedensi
lebih tinggi dari operator aritmetika (+)
 Tanda kurung () menaikkan urutan presedensi
 Asosiasi Operator: urutan pengerjaan operator
 Asosiasi kiri / left association
 Asosiasi kanan / right association
 Contoh: operator assignment (=) bertipe asosiasi
kanan (R), berarti pengerjaan dimulai dari sisi kanan
dari operator
11/02/21 Algoritma & Pemrograman 35
Ekspresi
 Ekspresi:
 Serangkaian variabel, operator, method, dan
konstanta yang dapat dievaluasi untuk menghasilkan
sebuah nilai.
 Tugas ekspresi adalah melakukan komputasi dan
menghasilkan suatu nilai (dapat disimpan pada suatu
variabel).
 Kumpulan ekspresi diakhir dengan tanda ; merupakan
suatu statement (perintah).
 Contoh:
ekspresi: 7 % 3
nilai ekspresi: 1
statement: cacah = 7 % 3;

11/02/21 Algoritma & Pemrograman 36


Konstan [1]
 Konstan adalah jenis variabel yang:
 Setelah diberikan nilai (inisialisasi), variabel
konstan tidak dapat diubah nilainya.
 Digunakan sebagai acuan nilai dan dijamin
tidak akan berubah nilainya.
 Menggunakan keyword final.
 Mudah dibaca dan mudah diubah
 Contoh:
 final double INCH_TO_CM = 2.54;

11/02/21 Algoritma & Pemrograman 37


Konstan [2]
 Nilai yang berada di constants tidak dapat
diubah, oleh code sesudahnya.
final double CAN_VOLUME = 0.355;
CAN_VOLUME = 0.4;
 Compiler error!

11/02/21 Algoritma & Pemrograman 38


Aritmetika
 Dasar operasi: *, +, - , / dan %
 Sesuai dengan tipe data  int atau double
 Operasi arithmetika dapat dibantu oleh library
java: Math
 Contoh bantuan library Math:

x Math.sqrt(x)

11/02/21 Algoritma & Pemrograman 39


Package / Library: Math [1]
 Contoh mendapatkan nilai bulat:
double price = 44.95;
int dollars = (int)(price + 0.5);
System.out.print ("The price is $");
System.out.println (dollars); // print 45
 Contoh dengan library Math (lebih baik):
int dollars = (int) Math.round(price);
 Math adalah suatu class, bukan object

11/02/21 Algoritma & Pemrograman 40


Package / Library: Math [2]
 Class method: Math.round()
 Math  beroperasi pada bilangan
 Lebih sebagai fungsi (pemecahan formula)
yang ingin dilaksanakan.
 Contoh: round(x), sqrt(x), dll
 Bedakan dengan:
 System.out.println();
 Method println, beroperasi pada object out,
yang berada pada class System
11/02/21 Algoritma & Pemrograman 41
Package / Library: Math [3]
1). ab
(a + b) / 2
2
2). b  b 2  4ac (-b + Math.sqrt (b * b – 4 * a * c)) / 2 *
2a a 2
b 2a4ac
b 2  4ac

b  b 2  4ac

b  b 2  4ac
2a
11/02/21 Algoritma & Pemrograman 42
Package / Library: Math [4]
Math.sqrt( x) square root of x ( x  0)
Math.pow( x, y ) x y ( x  0, or x  0 and y  0,
or x  0 and y is an integer)
Math.sin( x) sine of x ( x in radians)
Math.cos( x) cosine of x ( x in radians)
Math.tan( x) tangent of x ( x in radians)
Math.asin( x) (arc sine) sin -1 x  [  2,  2 ], x  [ 1,1]
Math.acos( x) (arc cosine) cos -1 x  [0,  ], x  [1,1]
Math.atan( x) (arc tangent) tan -1 x  [  2,  2 ]
Math.atan2(
11/02/21
y , x) (arc tangent) tan -1
Algoritma & Pemrograman
( y x)  [ ,  ], x may be430
Package / Library: Math [5]
Math.round( x) the closest integer to x (as a long)
Math.ceil( x) smallest integer  x (as a double)
Math.floor( x) largest integer  x (as a double)
Math.abs( x) absolute value x
Math.toDegrees( x) tangent of x ( x in radians)
Math.toRadians(x) converts x degrees to radians
(i.e. returns x  180)
Math.log( x) (natural log) ln( x), x  0
Math.exp( x) ex
11/02/21 Algoritma & Pemrograman 44
Java: Tipe Data
 Terdapat dua jenis tipe data:
 Primitive types: numeric type, boolean type

 Reference types: class, arrays, String, dll.

11/02/21 Algoritma & Pemrograman 45


Reference Type: String
 String:
 Kita dapat mendefinisikan suatu tipe yang berupa urutan
karakter
 Urutan karakter dibatasi oleh: “ … “ (double quote) di mana
double quote tidak termasuk dalam strings).
 Contoh: String nama = "Bambang";
Declare variabel nama untuk menyimpan strings “Bambang”
 Gunakan assigment untuk mengubah/menyimpan string ke
suatu variabel:
 nama = "Jos";
 String merupakan reference type (sebagai class)
 Perhatikan String diawali dengan huruf besar sesuai dengan
konvensi penamaan Class (beda dengan tipe primitif int,
double, dll)

11/02/21 Algoritma & Pemrograman 46


Methods pada String [2]
 String merupakan object (berbeda dengan tipe
primitif), maka terdapat berbagai methods yang
dapat digunakan untuk memudahkan operasi
pada strings.
 length() : mengetahui jumlah karakter pada strings
 int n = nama.length(); // panjang
 substring() : mengambil sebagian strings dari
suatu strings
String substring(int startIndex, int pastEnd);
 Contoh:
String greeting ="Hello,World!";
String sub = greeting.substring(0,4);
//sub is "Hell"
11/02/21 Algoritma & Pemrograman 47
String: substring
 Index String:
 Posisi (index) karakter string diawali dengan
index 0
 Posisi karakter terakhir dari string selalu lebih
kecil 1 dari panjang string
 Mengambil kata World dari kata “Hello,
World!”:

substr(7,5)
11/02/21 Algoritma & Pemrograman 48
String: concatenate
 Menggabung (concatenate) 2 string dengan operator +
String fname = "Bambang";
String lname = "Wijanarko";
String name = fname + lname;
 Hasilnya? name = "BambangWijanarko"
 Jika ingin name = "Bambang Wijanarko", maka
String name = fname + " " + lname;
 String juga melakukan konversi dari bilangan ke string
secara otomatis
String id = "Agent" + 7; // Hasilnya "Agent7"

11/02/21 Algoritma & Pemrograman 49


Example: substring & concatenate
public class MakePassword
{ public static void main(String[] args)
{ String firstName = "Harold";
String middleName = "Joseph";
String lastName = "Hacker";
// extract initials
String initials = firstName.substring(0,1)
+ middleName.substring(0,1)
+ lastName.substring(0,1);
int age = 19;
String password = initials.toLowerCase() + age;
System.out.println("Your password is "
+ password);
}
}
11/02/21 Algoritma & Pemrograman 50
Konversi Tipe Data
 Operator assignment (=) digunakan untuk
penugasan / pemberian nilai kepada variabel
dengan tipe yang sama
 double pecahan = 7.75;

double double

 Jika tipe nilai dan tipe variabel tidak compatible,


maka akan terjadi compiler error.
 double total = “banyak”; // error
double String

11/02/21 Algoritma & Pemrograman 51


Konversi Tipe Data: Conversion
 Jika tipe nilai dan tipe variabel compatible,
maka tidak akan terjadi error.
int dollars = 2;
double total = dollars; // compatible type
 Terjadi promotion, widening conversion (otomatis) dari
suatu tipe hasil ekspresi ke tipe variabel
 Contoh promotion / conversion:
 int  long, float, double
 char  int, long, float, double
 char hanya mempunyai bilangan bulat positif, sedangkan
int bisa positif atau negatif

11/02/21 Algoritma & Pemrograman 52


Konversi Tipe Data: Casting
 Terdapat “strict conversion” pada Java
 Casting adalah konversi yang dilakukan secara
eksplisit oleh programmer
 Misalkan dari floating point ke integer dengan cast:
double dollars = 2.5;
int total = (int) dollars; // cast double ke int
 Casting menyebabkan perubahan tipe data
 cast double ke int: nilai double menjadi bilangan bulat (int)
 Casting merupakan narrow conversion karena dengan
casting mungkin terdapat informasi hilang
 Nilai variabel total menjadi 2, padahal semula nilainya 2.5.

11/02/21 Algoritma & Pemrograman 53


Casting: Pengaruh Urutan
 Terdapat urutan dalam casting
 Urutan berbeda mungkin saja menyebabkan
hasil berbeda
 Cara 1:
double dollars = 2.75;
int total = (int) (dollars * 10); // Total  27
 Cara 2:
double dollars = 2.75;
int total = (int) dollars * 10; // Total  20

11/02/21 Algoritma & Pemrograman 54


Casting: Penggunaan Kurung
 Cara 1:
double dollars = 2.75;
int total = (int) (dollars * 10);
 Urutan:
 (dollars * 10)  masih berisi 27.5 (bertipe double)
 (int)  cast dari double ke int, var. total berisi 27
 Cara 2:
double dollars = 2.75;
int total = (int) dollars * 10;
 Urutan:
 (int) dollars  cast dari double ke int, berisi 2 (bertipe int)
 [hasil casting] * 10  var. total berisi nilai (2 * 10) = 20
11/02/21 Algoritma & Pemrograman 55
String Conversion
 Java tidak memperbolehkan konversi dari type
reference ke tipe primitif
 Misalkan: Class System dikonversikan ke int.
 Sedangkan konversi dari tipe primitif ke
reference hanya diperbolehkan untuk konversi
ke String

11/02/21 Algoritma & Pemrograman 56


String Conversion: Example
Contoh konversi dari tipe primitif ke tipe String
melalui method System.out.println:

int i = (int)12.5f;
System.out.println("Nilai (int)12.5f: " + i);
float f = i;
System.out.println("Float widening f: " + f);

Output:
Nilai (int)12.5f: 12
Float widening f: 12.0

11/02/21 Algoritma & Pemrograman 57


Operasi Masukan & Keluaran
 Pada saat program Java dijalankan, ada 3
buah stream yang secara default
disediakan, yaitu:
 Stream System.in  menangani
pembacaan dari keyboard (standar input)
 Stream System.out  mengirimkan
keluaran ke layar (standar output)
 Stream System.err  mengirimkan
kesalahan (standar error)
11/02/21 Algoritma & Pemrograman 58
Import Paket di Java
 Stream-stream tersebut terdapat pada paket
java.lang (paket yang tidak perlu disebutkan
karena sudah diimpor oleh Java)
 Selain paket java.lang, paket lainnya harus di-
import. Import paket ditulis pada awal kode
program sebelum class-class pada paket
tersebut digunakan pada program
 Contoh:
import java.io.*; // mengimport paket io

11/02/21 Algoritma & Pemrograman 59


Membaca Input dari Keyboard
 Dalam bahasa Java standar, disediakan
object System.in yang
merepresentasikan input standar yaitu
keyboard
 Object System.in bertipe InputStream
 Class InputStream tidak mempunyai
method untuk membaca string atau
bilangan, hanya memiliki method read
untuk baca data byte per byte
11/02/21 Algoritma & Pemrograman 60
Membaca Input [1]
1. Object dari class InputStream membaca
byte, tetapi kita ingin membaca barisan
karakter (ingat 1 karakter Unicode = 2 byte).
Jadi kita perlu membuat object yang dapat
membaca barisan karakter. Dari object
System.in yang bertipe InputStream itu
dapat kita buat object bertipe
BufferedReader, dan kemudian kita dapat
panggil method readLine().

11/02/21 Algoritma & Pemrograman 61


Membaca Input [2]
2. Apabila method readLine() itu menemui
kesalahan (error) pada waktu membaca input,
ia akan membuat suatu exception. Kita harus
menyatakan dalam program apa yang akan
dilakukan jika terjadi exception.
3. Method readLine() me-return string. Kalau
kita ingin membaca input dalam bentuk
bilangan, kita harus mengubah string itu
menjadi bilangan.

11/02/21 Algoritma & Pemrograman 62


Pemecahan Masalah [1]
 Java menggunakan Unicode untuk mengkodekan
karakter. Tiap karakter terdiri dari 2 byte.
 Dalam terminologi Java, InputStream membaca
byte-per-byte, InputStream membaca karakter-
per-karakter. Kita perlu membuat suatu object
Reader dengan berawal dari System.in yang
bertipe InputStream.
 Ada class InputStreamReader yang dapat
mengubah input stream menjadi reader yang dapat
membaca karakter-per-karakter  (a)
11/02/21 Algoritma & Pemrograman 63
Pemecahan Masalah [2]
 Lalu ada class BufferedReader yang dapat
mengubah suatu input reader menjadi input
reader yang dapat membaca sebaris karakter
sekaligus  (b)
 Contoh:
InputStreamReader reader = new InputStreamReader
(System.in); // (a)
BufferedReader console = new BufferedReader
(reader); // (b)

11/02/21 Algoritma & Pemrograman 64


Pemecahan Masalah [3]
 Dalam proses membaca input dapat timbul kesalahan.
Apabila method readline() mengetahui ada
kesalahan, ia akan menggunakan suatu mekanisme
khusus yang disebut exception untuk memberitahu
program yang memanggilnya
 Agar program itu dapat di-compile dengan sukses,
program itu harus dapat menangani pemberitahuan
tersebut.
 Cara yang paling sederhana adalah “catch” exception
tersebut apabila terjadi
 Untuk catch suatu exception, statement-statement yang
dapat membangkitkan exception harus kita letakkan
dalam suatu try block

11/02/21 Algoritma & Pemrograman 65


Pemecahan Masalah [4]
try {
InputStreamReader reader =
new InputStreamReader (System.in);
BufferedReader console =
new BufferedReader (reader);
System.out.println (“Siapa nama anda?”);
String input = console.readLine ();
} catch (IOException ioe) {
System.err.println (ioe);
System.exit (1); // hentikan program
}

11/02/21 Algoritma & Pemrograman 66


Pemecahan Masalah [5]
 Objek bertipe BufferedReader itu dapat
membaca sebaris string dengan method
readLine.
 Kalau kita menginginkan bilangan, string
yang di-return oleh readLine perlu
dikonversi menjadi bilangan dengan
method Integer.parseInt atau
method Double.parseDouble.
11/02/21 Algoritma & Pemrograman 67

Вам также может понравиться