Anda di halaman 1dari 72

Algoritma &

Pemrograman

Class & Obyek


Team Teaching

Sumber: FILKOM UB
Pokok Bahasan
Paradigma Pemrograman
1
3

2 Konsep OOP

3 Obyek, Class

4 Instance variable, Method

5 Tipe data, Constructor


Object Orientation
• Konsep pemrograman “berorientasi obyek”
diperkenalkan sebagai suatu konsep
pemrograman baru dengan tujuan untuk
membantu dalam mengembangkan aplikasi
berkualitas tinggi
• Pemrograman “berorientasi obyek” juga
merupakan konsep yang diperkelankan
dengan tujuan untuk membuat proses
pengembangan aplikasi menjadi lebih mudah
Programming Techniques

• Unstructured programming,
• Procedural programming,
• Modular programming and
• Object-oriented programming.
Unstructured Programming
• Biasanya, orang mulai
belajar pemrograman
dengan menulis program
kecil dan sederhana yang
hanya terdiri dari satu
program utama.
• ``program utama''
singkatan dari urutan
perintah atau pernyataan
yang mengubah data yang
bersifat global di seluruh
program
Procedural Programming
• Anda dapat menggabungkan
urutan pernyataan yang
kembali ke dalam satu
tempat.
• Panggilan prosedur
digunakan untuk memanggil
prosedur.
• Setelah urutan diproses,
aliran kontrol berlanjut tepat
setelah posisi di mana
panggilan dilakukan
Procedural Programming (2)
• Dengan memperkenalkan parameter serta
prosedur prosedur ( subprocedures) program
kini dapat ditulis lebih terstruktur dan bebas
error.
• Misalnya, jika suatu prosedur benar, setiap kali
digunakan akan menghasilkan hasil yang benar.
Akibatnya, jika terjadi kesalahan, Anda dapat
mempersempit pencarian Anda ke tempat-
tempat yang tidak terbukti benar.
Procedural Programming (3)
• Sekarang sebuah
program dapat dilihat
sebagai urutan
pemanggilan prosedur.
• Program utama
bertanggung jawab untuk
meneruskan data ke
panggilan individu, data
diproses oleh prosedur
dan, setelah program
selesai, data yang
dihasilkan disajikan.
Modular Programming
• Dengan prosedur pemrograman
modular dari fungsionalitas
umum dikelompokkan bersama
menjadi modul terpisah.
• Oleh karena itu, sebuah program
tidak lagi hanya terdiri dari satu
bagian tunggal.
• Sekarang dibagi menjadi
beberapa bagian yang lebih kecil
yang berinteraksi melalui
panggilan prosedur dan yang
membentuk keseluruhan
program
Algoritma &
Pemrograman
Modular Programming (2)
• Setiap modul dapat memiliki datanya sendiri.
Hal ini memungkinkan setiap modul untuk
Class & Obyek
mengelola keadaan internal yang dimodifikasi
oleh panggilan ke prosedur modul ini.
Team Teaching

Sumber: FILKOM UB

• Namun, hanya ada satu status per modul dan


setiap modul ada paling banyak satu kali di
seluruh program.
Konsep OOP
• OOP (Object Oriented Programming)
memandang semua aspek sebagai suatu
obyek
• OOP berputar pada konsep dari object
sebagai dasar element dari program
• Beberapa objek disekitar kita, seperti
mobil, singa, manusia dan seterusnya.
• Object ini dikarakterisasi oleh sifat /
attributnya dan tingkah lakunya
Object
• Contohnya: mobil dan singa
• Objek mobil mempunyai sifat tipe transmisi,
warna dan manufaktur. Mempunyai kelakuan
berbelok, mengerem dan berakselerasi.
• Dengan cara yang sama pula kita dapat
mendefinisikan perbedaan sifat dan tingkah
laku dari singa.
– Sifat
– Tingkah Laku
Object

• Objek pada dunia nyata dapat secara mudah


