![Page 1: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/1.jpg)
Class & Object (1) Imam Fahrur Rozi
![Page 2: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/2.jpg)
* Mereview posisi dan konsep dasar OOP, terutama tentang Class dan Object * Memahami Diagram Class * Memahami cara membuat Class * Memahami cara membuat Atribut * Memahami cara membuat Method * Memahami cara membuat Objek / Instansiasi
Target
![Page 3: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/3.jpg)
Intro
Algoritma dan Pemrograman (Alpro)
Pemrograman Berorientasi Objek (PBO)
![Page 4: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/4.jpg)
ALPRO PBO
• Mempelajari cara membuat rangkaian logika untuk menyelesaikan masalah (Algoritma)
• Memodelkan Algoritma dalam bentuk Flowchart
• Mempelajari elemen dasar pemrograman komputer (variabel, tipe data, operator, seleksi kondisi : if, if-‐else, switch-‐case, perulangan : for, while, do-‐while, array, fungsi)
• Mempelejari tentang paradigma membuat program berorientasi objek
Intro
![Page 5: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/5.jpg)
* OOP : Paradigma pemrograman yang memandang suatu program sebagai kumpulan OBJEK-‐OBJEK yang saling berinteraksi * Ketika merancang program dengan menggunakan paradigma OOP, berarti yang paling mendasar harus dilakukan adalah identifikasi OBJEK-‐OBJEK yang ada dan saling berinteraksi dalam sistem
REVIEW Pengertian OOP (1)
![Page 6: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/6.jpg)
* Perbandingan OOP dengan Structural Programming * OOP : * Program dipandang sebagai kumpulan OBJEK
* Structural Programming : * Program dipandang sebagai kumpulan FUNGSI atau PROSES
atau PROSEDUR
REVIEW Pengertian OOP (2)
![Page 7: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/7.jpg)
* Contoh OOP vs Structural Programming
REVIEW Pengertian OOP (3)
SISTEM INFORMASI AKADEMIK
OOP Structural Programming
Kumpulan Objek seperti : Kumpulan Fungsi seperti :
* Mahasiswa * melihatKHS()
* Dosen * mengubahDataMhs()
* Matakuliah * memasukkanDataAbsensi()
* Staf Administrasi * memasukkanMataKuliah()
* Absensi, dsb * MencetakKHS(), dsb
![Page 8: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/8.jpg)
* Sesuatu yang NYATA dan bukan sekedar rancangan * Bersifat khusus * Contoh OBJEK: * Matakuliah OOP, Matakuliah Alpro, Matakuliah Basis
Data, dsb * Kucing, Kambing, Sapi, Harimau dsb * Mobil Kijang, Mobil Panther, Mobil Honda Jazz dsb
REVIEW OBJEK
![Page 9: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/9.jpg)
* RANCANGAN atau TEMPLATE atau BLUE PRINT yang digunakan untuk menggambarkan atau membuat objek * Bersifat umum
REVIEW CLASS
![Page 10: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/10.jpg)
CLASS OBJEK
Masih berupa Rancangan/ template/blue print
Sudah nyata (bukan sekedar rancangan lagi)
Template untuk membuat objek Hasil realisasi dari class, atau sesuatu bentuk nyata yang dibuat dari class
Contoh: Contoh:
* Mobil * Mobil Kijang, Mobil Panther, Honda Jazz, dsb
* Matakuliah * Matakuliah OOP, Alpro, Basisdata dsb
* Hewan * Sapi, Kucing, Kambing, dsb
* dsb *dsb
REVIEW CLASS vs OBJEK
![Page 11: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/11.jpg)
REVIEW Ilustrasi Class & Objek
CLASS OBJECT
![Page 12: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/12.jpg)
* Memiliki : * Atribut/Data/Properti/State/Karakter : Data atau properti yang
dimiliki oleh class/objek * Method/Fungsi/Prosedur/Behaviour : Perilaku atau sesuatu
yang bisa dilakukan oleh suatu class/objek
* Contoh: * Class: Mahasiswa * Atribut: nim, nama, ipk, alamat * Method: melihatIpk(), mengubahBiodata(), melihatKHS() dsb
REVIEW Karakteristik Class & Objek
![Page 13: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/13.jpg)
CLASS ATRIBUT METHOD
Komputer *Monitor *RAM *Hard Disk *PowerSupply *Processor
*menyimpanData() *menampilkanData() *reboot() *shutDown() *start()
Mobil *Velg *Warna *Produsen *Transmisi
*tambahKecepatan() *mengerem() *berhenti() *berjalan *berbelok()
REVIEW Contoh Class
![Page 14: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/14.jpg)
CLASS MOBIL OBJEK MOBIL KIJANG OBJEK MOBIL HONDA JAZZ
Atribut Velg Racing Racing
Warna Abu-‐Abu Silver
Produsen Toyota Honda
Transmisi Manual Otomatis
Method tambahKecepatan()
mengerem()
berhenti()
REVIEW Contoh Class dan Objek
![Page 15: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/15.jpg)
* Diagram untuk menggambarkan desain Class
Diagram Class
Mobil
velg warna produsen transmisi
tambahKecepatan() mengerem() berhenti()
Nama Class
Daftar Atribut
Daftar Method
![Page 16: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/16.jpg)
* Dengan menggunakan kata kunci class * Diikuti dengan nama class * Format: class NamaClass{….} * Nama klas diawalai dengan huruf besar. Jika terdiri dari lebih dari 1 kata, maka antar kata satu dengan kata yang lain digandeng, dan tiap huruf awal dari tiap kata menggunakan huruf besar * Biasanya berupa KATA BENDA
Cara Membuat Class
![Page 17: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/17.jpg)
class Mahasiswa { //atribut dan method
} class MahasiswaReguler{
//atribut dan method }
Contoh Coding Class
![Page 18: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/18.jpg)
* Cara membuat atribut sama dengan membuat variabel * Format:
* Tipe data dari suatu atribut menentukan jenis nilai apa yang akan disimpan dalam atribut yang bersangkutan * Nama atribut diawali dengan huruf kecil. Jika terdiri dari
lebih dari 1 kata, maka antar kata satu dengan yang lain digandeng. Kata pertama diawali huruf kecil, dan kata selanjutnya diawali dengan huruf besar.
Cara Membuat Atribut
TIPE_DATA NAMA_ATRIBUT 1
2
![Page 19: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/19.jpg)
String velg; String warna; int jumRoda; float ipk;
Contoh Atribut
Nilai yang akan disimpan dalam atribut velg berupa string
Tipe Data Nama Atribut
![Page 20: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/20.jpg)
* Sama dengan membuat fungsi * Format:
* Aturan penamaan method=aturan penamaan atribut
Cara Membuat Method
TIPE_DATA NAMA_METHOD (DAFTAR_ARGUMEN, …) { //isi method //isi method
}
1
2 3
4
![Page 21: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/21.jpg)
* Tipe Data Method : * Menentukan nilai yang akan dikembalikan/dikeluarkan
oleh suatu method * Kata kunci untuk mengembalikan/mengeluarkan suatu
nilai adalah return * Method dengan tipe data void, berarti tidak memiliki
nilai kembalian, berarti tidak memerlukan kata kunci return di dalamnya
* Method dengan tipe data bukan void, berarti memerlukan suatu nilai kembalian, berarti harus memerlukan return di dalamnya
* Nilai yang dikembalikan suatu method harus sesuai dengan tipe data method
Cara Membuat Method
![Page 22: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/22.jpg)
void sayHello(){ System.out.println(“Hello World!!”);
} int tambah (int a, int b){
int hasil = a+b; return hasil;
}
Contoh Method
TIDAK PERLU RETURN / TIDAK ADA NILAI KEMBALIAN
• TIPE DATA METHOD INT, BERARTI METHOD TSB HARUS MENGEMBALIKAN NILAI INT
• HARUS ADA RETURN
![Page 23: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/23.jpg)
* Argumen Method : * Argumen biasa juga disebut parameter * Argumen digunakan untuk memasukkan nilai dari luar
method untuk diolah di dalam method * Argumen method bisa lebih dari satu, juga bisa tidak ada
sama sekali (tidak memiliki argumen) * Format pembuatan argumen sama dengan format
pembuatan variabel (tipe_data nama_argumen)
Cara Membuat Method
![Page 24: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/24.jpg)
void sayHello(){ System.out.println(“Hello World!!”);
} int tambah (int a, int b){
int hasil = a+b; return hasil;
}
Contoh Method
TIDAK MEMILIKI ARGUMEN
MEMILIKI 2 ARGUMEN
![Page 25: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/25.jpg)
* Objek dibuat dari Class * Sebelum membuat objek, harus dibuat class lebih dulu, yang mana dari class tsb nantinya objek akan dibuat * Proses membuat objek dari suatu class à INSTANSIASI * Ditandai kata kunci new * Aturan penamaan objek=penamaan atribut * Format:
NamaClass namaObjek = new NamaClass();
Pembuatan Objek
![Page 26: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/26.jpg)
* Membuat objek dari klas Mahasiswa Mahasiswa m = new Mahasiswa(); * Membuat objek dari klas Sepeda Sepeda sp1 = new Sepeda();
Contoh Instansiasi
![Page 27: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/27.jpg)
Contoh: Diagram Class à Class (1)
Mahasiswa
nim: String nama: String ipk: float umur: int
tampilBiodataMhs(): void tampilIpk(): void
![Page 28: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/28.jpg)
* Kode program class Mahasiswa di atas masih berupa rancangan. Agar bisa digunakan, maka harus dibuat objek.
Contoh: Diagram Class à Class (2) INSTANSIASI
MENGAKSES ATRIBUT DARI SUATU OBJEK
MEMANGGIL/MENJALANKAN METHOD
![Page 29: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/29.jpg)
Contoh (2)
Sepeda
kecepatan: float gigi: int
start(): void kurangiKecepatan(float v): void tambahKecepatan(float v): void stop(): void
![Page 30: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/30.jpg)
Contoh (2)
![Page 31: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/31.jpg)
Latihan
Kalkulator
operan1: int operan2: int hasil: float
tambah(): void kurang(): void kali(): void bagi(): void
![Page 32: Class%&%Object%(1) - ifrozi.files.wordpress.com · *OOP%:Paradigma%pemrogramanyang memandang% suatuprogram sebagai%kumpulan%OBJEKOBJEK& yang saling%berinteraksi% * Ketika%merancangprogram](https://reader031.vdocuments.net/reader031/viewer/2022020204/5b2851557f8b9afd458b45eb/html5/thumbnails/32.jpg)
* Suatu program digunakan untuk menghitung luas dan keliling persegi panjang. Persegi panjang memiliki panjang dan lebar.
Rumus luas persegi panjang= panjang*lebar Rumus keliling persegi panjang=2*(panjang+lebar) * Buat diagram klas dan programnya
Latihan