Anda di halaman 1dari 48

#2

Class, Object, Method,


Variable, and Algorithm
Outline
 Simple Program
 Class
 Object
 Method
 Variable
 Algoritma

7/11/2013 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

7/11/2013 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).

7/11/2013 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
7/11/2013 Algoritma & Pemrograman 5
Java: “Structure / syntax /
sintaks / tata bahasa”

7/11/2013 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
7/11/2013 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)

7/11/2013 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! "

7/11/2013 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).

7/11/2013 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!").
7/11/2013 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

7/11/2013 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.

7/11/2013 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!");

7/11/2013 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)

7/11/2013 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

7/11/2013 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

7/11/2013 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

7/11/2013 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)
7/11/2013 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)

7/11/2013 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.
7/11/2013 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).
7/11/2013 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).
7/11/2013 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

7/11/2013 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.

7/11/2013 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.

7/11/2013 Algoritma & Pemrograman 26


Contoh Atribut & Method
 Object “Cup”  Object “Hand”
 Atribut:  Atribut:
 Capacity  Hand size
 Fluid level  Method:
 Method: -  Extend
 Open
 Grasp
 Close

7/11/2013 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.

7/11/2013 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)

7/11/2013 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);
}
}
7/11/2013 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

7/11/2013 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();

7/11/2013 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

7/11/2013 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.

7/11/2013 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);

7/11/2013 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.

7/11/2013 Algoritma & Pemrograman 36


Object Reference

Rectangle gambarKotak;
Rectangle drawKotak;

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


drawKotak = gambarKotak;

7/11/2013 Algoritma & Pemrograman 37


Object Creation
 Gunakan operator: new, dengan nama/variabel
object.
 Jangan lupa memberikan parameter (jika perlu).

7/11/2013 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
7/11/2013 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!
7/11/2013 Algoritma & Pemrograman 40
7/11/2013 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.
7/11/2013 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.

7/11/2013 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.
7/11/2013 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

7/11/2013 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”?

7/11/2013 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
7/11/2013 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)

7/11/2013 Algoritma & Pemrograman 48