dimodelisasi sebagai objek software menggunakan sifat
sebagai data dan tingkah laku sebagai method.
– Software objek mobil dalam permainan balap mobil
– Software pendidikan interaktif pada kebun binatang untuk
anak anak
Object
• Sebuah objek adalah sebuah komponen
software yang stukturnya mirip dengan objek
pada dunia nyata
• Setiap objek dibuat dari satu set data (sifat)
dimana variable menjabarkan esensial
karakter dari objek, dan juga terdiri dari satu
set dari method (tingkah laku) yang
menjabarkan bagaimana tingkah laku dari
objek.
• Jadi objek adalah sebuah berkas software
dari variable dan method yg berhubungan
Class
• Class adalah struktur dasar dari OOP.
• Terdiri dari dua tipe dari anggota yang
disebut dengan field (attribut/properti) dan
method.
• Field menspesifikasi tipe data yang
didefinisikan oleh class.
• Method spesifikasi dari operasi.
• Sebuah objek adalah sebuah instance
pada class.
Class
• Pencetak kukis → kelas
– Dapat digunakan berkali-kali
untuk mencetak kukis.
• Kukis → objek
• Sebuah kelas dapat
menghasilkan banyak objek
– Dari 1 cetakan dapat dibuat
banyak kukis dengan berbagai
macam hiasan, namun kukis-
kukis tersebut tetap memiliki
bentuk yang sama.
Class
• Kelas menyatakan konsep (blueprint)
– Kelas mendefinisikan karakteristik (atribut)
dan aksi (method) yang dimiliki objek.
• Objek adalah perwujudan dari konsep
kelas (instance of class)
– Setiap objek memiliki kelas yang
mendefinisikan data dan aksi yang dimiliki
oleh objek tersebut.
Class
• Definisi class : merupakan template untuk
membuat obyek.
• Definisi class : merupakan prototipe / blue
prints yang mendefinisikan variabel –
variabel dan method – method secara
umum..
• Obyek merupakan hasil instansiasi dari suatu
kelas.
• Proses pembentukan obyek dari suatu class
disebut dengan instantiation.
• Obyek disebut juga instances.
Class
• Sebuah objek adalah sebuah instance
pada class.
• Variable dan methods dalam objek Java
secara formal diketahui sebagai instance
variable dan instance methods untuk
membedakannya dari variable class dan
method class
Perbedaan Class dan Object

• Sebuah class mobil dimana dapat digunakan untuk


mendefinisikan beberapa object mobil
• Mobil A dan mobil B adalah objek dari kelas mobil
Perbedaan Class dan Object

Class name : Circle


Class template
Data Field : Radius
Methods : - getArea()
Three objects
- getPerimeter() of Circle class

Object1 : Circle1 Object2 : Circle2 Object3 : Circle3


Data Field: Data Field: Data Field:
Radius = 15 Radius = 20 Radius = 5
Class
• Ketika diinisialisasi, tiap objek mendapat
satu set baru dari state variable of class.
• Implementasi dari method dibagi diantara
objek pada kelas yang sama.
• Class menyediakan keuntungan berupa
reusability.
Variabel Class
• Variabel class merupakan variabel milik
dari seluruh class
• Variabel ini memiliki nilai yang sama untuk
semua objek pada kelas yang sama
• Variabel ini juga disebut static member
variables
Method
• Sebuah method adalah bagian terpisah dari
kode yang akan dipanggil oleh program
utama dan beberapa method lainnya untuk
menunjukkan beberapa fungsi spesifik.
• Mengapa kita butuh untuk membuat method?
• Mengapa kita tidak meletakkan semua kode
pada sebuah method yang sangat besar?
Object, Method and Instance Variable
• Object memiliki identitas, state, dan tingkah laku yang
unique
– State : direpresentasikan oleh data fields (properties /
attributes) dengan nilai yang terkandung di dalamnya.
– Atribut/Identitas dispesifikasikan oleh instance variables.
– Tingkah laku : didefinisikan oleh sekumplan method.
• Memanggil method pada objek berarti bahwa Anda meminta
objek untuk melakukan tugas.
• Melakukan tugas dalam program membutuhkan method.
• Class menyediakan satu atau lebih method yang dirancang untuk
melakukan tugas-tugas class itu.
• Method ini dikenal sebagai instance methods karena memeriksa
atau mengubah the state of a particular instance variable.
Contoh
• Objek lingkaran memiliki bidang data, radius. Perilaku
lingkaran adalah bahwa luas dan kelilingnya dapat dihitung
menggunakan metode getArea() dan getPerimeter().
• Sebuah mobil memiliki banyak atribut, seperti warna, jumlah
pintu, jumlah bensin di tangkinya, kecepatannya saat ini, dan
jarak tempuh totalnya (yaitu, pembacaan odometernya).
Setiap mobil mempertahankan atributnya sendiri. Misalnya,
setiap mobil tahu berapa banyak bensin di tangki bensinnya
sendiri, tetapi tidak tahu berapa banyak di tangki mobil lain.
• Objek rekening bank memiliki atribut saldo yang mewakili
jumlah uang dalam rekening. Ini mungkin berisi metode untuk
menyetor uang ke akun, metode untuk menarik uang dari akun
dan metode untuk menanyakan apa saldo saat ini
Latihan
• What about :
– Mahasiswa
– Dosen
• Buatlah Sifat / Atribut / Properti / Field
• Buatlah Tingkah laku / Behavior / Method
Review Class, Object, Instance
Variable

