Object Oriented Programming
Program yang selama ini kita buat, kita mendesain program kita berdasarkan
Baris kode yang selama ini kita buat dan desain berdasarkan fungsi (blok statemen yang memanipulasi data). Hal ini disebut pemrograman procedure-oriented atau procedural. Selain itu ada cara lain untuk mengorganisasi program dengan menggabungkan data dan operasi yang dibungkus dalam suatu obyek yaitu paradigma pemrograman berorientasi obyek.
Object oriented programming merubah paradigma Procedural
programming ke Data oriented
. Berikut adalah perbedaan Procedural dengan Data Oriented.
Procedural programming :
- Focus pada fungsi atau prosedure
- Biasanya proses dan data berada pada satu kode
- menggunakan python basic data type (list, dicts, tuples, ...)
Data Oriented programming :
- fokus pada data
- Proses dan data terdefinisi dengan baik dan terpisah
- Datatypes as complex as we need
Point utama OOP
- Object, Class, Attributes, Methods ...
- Reusability
- Data Abstraction
- Encapsulation \/ Data hiding
- Natural way of thinking
- Inheritance
Objek merupakan kumpulan variabel dan fungsi yang saling berkaitan
Class merupakan suatu rancangan dari objek itu sendiri. Jadi satu class dapat berisi banyak objek. Jadi intinya kita hanya cukup membuat satu class saja untuk satu proses. Sebagai contoh nama class misalnya produk. Maka objek-objek atau fungsi-fungsi yang terkandung didalamnya pasti berkaitan dengan class produk tersebut. Misalnya fungsi untuk tambah produk (add), edit, view, atau delete.
Re-usability artinya kemampuan untuk dapat membentuk banyak objek dengan hanya menggunakan satu class dan dapat digunakan kembali jika dibutuhkan