Bahasa Pemograman II Object Oriented Programming
Pemograman Berorientasi Objek • Salah satu paradigma pemograman • Usaha untuk merepresentasikan perangkat lunak lebih dekat dengan cara pandang manusia terhadap kenyataan.
Berorientasi Objek • Attribut • Pedal, rantai, roda, sadel, rem, merek, jumlah gear, model sepeda, warna, kecepatan
• Behavior • • • • •
Bergerak maju Belok kiri Belok kanan Berhenti Ganti Gear
Latihan 4.1 • Tentukan atribut dan behavior dari objek mobil
Konsep PBO • Objects & Classes • Inheritance • Polymorphism • State • Encapsulation • Information Hiding • Behavior, Responsibilities • Messages
Object - Class • Classification : mengatur informasi dan tingkah laku ke dalam entitas yang berarti • Semua mobil memiliki behavior dan attribute yang sama • Digolongkan ke dalam class Mobil
• Objek adalah instance dari Class. • Class merupakan cetak biru • Class merupakan definisi dari sebuah tipe data, objek adalah instance dari tipe tersebut • Class : Mobil • Object : Mobilnya UNAND, Mobilnya Pak Dekan
Encapsulation • Mekanisme menyembunyikan suatu proses dalam system untuk menghindari interferensi dan menyederhanakan penggunaan system itu sendiri. • “Membungkus” variable-variable dalam objek agar terlindungi. • Menyembunyikan data dan implementasi sebuah objek
• Saat dienkapsulasi, data dan code tersembunyi dari external view • external observer hanya melihat sebaggai exterior interface.
• Contoh real : • Mengganti transmisi (gigi) mobil • Menghidupkan/mematikan AC
Message • Suatu object berguna bila ada objek lain • Objek berinteraksi dengan objek lainnya dengan cara mengirimkan message. Informasi dalam message dikenal dengan nama parameter.
• Komponen message: • Object • Message name • Parameters
Message (2) • Mengganti transmisi mobile • Objek : • Pengemudi : pengirim message • Mobil : objek yang menerima message
• Message : GantiTransmisi • Parameter : Transmisi Naik
Membuat dan Menggunakan Class
Access Level Class • public • The type or member can be accessed by any other code in the same assembly or another assembly that references it.
• private • The type or member can be accessed only by code in the same class or struct.
• protected • The type or member can be accessed only by code in the same class or struct, or in a class that is derived from that class.
• internal • The type or member can be accessed by any code in the same assembly, but not from another assembly.
Saran Penaman • Identifier yang bersifat public menggunakan notasi PascalCase. • Huruf capital diawal
• Identifier yang bersifat private/protected menggunakan notasi camelCase • Huruf kecil diawal kata.
Constructor • Method special yang dijalankan pada saat instance dari sebuah kelas (objek) diciptakan. • Method yang memiliki nama yang sama dengan nama class • Memiliki access level “public” agar bias menciptakan objek.
Latihan 4.1 • Buatlah sebuah class bernama Point2D yang digunakan untuk menampung data sebuah poin 2 dimensi (x, y). Method yang ada dalam class tersebut antara lain method • DistanceFromZero() • DistanceFrom(x, y).
Overloading Constructor • Constructor bisa memiliki banyak bentuk, tergantung parameter yang diberikan.
Static Method/Data • Method/Data yang dapat diakses tanpa harus instansiasi class terlebih dahulu • Menggunakan keyword “static” • Contoh : • Console.WriteLine() • Math.Sqrt()
Static Class • Class yang hanya memiliki member bersifat “static” • Class yang bertindak sebagai penampung utility method dan fields. • Tidak bisa menciptakan objek dari “static class”
Latihan 4.2 • Modifikasi program latihan 4.1 sehingga Class Point2D memiliki 2 buah constructor untuk inisialisasi objek dari class Point2D • Jadikan method untuk menghitung jarak menjadi sebuah private static method sehingga bisa dipanggil oleh method DistanceFromZero() dan DistanceFrom(x, y)
Value Type dan Reference Type • Class/Object merupakan elemen C# yang bertipe Reference
Value Type dan Reference Type (2)
Ref Keyword • Ref : • Passing reference rather than values
Out Keyword • Out : • Hampir sama dengan ref • Parameter method yang berfungsi sebagai output
Referensi