• Class terdiri dari satu atau lebih method


• Method menyelesaikan tugas dalam suatu
program
– Mendeskripsikan mekanisme untuk
menyelesaikan suatu permasalahan
– Menyembunyikan dari user tentang kerumitan
(kompleks) permasalahan itu diselesaikan
– Method harus dipanggil untuk dapat
menjalankan tugasnya
Review Class, Object, Instance
Variable

• Class terdiri dari satu atau lebih atribut /


properti
– Ditunjukkan oleh suatu variabel (instance
variables)
– Melekat pada object sebagai instance-nya
Deklarasi Class
• Setiap deklarasi class declaration diawali dengan
keyword public
• Class harus disimpan dalam file dengan nama yang
sama dengan class tersebut dan diakhiri dengan
ekstensi .java
• Keyword public merupakan access modifier
• Deklarasi Class meliputi:
– Access modifier
– Keyword class
– Sepasang kurung kurawal buka dan tutup
Declaring more than one public class
in the same file is a compilation error
Deklarasi Method
• Keyword public menandakan method
dapat diakses oleh public (diluar class
tersebut)
• Keyword void menandakan tidak ada tipe
pengembalian nilai
• Access modifier, return type, nama
method dan parentheses merupakan
komponen header dari method
Instansiasi Object dari Class
• Untuk membuat sebuah objek atau
sebuah instance pada sebuah kelas
digunakan operator new.
• Sebagai contoh, membuat instance dari
kelas string :
– String str2 = new String(“Hello world!”);
– String str2 = "Hello";
Memanggil Instance dari Method dan
Passing Variabel

• Untuk memanggil sebuah instance


method, gunakan format code berikut :
– nameOfObject.nameOfMethod( parameters );

String str1 = new String("Hello");


char x = str1.charAt(0);
String str2 = new String("hello");
boolean result1 = str1.equals(str2);
boolean result2 = str1.equalsIgnoreCase(str2);
System.out.println(x);
System.out.println(result1);
System.out.println(result2);
Memanggil Method Static
• Method Static adalah cara yang dapat dipakai tanpa
inisialisasi suatu class (tanpa menggunakan kata kunci
new)
• Method static dibedakan dari contoh method di dalam
suatu class oleh kata kunci static.
Classname.staticMethodName(params);
• Contoh:
//mencetak data pada layar
System.out.println(“Hello world”);
//convert string menjadi integer
int i = Integer.parseInt(“10”);
String hexEquivalent = Integer.toHexString( 10 );
Class GradeBook
1 // Fig. 3.1: GradeBook.java
2 // Class declaration with one method.
3
4 public class GradeBook
5 {
6 Print line of text to output
// display a welcome message to the GradeBook user
7 public void displayMessage()
8 {
9 System.out.println( "Welcome to the Grade Book!" );
10 } // end method displayMessage
11
12 } // end class GradeBook
Class GradeBookTest
1 // Fig. 3.2: GradeBookTest.java
2 // Create a GradeBook object and call its displayMessage method.
3
4 public class GradeBookTest
5 {
6 // main method begins program execution
7 public static void main( String args[] )
8 {
Use class instance creation
9 // create a GradeBook object and assign it to myGradeBook
expression to create object of
10 GradeBook myGradeBook = new GradeBook();
class GradeBook
11
12 // call myGradeBook's displayMessage method
13 myGradeBook.displayMessage();
Call method
14 } // end main
displayMessage using
15
GradeBook object
16 } // end class GradeBookTest

