120 likes | 424 Views
Pendahuluan OOP. Izzatul Ummah, S.T., M.T. Modified from: many sources (see references). Overview. Apa itu Object Oriented Programming? Perbedaan dengan procedural programming Kelebihan OOP Pengenalan Java Java: bahasa pemrograman berbasis OOP Ingat kembali C/C++ (bandingkan).
E N D
Pendahuluan OOP Izzatul Ummah, S.T., M.T. Modified from: • many sources (see references)
Overview • Apa itu Object Oriented Programming? • Perbedaan dengan procedural programming • Kelebihan OOP • Pengenalan Java • Java: bahasa pemrograman berbasis OOP • Ingat kembali C/C++ (bandingkan)
Konseptual Objek Model • Objek Model: adalah proses bagaimana kita memodelkan sistem yang ada berupa objek-objek • Konseptual Objek Model terdiri dari 4 konsep dasar: • Abstraksi: • Proses mengamati objek2 yang ada di sistem dunia nyata, mengidentifikasi persamaan dan perbedaan ciri2nya, lalu membuat classes (+atribut+method) sesuai hasil pengamatan itu. • Abstraksi: penyederhanaan objek2 yg mirip sehingga kita dapat membuat sebuah class (atribut2/method) dan menyatakan bahwa objek2 yg mirip itu kita create/lahirkan dari class yang sama. • Encapsulasi: access specifier (public, private), get dan set • Class mempersatukan atribut dan method di dalamnya agar tidak tercerai-berai. Aturan: semua ATR+METH harus di dalam class. • Modularitas: masing2 objek ditreatment sendiri • Hierarki: relasi antar kelas, inheritance (pewarisan)
Ide Dasar OOP • Membuat program dengan pendekatan semirip mungkin dengan dunia nyata: • Langkah pertama: Tentukan benda apa saja yang harus ada, siapa aktor/pelaku (role)? (Subjek) -> ini jadi Class (Object) • Apa sifat/elemen masing2 benda/aktor? -> ini jadi Property • Benda/aktor itu bisa melakukan apa saja? (Predikat) -> ini jadi Methods (kalau di C/C++ ini adalah prosedur/fungsi) • Jadi, setiap Class bisa memiliki Property dan Method • Pada OOP/Java, setiap variabel dan fungsi/prosedur harus jelas yaitu dimiliki oleh Class yg mana. Cara pemanggilan (invoke) fungsi/prosedur juga harus ditulis Class yg memilikinya. Misalnya se.hitungLuas() akan menghasilkan luas untuk object se dari class Segiempat.
Ide Dasar OOP (Contoh) • Contoh: dunia makhluk hidup (model sistem biologi)
Ide Dasar OOP (Contoh) • Contoh 1: • Class: Manusia • Property/Attribute: nama, umur, gender, kebangsaan, warnakulit, warna rambut, warna iris mata • Method: lahir, berjalan, berlari, berdiri, tidur, makan, berpikir, berbicara, tertawa, menangis, tersenyum, marah, berbohong, mati. • Contoh 2: • Class: Hewan • Property: umur • Method: lahir, makan, tidur, berlari, mati.
Ide Dasar OOP (Contoh) • Contoh 3: • Class: Makhluk Hidup • Property/Attribute: umur, jumlah sel • Method: lahir, mati. • Class Manusia dan Hewan pasti termasuk di dalam kelompok Class Makhluk Hidup • Dibahas lebih jauh di Inheritance • Ingat konsep Phyllum/Divisio (pembagian divisio,class,ordo, family,genus,species) pada Biologi, maka kelas juga bisa dibuat bertingkat-tingkat dalam superclass-subclass.
Ide Dasar OOP (Object Oriented) • Peralihan dari C/C++ (procedural programming) • Contoh: tipe bentukan titik, tipe bentukan mahasiswa • Class dan Object: • Class adalah suatu kelompok • Object adalah instansiasi kelas (harus “dilahirkan” dulu dengan menggunakan Constructor)
Ingat lagi: Struct di C++ • Ingat kembali typedef struct di C++ (contoh: kasus titik) • Class: Titik • Property/Atribut: x, y, z (dgn tipedata float) • Ini perbandingannya antara di C++ dengan di OOP/Java struct titik { float x; float y; float z; };
Praktikum Pertama Kita: Helloworld • Buat file Helloworld.java: • Nama kelas harus sama dengan nama file (case sensitive) • Isi filenya: • Bandingkan file helloworld.cpp dan Helloworld.java • Sama-sama punya “main” • Tapi di Java, main itu harus ada di dalam kelas
Tentang Java • Java adalah: • Bahasa pemrograman • Nama software yang menjalankan program Java • Diambil dari nama kopi Jawa yg terkenal di kalangan programmer (C/C++, yg melahirkan Java) • Oak (diganti karena udah ada yang memakai nama ini) • Kelebihan OOP/Java: • Pemodelan lebih mudah dan akurat (mirip dunia nyata) • Membuat program/software lebih cepat • Write once, run everywhere (bisa di Windows, Linux, Mac) • J2ME: mobile di handphone, consumer device, dsb
Kesimpulan: Konsep Penting di OOP • Everything in OOP/Java is class and object (tidak boleh ada 1 variabel atau fungsi/prosedur apa pun yg didefinisikan secara ‘mengambang’/tidak ada di dalam kelas tertentu)