#2
Class, Object, Method,
Variable, and Algorithm
Outline
Simple Program
Class
Object
Method
Variable
Algoritma
11/02/21 Algoritma & Pemrograman 2
Example: Simple Program
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello, World!");
}
}
Nama class dan nama file (.java) harus sama dan
case-sensitive
Program tersebut harus disimpan dengan nama file:
Hello.java
11/02/21 Algoritma & Pemrograman 3
Kode Program: Class [1]
public class Hello
Programmer ingin mendefinisikan suatu
class/tipe Hello:
class Hello “factory”/cetakan/blueprint
untuk membuat object yang bertipe Hello.
public menunjukkan class Hello bersifat
publik (dapat digunakan oleh class yang lain).
11/02/21 Algoritma & Pemrograman 4
Kode Program: Class [2]
public class Hello
{
…
}
Java: setiap source file hanya dapat mempunyai
satu class publik
Nama class dan nama file (*.java) harus sama
dan case-sensitive (huruf besar dan kecil
dianggap berbeda)
Contoh source file: Hello.java
Hello nama dari class & nama source file
11/02/21 Algoritma & Pemrograman 5
Java: “Structure / syntax /
sintaks / tata bahasa”
11/02/21 Algoritma & Pemrograman 6
Kode Program: Method [1]
public static void main(String[] args)
{
…
}
Di dalam class dapat didefinisikan satu atau lebih
method
Task/fungsi yang berisi instruksi program lebih detil.
Mendefinisikan sebuah method (fungsi) bernama main
yang dapat diakses oleh class/object yang lain
(public).
Sebuah method berisi urutan-urutan instruksi yang
menjelaskan bagaimana melakukan sesuatu pekerjaan
tertentu
11/02/21 Algoritma & Pemrograman 7
Kode Program: Method [2]
public static void main(String[] args)
Setiap aplikasi Java harus mempunyai method
main
Dengan parameter: String[] args
(menyimpan/passing command line)
Kata static menyatakan method main tidak
akan mengubah/update object dari kelas Hello
(nanti akan dipelajari lebih lanjut)
11/02/21 Algoritma & Pemrograman 8
Kode Program: Statements [1]
System.out.println("Hello, World!");
Methods dapat berisi statements
Statements: instruksi spesifik yang diinginkan:
Setiap statement/perintah harus diakhiri dengan
simbol ; (titik koma / semicolon)
Statement ini akan mencetak string:
"Hello, World! "
11/02/21 Algoritma & Pemrograman 9
Kode Program: Statements [2]
System.out.println("Hello, World!");
Dimana dicetak data tersebut? object yang
mana?
System.out: object "out" dari System
display/standard output
Methods yang akan digunakan: println (print line),
dari object System.out mencetak satu baris pada
layar.
Apa yang akan dicetak, parameter dari println:
"Hello, World! "
System class library (telah disediakan dan dapat
digunakan tanpa menulis program-nya).
11/02/21 Algoritma & Pemrograman 10
How to Call a Method
Menggunakan “methods” perlu memenuhi:
object yang mempunyai methods tersebut (method
yang akan digunakan: System.out).
Nama dari method yang akan dipakai, kemungkinan
terdapat banyak methods pada object tersebut
(methods: println).
Parameter, atau data yang
diperlukan oleh methods
tersebut (parameter:
"Hello World!").
11/02/21 Algoritma & Pemrograman 11
Parameter
Apa yang akan dilakukan methods:
Menentukan apa yang akan dimanipulasi oleh
methods yang dipanggil.
"Hello World!" string parameter
(untaian karakter)
Perhatikan diperlukan pasangan " .. " untuk
batasan data tersebut adalah String.
Contoh lain:
System.out.println(5 + 5);
mencetak: 10
11/02/21 Algoritma & Pemrograman 12
Handling Error
Compiler: sangat ketat dalam melakukan evaluasi
terhadap kode program:
Kepastian: kode program benar (sesuai dengan kaidah, aturan)
Ingat: compiler adalah program, hanya mengerti dapat
memproses input tertentu (mis. Hanya kode Java).
Contoh: (kode program salah)
if (intRate > 100)
System.Out.Print("Nilai Persen Bunga Salah);
Java Compiler akan melaporkan “error” karena tidak terdapat
pasangan double quote: “ <string> “ pada kode program.
11/02/21 Algoritma & Pemrograman 13
Common Errors
Tidak terdapat ";" di akhir statements
Suatu statements harus diakhiri dengan “semicolon”
Contoh:
System.out.println ("Halo, juga! ");
Salah mengeja nama class, methods, object
Harus membedakan antara huruf kecil dan besar (case
sensitive).
Nama class biasanya diawali dengan huruf besar / kapital
Nama method biasanya diawali dengan huruf kecil
Error lain:
Compiler error: “undefined object”
System.ouch.println("Hello,World!");
Compile sukses, tapi terdapat run time error -- logic error
System.out.println("Hell,World!");
11/02/21 Algoritma & Pemrograman 14
Compiler Error
Kesalahan syntax penulisan program
HelloWorld.java:7: ';' expected.
System.out.println ("Hello World!")
^
1 error
public static void Main(String[] args)
11/02/21 Algoritma & Pemrograman 15
Run-time Error
Kesalahan ketika program dijalankan
Pembagian angka bulat dengan 0 (nol)
Class tidak ditemukan
Exception in thread "main"
java.lang.NoClassDefFoundError: test
11/02/21 Algoritma & Pemrograman 16
Logic Error
Program benar secara syntax, tetapi jika
dijalankan tidak sesuai dengan apa yang
seharusnya
Untuk melacak logic error (bug) digunakan
debugger
11/02/21 Algoritma & Pemrograman 17
Coding Guideline [1]
Mengapa perlu?
Mudah untuk dibaca
Programmer bisa menjadi lebih produktif
Penting untuk team work (kerja tim)
Penamaan Class
Huruf pertama selalu huruf besar
Jika nama kelas lebih dari 2 kata, setiap huruf
pertama kata berikutnya harus huruf besar
Contoh: AbstractWindow
11/02/21 Algoritma & Pemrograman 18
Coding Guideline [2]
Identasi menggunakan 4 spasi
Kurung kurawal harus segaris / lurus secara horisontal
atau vertikal
Gunakan baris kosong
public class Hello
{
public static void main(String[ ] args)
{
System.out.println ("Hello, World!");
}
}
Identasi (indent)
11/02/21 Algoritma & Pemrograman 19
Coding Guideline [3]
Setiap baris tidak boleh melebihi 80 kolom
Jika harus memecah sebuah statement, tambahkan
identasi untuk selanjutnya
a[n] = ..............
+ .................;
Awali baris baru dengan sebuah operator (jika
dimungkinkan)
Identasi (indent)
11/02/21 Algoritma & Pemrograman 20
Object: What objects do?
object
Entitas pada program yang mewakili sesuatu (object).
Konsep utama dari object-oriented menentukan object yang
mewakili/merepresentasikan “real thing” / hal nyata
Contoh: object mobil, pelajar, TabunganTahapan dll.
Setiap object akan “hidup” dalam program (“instance”):
Create (dibuat dan diberikan tempat/alokasi)
Aktif (beroperasi)
Destroy (hilang)
Object mempunyai karakteristik (atribut) yang dapat membedakan
object-object yang sama
Contoh: atribut object mobil warna, ukuran, bentuk mobil.
11/02/21 Algoritma & Pemrograman 21
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 22
Methods: Tasks
Methods: menggambarkan fungsi atau kemampuan
objects tersebut melakukan operasi/tugas:
Melakukan prosesing, task yang diinginkan oleh
programmer spesifik untuk object tersebut.
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).
11/02/21 Algoritma & Pemrograman 23
Methods: Idea
IDEA: Object menyediakan berbagai
fungsi/fasilitas yang dapat digunakan
interface
BIG IDEA: Implementasi detil tidak perlu
diketahui oleh pemakai (object yang lain)
encapsulation
11/02/21 Algoritma & Pemrograman 24
Class: Where object belongs to [1]
Apa yang membedakan object-object yang
berbeda jenis?
Salah satu: interface (method) yang dapat digunakan.
Object dengan jenis yang berbeda mempunyai
method-method yang berbeda.
Misalkan: methods println, tidak dapat digunakan
oleh object string: "Hello, World",
object-object String tidak mempunyai (mengerti) method
println.
11/02/21 Algoritma & Pemrograman 25
Class: Where object belongs to [2]
Dimana definisi object-object tersebut?
object yang jenisnya sama berada pada
satu class yang sama.
Class: mendefinisikan implementasi detil dari
object
Semua methods yang dapat digunakan
Instruksi/kode dari methods tersebut
perilaku/behaviour
Berdasarkan definisi class object dapat dibuat.
11/02/21 Algoritma & Pemrograman 26
Contoh Atribut & Method
Object “Cup” Object “Hand”
Atribut: Atribut:
Capacity Hand size
Fluid level Method:
Method: - Extend
Open
Grasp
Close
11/02/21 Algoritma & Pemrograman 27
Class: Purpose [1]
Class mencakup:
Implementasi detil (blue print) dari suatu
object yang akan dibuat sejenis pabrik
object.
Class: menampung “methods” dengan sifat
“static” dan object-object yang dibuat.
11/02/21 Algoritma & Pemrograman 28
Class: Purpose [2]
Class object:
Contoh: class mobil object mobilA, mobilB dst.
Library: class Rectangle
merepresentasikan object “rectangle”
Bagaimana melakukan representasi “rectangle” di
komputer? (ingat dalam bentuk bits)?
IDEA: harus memudahkan untuk manipulasi (misalkan
ukuran, posisi (move), dll).
Atribut yang perlu untuk class: Koordinat (x,y) sudut
atas, lebar dan tinggi (x, y, width, height)
11/02/21 Algoritma & Pemrograman 29
Example
import java.awt.*;
public class TestRectangle
{
public static void main (String[] args)
{
Rectangle kotak =
new Rectangle (10, 20, 50, 20);
System.out.println (kotak);
kotak.translate (15, 25);
System.out.println (kotak);
}
}
11/02/21 Algoritma & Pemrograman 30
Object Construction
object dapat dibuat dari class
Rectangle:
new Rectangle(5, 20, 30, 5);
Buat object rectangle pada windows, dengan
posisi koordinat (5, 20), lebar 30 dan tinggi 5
(point).
(5,20) 30
11/02/21 Algoritma & Pemrograman 31
Object: Constructor
Operator: new ClassName(parameters);
Membuat object baru menurut parameter yang
diperlukan untuk class tersebut.
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
new Rectangle();
11/02/21 Algoritma & Pemrograman 32
Constructor
Mobil mobilku = new Mobil();
Pada object creation tersebut, constructor
Mobil() merupakan “Default Constructor”
dengan 0 argumen / parameter.
Constructor merupakan sebuah method yang:
Mempunyai nama yang sama dengan nama class
Tidak harus ada dalam sebuah class
Tidak mempunyai return values
Dijalankan hanya sekali ketika object dibuat
11/02/21 Algoritma & Pemrograman 33
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 34
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);
11/02/21 Algoritma & Pemrograman 35
Object Variable [2]
Operator new membuat satu object
baru tipe Rectangle dan memberikan
“reference” object tersebut ke variabel
gambarKotak.
Dengan memakai variabel gambarKotak,
sebagai referensi object tersebut dapat
dimanipulasi.
11/02/21 Algoritma & Pemrograman 36
Object Reference
Rectangle gambarKotak;
Rectangle drawKotak;
gambarKotak = new Rectangle(5,10,20,30);
drawKotak = gambarKotak;
11/02/21 Algoritma & Pemrograman 37
Object Creation
Gunakan operator: new, dengan nama/variabel
object.
Jangan lupa memberikan parameter (jika perlu).
11/02/21 Algoritma & Pemrograman 38
Problem Solving [1]
Apa itu problem/masalah?
Apakah mencari pasangan hidup adalah
problem?
Apakah semua problem bisa diselesaikan
dengan menggunakan komputer?
Secara umum, ada 2 jenis problem:
problem to find
problem to prove
11/02/21 Algoritma & Pemrograman 39
Problem Solving [2]
Termasuk problem yang manakah?
Apakah ‘stop’ dan ‘pots’ adalah palindrome?
Cetak semua kelompok kata palindrom dari sebuah
file.
Prinsip terpenting dalam memecahkan masalah:
pahamilah masalahmu!
11/02/21 Algoritma & Pemrograman 40
11/02/21 Algoritma & Pemrograman 41
Algoritma [1]
Program = Sekumpulan urutan (tahapan) instruksi untuk
mencapai task/tujuan tertentu.
Contoh: “Selera Nusantara”
Bagaimana membuat “gulai kepala ikan”?
1) Bahan, bumbu, kompor, alat dapur, dan celemek
2) Koki.
3) Resep.
Input: bahan, bumbu.
Output: “gulai kepala ikan”
Resep: tahapan, aktifitas yang mengandung proses
transformasi input ke output program
Resep dapat ditulis dengan aturan standard, kode,
konvensi, dll.
11/02/21 Algoritma & Pemrograman 42
Algoritma [2]
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 43
Algoritma [3]
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.
Computing Problem:
Bagaimana jika tidak ada pegawai, sangat banyak pegawai (tak
berhingga?).
Bagaimana jika data gaji pegawai: tidak ada, negatif, 3-juta,
“classified – hanya Boss yang tahu” hanya untuk input
tertentu.
11/02/21 Algoritma & Pemrograman 44
Algoritma [4]
Karakteristik Algoritma:
Unambiguous
Executable
Terminating
Program komputer hanya dapat memecahkan
masalah tertentu yang secara algoritma
dapat dipecahkan:
Untuk input yang terbatas (legal), walaupun jumlah
dapat bervariasi (0, sampai tak-hingga)
Dapat dijabarkan dalam urutan aktifitas dimana output
yang diinginkan merupakan fungsi dari input
11/02/21 Algoritma & Pemrograman 45
Algoritma [5]
Terdapat “class of algorithmic problem”
yang secara komputasi sangat sulit/tidak
dapat diselesaikan, karena urutan aktifitas
sangat “complex”.
Contoh: bagaimana komputer dapat
mengenali wajah anda? Bagaimana robot
dapat “melihat”?
11/02/21 Algoritma & Pemrograman 46
Ringkasan [1]
Blok kode program dalam bentuk: class
Terdapat banyak class, tetapi hanya satu class publik
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 47
Ringkasan [2]
Library
Kumpulan “class” (object) yang telah disediakan (dibuat oleh
programmer lain) dan siap untuk digunakan.
Kita dapat menggunakan library untuk mempercepat penulisan
program (sangat mudah membuat gambar grafik di Java karena
terdapat library yang membantu menggambar “rectangle”,
“circle”)
IDEA: “Reuse” code yang ada sehingga mempercepat
penyelesaian suatu program.
Contoh Library:
Untuk membuat gambar 2 dimensi, java menyediakan library 2D
dalam bentuk “package”: java.awt (awt = abstract windows
toolkit)
11/02/21 Algoritma & Pemrograman 48