Welcome to the Grade Book!


Deklarasi Method dengan Parameter

• Parameter Method
– Informasi tambahan yang dilewatkan melalui
method
– Ditambahakan pada saat memanggil method
dengan cara mengisi arguments
1 // Fig. 3.4: GradeBook.java
2 // Class declaration with a method that has a parameter.
3
4 public class GradeBook
5 {
6 // display a welcome message to the GradeBook user
7 public void displayMessage( String courseName )
8 {
9 System.out.printf( "Welcome to the grade book for\n%s!\n",
10 courseName );
11 } // end method displayMessage
12 Call printf method with
13 } // end class GradeBook courseName argument
1 // Fig. 3.5: GradeBookTest.java
2 // Create GradeBook object and pass a String to
3 // its displayMessage method.
4 import java.util.Scanner; // program uses Scanner
5
6 public class GradeBookTest
7 {
8 // main method begins program execution
9 public static void main( String args[] )
10 {
11 // create Scanner to obtain input from command window
12 Scanner input = new Scanner( System.in );
13
14 Call nextLine method to
// create a GradeBook object and assign it to myGradeBook
15 GradeBook myGradeBook = new GradeBook();
16
read a line of input
17 // prompt for and input course name
18 System.out.println( "Please enter the course name:" );
19 Call displayMessage with
String nameOfCourse = input.nextLine(); // read a line of text
20 System.out.println(); // outputs a blank line
21 an argument
22 // call myGradeBook's displayMessage method
23 // and pass nameOfCourse as an argument
24 myGradeBook.displayMessage( nameOfCourse );
25 } // end main
26
27 } // end class GradeBookTest

Please enter the course name:


CS101 Introduction to Java Programming

Welcome to the grade book for


CS101 Introduction to Java Programming!
Parameter yang lebih dari satu
• Parameter ditunjukkan oleh parameter list
dalam method
– Merupakan bagian dari header nya method
– Menggunakan comma-separated

A compilation error occurs if the number of


arguments in a method call does not match the
number of parameters in the method declaration.

A compilation error occurs if the types of the


arguments in a method call are not consistent with
the types of the corresponding parameters in the
method declaration.
Instance Variables
• Variables yang dideklarasikan pada body
method :
– Disebut sebagai local variables
– Hanya dapat digunakan didalam method
tersebut
• Variables dideklarasikan pada class :
– Disebut fields atau instance variables
– Setiap object dari class memiliki variabel
instance yang berbeda
set Methods and get Methods
• Class menyediakan public methods untuk
memperbolehkan clients dari class untuk memberikan
nilai (set) atau mengambil nilai (get) dari private
instance variables.
• Nama method tidak harus dimulai dengan set atau get,
tetapi sangat direkomendasikan untuk kepentingan
pemrograman di Java integrated development
environments (IDEs).
• Method yang meng-assign nilai ke instance variable
disebut set method, dan method yang mengambil nilai
dari instance variable disebut get method.
set and get methods
• private instance variables
– Tidak dapat diakses secara langsung oleh
clients dari object
– Gunakan set methods untuk mengubah nilai
variabel
– Gunakan get methods untuk mengambil value
variabel
Catatan : Set and Get Methods
• Set methods
– Disebut juga sebagai mutator methods
– Memberikan nilai pada instance variables
– Seharusnya divalidasi terhadap nilai baru
• Dapat mengembalikan suatu nilai yang
mengindikasikan data yang salah
• Get methods
– Disebut juga sebagai accessor methods atau query
methods
– Memperoleh / mendapatkan nilai dari instance variables
– Dapat dikontrol format datanya
Catatan : Set and Get Methods
• Predicate methods
– Penggunaan lain dari accessor methods
adalah untuk menguji apakah suatu kondisi
pada object : true atau false dan
mengembalikan hasilnya
– Contoh : method isEmpty → seperti linked
list, stack or queue
Access Modifiers public dan
private
• keyword Private
– Sering digunakan untuk instance variables
– private variables dan methods hanya bisa diakses
oleh methods di dalam class dimana method tersebut
dideklarasikan
– Deklarasi instance variables private disebut
sebagai data hiding
• Return type (Tipe Pengembalian)
– Mengindikasikan item yang dikembalikan oleh
method
– Dideklarasikan pada header dari method

