Pemrograman Lanjut Tipe Data dan Constructor PTIIK

dokumen-dokumen yang mirip
Pemrograman Lanjut Class, Instance Variable dan Method PTIIK

Pemrograman Lanjut. Class : Deeper Look 2

Pemrograman Lanjut. Constructor. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

Konsep Dasar Pemrograman Berorientasi Objek

Pemrograman Lanjut Review Class dan Object PTIIK

Bab 8. Dasar-Dasar OOP

Membuat dan Menggunakan Class

Java Application. Menampilkan Tulisan

Java Application. Aplikasi: Menampilkan Tulisan

Lebih Jauh Tentang CLASS & OBJEK pada Object Oriented Programming

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

IKG2I4 / Software Project I

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

Other OOP Basic. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

Pemrograman Lanjut Class and Object PTIIK

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

Dasar Pemrograman Java

Inheritance dan Kata Kunci static

UML (Unified Modelling Language)

Other OOP Basic. Viska Mutiawani, M.Sc

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

MODUL 1. Class, Object, Constructor dan Method

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Bahasa Pemrograman :: Polimorfism and Abstraction

Praktikum 3 Konsep Class, Attribute dan Method

Pertemuan 4 Halaman 1/1. Class Inheritance

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

Jobsheet 09. Overloading and Overriding Method

Pemrograman Lanjut. Class dan Object. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

ENKAPSULASI Data Hiding

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

PEMROGRAMAN BERORIENTASI OBJEK

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

UNIVERSITAS GUNADARMA

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Pemrograman Lanjut. Class, dan Instance Variable. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Class & Object 2. Imam Fahrur Rozi

Understanding Class Definition. Viska Mutiawani, M.Sc

Modul II Object Oriented Programming

JAVA BASIC PROGRAMMING Joobshet

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Algoritma Pemrograman [BS204]

Pemrograman Berorientasi. Class dan Obyek 2

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Pemrograman Lanjut. Interface

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Modul 2. [access specifier] [tipe data] [nama variabel];

Praktikum 2 Dasar Pemrograman Java dan Tipe Data

Pemrograman Lanjut. Class and Object

IT210 Pemrograman Visual. Ramos Somya

KONSEP OOP: POLYMORPHISM

Praktikum 6 Class Design (Encapsulation)

Pengenalan pemrograman berorientasi obyek

String. String merupakan tipe data untuk menyimpan nilai berupa teks.

C#, Programming, Object-oriented. Pengenalan C# Erick Pranata. Edisi I

Dasar-Dasar Pemrograman Java

OPERATOR-OPERATOR DALAM JAVA

Dasar-Dasar OOP di Java

Pemrograman Lanjut Class String PTIIK

BEKERJA DENGAN JAVA CLASS LIBRARY

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

SUMBER BELAJAR PENUNJANG PLPG

KONSEP OOP: POLYMORPHISM

Politeknik Elektronika Negeri Surabaya

Bahasa Pemrograman :: Java Class Library

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

[Lanjutan] Nurochman

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

INTERAKSI ANTAR OBJECT

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

KUM 3 IMPLEMENTASI LIST

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Bahasa Pemrograman 2.

MODUL 4. Classes and Objects (part I)

Dasar-Dasar OOP di Java

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

TIPE DATA, VARIABEL DATA DAN OPERATOR

Understanding Class Definition

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references]

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Pemograman Berorientasi Objek

Polymorphism (Polimorfisme)

Percabangan & Perulangan

Transkripsi:

Pemrograman Lanjut Tipe Data dan Constructor PTIIK - 2013

Objectives Mengetahui perbedaan antara tipe data primitive dan reference. Mampu mendeklarasikan dan menggunakan constructor untuk memastikan bahwa suatu data dalam objek telah diinisialisasi ketika object dibangun. Memahami tentang visibility modifiers. Membuat immutable objects dari immutable classes.

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

1 public class Circle 2 { 3 private double radius; // data field 4 5 public Circle(){ constructor //default contructor or no argument 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 { 11 coursename = name; // initializes coursename 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 Constructor to initialize coursename variable

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[] ) 9 { 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 16 // display initial value of coursename for each GradeBook 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 Call constructor to create first grade book object Create second grade book object 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 int x; int y; private int z; } public void m1(){ } void m2(){ } private void m3(){ } Public class C2{ Void amethod() { C1 o = new C1() can access o.x; can access o.y; can t access o.z; can invoke o.m1(); can invoke o.m2(); can t invoke o.m3(); } } Public class C3{ Void amethod() { C1 o = new C1() can access o.x; can t access o.y; can t access o.z; can invoke o.m1(); can t invoke o.m2(); can t invoke o.m3(); } }

Immutable Objects dan Classes Jika isi/contents dari suatu object tidak dapat diubah ketika suatu object dibuat instance-nya, object itu disebut sebagai immutable object dan class-nya disebut immutable class. Jika kita menghapus set method dalam class, class akan menjadi immutable karena instance variable merupakan modifier private dan tidak dapat diubah tanpa adanya set method.

Immutable Objects dan Classes Contoh, class Student memiliki data fields yang semua modifier-nya private dan tanpa mutators, tetapi class tersebut mutable. 1 public class Student { 2 private int id; 3 private BirthDate birthdate; 4 5 Public Student(int ssn, int year, int month, int day) { 6 id = ssn; 7 birthdate = new BirthDate(year, month, day); 8 } 9 10 Public int getid() { 11 return id; 12 } 13 14 Public BirthDate getbirthdate() { 15 return birthdate; 16 } 17 }

1 public class BirthDate { 2 private int year; 3 private int month; 4 private int day; 5 6 public BirthDate(int newyear, int newmonth, int newday) { 7 year = newyear; 8 month = newmonth; 9 Day = newday; 10 } 11 12 Public void setyear(int newyear) { 13 Year = newyear; 14 } 15 }

data field birthdate dikembalikan nilainya oleh method getbirthdate(). Variabel tsb mereferensi ke object BirthDate. Melalui referensi itu, year dapat diubah, yang secara efektif mengubah isi dari object Student. 1 public class Test { 2 public static void main(string[] args) { 3 Student student = new Student(111223333, 1970, 5, 3); 4 BirthDate date = student.getbirthdate(); 5 date.setyear(2010); //Now the student birth year is changed! 6 } 7 }

Tugas Tambahkan Constructor pada class Mahasiswa dan Nasabah pada latihan pertemuan sebelumnya.

afif.supianto@ub.ac.id 081 331 834 734 / 088 160 127 40