Precede every field and method declaration with an access modifier. As a rule of
thumb, instance variables should be declared private and methods should be
declared public. (We will see that it is appropriate to declare certain methods
private, if they will be accessed only by other methods of the class.)
1 // Fig. 3.7: GradeBook.java
2 // GradeBook class that contains a courseName instance variable
3 // and methods to set and get its value.
4 Instance variable
5 public class GradeBook
6 {
courseName
7 private String courseName; // course name for this GradeBook
8
9 // method to set the course name
10 public void setCourseName( String name )
11 { set method for courseName
12 courseName = name; // store the course name
13 } // end method setCourseName
14
15 // method to retrieve the course name
16 public String getCourseName()
17 { get method for courseName
18 return courseName;
19 } // end method getCourseName
20
21 // display a welcome message to the GradeBook user
22 public void displayMessage()
23 {
24 // this statement calls getCourseName to get the
25 // name of the course this GradeBook represents
26 System.out.printf( "Welcome to the grade book for\n%s!\n",
27 getCourseName() ); Call get method
28 } // end method displayMessage
29
30 } // end class GradeBook
UML Class Diagram
1 // Fig. 3.8: GradeBookTest.java
2 // Create and manipulate a GradeBook object.
3 import java.util.Scanner; // program uses Scanner
4
5 public class GradeBookTest
6 {
7 // main method begins program execution
8 public static void main( String args[] )
9 {
10 // create Scanner to obtain input from command window
11 Scanner input = new Scanner( System.in );
12
13 // create a GradeBook object and assign it to myGradeBook
14 GradeBook myGradeBook = new GradeBook();
15
16 // display initial value of courseName
17 System.out.printf( "Initial course name is: %s\n\n",
18 myGradeBook.getCourseName() );
19 Call get method for
courseName
20 // prompt for and read course name
21 System.out.println( "Please enter the course name:" );
22 String theName = input.nextLine(); // read a line of text
23 myGradeBook.setCourseName( theName ); // set the course name
24 System.out.println(); // outputs a blank line Call set method for
25 courseName
26 // display welcome message after specifying course name
27 myGradeBook.displayMessage();
28 } // end main Call displayMessage
29
30 } // end class GradeBookTest

Initial course name is: null

Please enter the course name:


CS101 Introduction to Java Programming

Welcome to the grade book for


CS101 Introduction to Java Programming!
Tugas 1
• Buat class dan penggunaan class dari
permasalahan Lingkaran dengan ketentuan :
– Nama Class : Circle.java
– Pengguna Class : CircleTest.java
– Atribut Class Circle :
• radius
– Method Class Circle :
• setRadius
• getArea
• getPerimeter
Tugas 2
• Studi kasus: ada 3 orang mahasiswa sedang kuliah
mengambil matakuliah Pemrograman. Komponen
nilainya ada tugas, quiz, UTS dan UAS.
• Permasalahan: Buat prototype aplikasi untuk
menampilkan nilai akhir masing-masing mahasiswa
tersebut. Input aplikasi adalah nama, NIM, nilai tugas,
quiz, UTS dan UAS. Outputnya adalah nama, NIM,
nilai (tugas, quiz, UTS dan UAS), nilai akhir, dan nilai
rata-rata seluruh mahasiswa.
• Prosentase nilai akhir = 15% tugas + 15% quiz + 30%
UTS + 40% UAS.
Tipe data Primitive Vs. Reference
• Tipe data dalam Java
– Primitive
• boolean, byte, char, short, int, long,
float, double
– Reference (terkadang disebut juga sebagai
tipe data non-primitive)
• Objects
• Nilai Default null
• Digunkaan untuk memanggil method di dalam
object
Deklarasi Tipe Data
• Sebuah tipe data dari suatu variabel (seperti : int,
double atau GradeBook) menandakan variabel tersebut
ke dalam kelompok tipe data primitive atau reference.
• Jika tipe variabel BUKAN salah satu dari kedelapan tipe
data primitive, maka variabel tersebut bertipe reference.
• Contoh:
– GradeBook myGB artinya bahwa myGB mereferensi
(reference) ke object GradeBook
– Account account1 mengindikasikan bahwa account1
mereferensi ke object Account
Assign Data
• Ketika kita assign suatu variable ke variabel yang lain, variabel
tersebut akan diberika nilai yang sama.
– Untuk primitive type, nilai asli (real value) dari suatu variabel satu di
assign ke variabel yang lain.
– Untuk reference type, referensi (reference) dari suatu variabel satu di
assign ke variabel yang lain.
Diagram UML dari kelas
• Ilustrasi dari kelas template dan objek dapat
distandarisasikan menggunakan notasi UML (Unified
Modeling Language). Notasi ini disebut sebagai UML class
diagram atau class diagram.
• Pada UML, setiap kelas di modelkan dalam sebah class
diagram dalam bentuk persegi panjang yang memiliki 3
kompartemen sebagai berikut:
1. Bagian atas: Nama kelas, di bold, dan tulisan berada di tengah.
2. Bagian tengah: Attribut dari kelas, yang mencerminkan instance
variabel tersebut dalam Java. Kelas Circle hanya mempunyai
satu variabel, radius.
3. Bagian bawah: operasi kelas, yang berkaitan dengan method.
Diagram UML dari kelas
• Class Circle mempunyai dua method, getArea() dan
getPerimeter(), bagian bawah dari class diagram.
• Method getArea() dan getPerimeter() tidak memerlukan
tambahan informasi untuk melakukan task, jadi tanda
kurung dalam method ini kosong
• Tanda (+) di depan nama operasi mengindikasikan
method ini adalah public dalam UML (i.e., a public
method in Java).
Circle
Radius : double
+getArea(): double
+getPerimeter():double
Constructor
• Constructor merupakan method yang spesial.
Merupakan prosedur awal untuk membangun objek.
• Spesial karena berbeda dari method pada umumnya,
yaitu:
– Constructors harus memiliki nama yang sama dengan
nama class.
– Constructors TIDAK memiliki return type – bahkan void
sekalipun.
– Constructors dipanggil atau dijalankan menggunakan
operator new ketika object dibuat instance-nya.
– Constructors dapat digunakan untuk menginisialisasi suatu
object dari class ketika object dibuat
Constructor
• class yang tidak dideklarasikan constructors
di dalamnya, sebuah no-arg constructor
secara implisit dideklarasikan dalam class
tersebut dengan empty body
• Constructor tersebut, disebut dengan default
constructor, yang disediakan secara otomatis
oleh Java hanya jika ketika tidak ada
constructor yang dideklarasikan secara
eksplisit dalam class
Constructor dalam Diagram Class
UML
• Constructor dideklarasikan didalam
kompartmen ke-3 diagram class UML
bersamaan dengan deklarasi method.
• Gunakan tanda “<<constructor>>”
sebelum deklarasi nama constructor.
• Sesuai konvensi, constructor
dideklarasikan pertama sebelum method.
1 public class Circle
2 {
3 private double radius; // data field
4
5 public Circle(){ //default contructor or no argument constructor
6 }
7
8 public Circle(double r) //contructor with argument
9 { //to initialize radius
10 radius=r;
11 }
12
13 public double getArea() // manipulate radius
14 {
15 return radius*radius*Math.PI;
16 }
17
18 public double getPerimeter() // manipulate radius
19 {
20 return 2*radius* Math.PI;
21 }
22 } // end class Circle
Constructor
• Contoh: Class Circle
– new Circle() membuat sebuah object Circle dari
class Circle menggunakan constructor yang
pertama yang didefinisikan dalam class Circle,
– new Circle(5) membuat sebuah object
menggunakan constructor yang kedua yang
didefinisikan dalam class Circle.

Caution :
▪ It is a common mistake to put the void keyword in front of a
constructor. For example,
public void Circle() {}
▪ In this case, Circle() is a method, not a constructor.
1 // Fig. 3.10: GradeBook.java
2 // GradeBook class with a constructor to initialize the course name.
3
4 public class GradeBook
5 {
6 private String courseName; // course name for this GradeBook
7
8 // constructor initializes courseName with String supplied as argument
9 public GradeBook( String name )
10 { Constructor to initialize
11 courseName = name; // initializes courseName courseName variable
12 } // end constructor
13
14 // method to set the course name
15 public void setCourseName( String name )
16 {
17 courseName = name; // store the course name
18 } // end method setCourseName
19
20 // method to retrieve the course name
21 public String getCourseName()
22 {
23 return courseName;
24 } // end method getCourseName
UML Class Diagram
1 // Fig. 3.11: GradeBookTest.java
2 // GradeBook constructor used to specify the course name at the
3 // time each GradeBook object is created.
4
5 public class GradeBookTest
6 {
7 // main method begins program execution
8 public static void main( String args[] ) Call constructor to create first
9 { grade book object
10 // create GradeBook object
11 GradeBook gradeBook1 = new GradeBook(
12 "CS101 Introduction to Java Programming" );
13 GradeBook gradeBook2 = new GradeBook(
14 "CS102 Data Structures in Java" );
15
Create second grade book
16 // display initial value of courseName for each GradeBook object
17 System.out.printf( "gradeBook1 course name is: %s\n",
18 gradeBook1.getCourseName() );
19 System.out.printf( "gradeBook2 course name is: %s\n",
20 gradeBook2.getCourseName() );
21 } // end main
22
23 } // end class GradeBookTest

gradeBook1 course name is: CS101 Introduction to Java Programming


gradeBook2 course name is: CS102 Data Structures in Java
Constructor
• Meskipun tanpa penggunaan default inisialisasi dari
class diperbolehkan, namun keberadaan constructor
menjadikan class diinisialisasi dengan beberapa nilai
awal yang berguna setiap kali object dibuat.
Visibility Modifiers
• Visibility modifier bertugas mengatur bagaimana data
fields dan methods dalam class dapat diakses dari luar
class.
• Java menyediakan modifiers yang mengatur hak akses
tersebut, yaitu:
– public membuat classes, methods, dan data
fields dapat diakses dari semua class.
– private membuat methods dan data fields
hanya dapat diakses dari class itu sendiri.
Visibility Modifiers
• Jika public atau private tidak digunakan, secara default
classes, methods, dan data fields dapat diakses oleh
semua class dalam suatu package yang sama →
disebut juga package-private atau package-access
Package1 Package 2
•public class C1{ • Public class C2{ •Public class C3{
public int x; Void aMethod() { Void aMethod() {
int y; C1 o = new C1() C1 o = new C1()
private int z; can access o.x; can access o.x;
can access o.y; can’t access o.y;
public void m1(){ can’t access o.z; can’t access o.z;
} can invoke o.m1(); can invoke o.m1();
void m2(){ can invoke o.m2(); can’t invoke o.m2();
} can’t invoke o.m3(); can’t invoke o.m3();
private void m3(){ } }
} } }
}
Visibility Modifiers

Specifier Class Package Subclass World

private  - - -
No specifier
(package-   - -
private)
protected    -
public    
Selesai

Anda mungkin juga menyukai