Di antara pengembang, pemrograman berorientasi objek telah menarik banyak pengikut. Bahasa komputer populer Python juga menganut paradigma berorientasi objek.
Ini berkaitan dengan mendefinisikan objek dan kelas dalam Python, yang membentuk dasar untuk prinsip-prinsip OOP. Dalam tutorial tentang “pemrograman berorientasi objek dengan Python” ini, Anda akan belajar cara mendeklarasikan kelas Python, membuat objek darinya, dan menggunakan empat teknik OOP.
Jadi, hal pertama yang pertama.
Apa Itu Pemrograman Berorientasi Objek?
Fokus utama dari pemrograman berorientasi objek (OOP) adalah penciptaan "objek". Kumpulan variabel dan fungsi yang saling berhubungan membentuk sebuah objek.
Variabel-variabel ini sering disebut sebagai atribut objek, dan perilakunya sering disebut sebagai fungsinya. Item ini menyediakan aplikasi dengan struktur yang lebih efektif dan dapat dimengerti. Mobil adalah contoh barang.
Jika mobil adalah barang, atributnya akan mencakup hal-hal seperti warna, model, harga, merek, dll. Selain itu, itu akan mempercepat, memperlambat, dan mengubah persneling.
Ilustrasi lain: Jika kita menganggap seekor anjing sebagai barang, maka beberapa karakteristiknya mungkin warna, jenis, nama, berat, dll. Dan dia akan bergerak, menggonggong, bermain, dll.
Karena menggabungkan konsep dunia nyata seperti objek, persembunyian, pewarisan, dll. ke dalam pemrograman, pemrograman berorientasi objek sangat dikenal. Karena sangat mirip dengan keadaan dunia nyata, visualisasi dibuat lebih sederhana.
Konsep Pemrograman Berorientasi Objek
Kelas & Objek dengan Python
Seperti semua bahasa berorientasi objek lainnya, Python memungkinkan Anda mendesain kelas untuk menghasilkan objek. Tipe data paling populer di Python, termasuk string, daftar, kamus, dan objek lainnya, adalah kelas bawaan.
Kelas adalah sekelompok metode terkait dan variabel instan yang mendefinisikan jenis objek tertentu. Sebuah kelas dapat dilihat sebagai model atau template untuk sebuah objek. Variabel yang membentuk sebuah kelas dikenal sebagai atribut.
Objek adalah anggota kelas yang memiliki sekumpulan atribut yang ditentukan. Karena itu, sejumlah objek dapat dibuat menggunakan kelas yang sama.
Kelas Python didefinisikan menggunakan kelas kata, yang kemudian diikuti dengan nama kelas dan titik dua. Sebuah ilustrasi dari kelas burung beo mungkin:
Di sini, kami mendeklarasikan Parrot kelas kosong menggunakan kata kunci class. Kami membuat instance dari kelas. Instance adalah objek tertentu yang dibuat dari kelas tertentu. 'pass' sering digunakan sebagai pengganti untuk kode yang implementasinya mungkin kita tinggalkan untuk saat ini. Kita dapat mengeksekusi kode Python tanpa memunculkan kesalahan dengan menggunakan kata kunci “pass”.
Instansiasi kelas menghasilkan objek (instance). Hanya deskripsi objek yang didefinisikan saat kelas dibuat. Akibatnya, tidak ada penyimpanan atau RAM yang dialokasikan.
Contoh objek kelas burung beo adalah:
Obj adalah objek kelas Parrot dalam contoh ini.
Katakanlah kita tahu secara spesifik tentang burung beo. Kami sekarang akan mendemonstrasikan cara membuat kelas burung beo dan objeknya.
Metode Khusus ( __init__ )
Metode yang disebut init mendefinisikan atribut yang harus dimiliki setiap objek Parrot (). Saat objek Parrot baru terbentuk, fungsi __init__ membuat status awal objek dengan menetapkan nilai yang kami berikan di dalam properti objek.
Jadi, setiap instance baru dari kelas diinisialisasi dengan menggunakan __init__(). Meskipun __init__() dapat menerima sejumlah parameter, self selalu menjadi parameter pertama.
Referensi ke instance kelas aktif disertakan dalam self-argument. Parameter self, yang menautkan ke alamat objek kelas saat ini dan memberi kita akses ke data variabel (objek), menandakan hal itu.
Contoh 1
Kami membuat kelas yang disebut Parrot dalam kode di atas. Selanjutnya, properti didefinisikan. Ciri-ciri suatu benda adalah sifat-sifatnya. Fungsi __init__ kelas adalah tempat karakteristik ini ditentukan.
Ketika sebuah objek terbentuk, metode penginisialisasi adalah metode yang dipanggil awalnya. Kemudian, instance dari kelas Parrot dibuat. Blaze dan Wonda dalam hal ini adalah referensi (nilai) ke objek baru kita. __class .species memungkinkan kita mengakses atribut class.
Setiap instance dari kelas memiliki karakteristik yang sama. Karakteristik instance juga dapat diakses menggunakan blaze.name dan blaze.age. Namun, semua instance kelas memiliki atribut instance unik.
Contoh 2
metode
Fungsi yang didefinisikan di dalam tubuh kelas disebut metode. Mereka digunakan untuk menentukan bagaimana suatu item akan berperilaku.
Dua metode, sing() dan dance, didefinisikan dalam aplikasi yang disebutkan di atas (). Karena mereka dipanggil pada objek instan, seperti api, ini disebut sebagai metode instan.
Dasar-dasar konsep OOPS
Empat ide inti dari pemrograman berorientasi objek adalah:
- Warisan
- Enkapsulasi
- Polimorfisme
- Abstraksi
Warisan
Orang sering memberi tahu bayi yang baru lahir bahwa mereka memiliki karakteristik wajah yang mirip dengan orang tua mereka atau bahwa mereka mewarisi sifat-sifat tertentu dari orang tua mereka.
Mungkin Anda juga mengamati bahwa Anda memiliki beberapa karakteristik yang sama dengan orang tua Anda. Situasi dunia nyata cukup mirip dengan warisan juga.
Namun, dalam kasus ini, karakteristik "kelas induk" diturunkan ke "kelas anak". Aspek-aspek ini disebut sebagai "properti" dan "metode" dalam konteks ini.
Sebuah kelas dapat menurunkan metode dan atributnya dari kelas lain dengan menggunakan teknik yang dikenal sebagai pewarisan. Warisan adalah proses kelas anak menerima properti dari kelas induk.
Contoh:
Kelas induk Manusia diwarisi oleh kelas anak Laki-laki dalam contoh di atas. Karena Boy mewarisi dari Human, kita dapat mengakses semua metode dan atributnya saat kita membuat instance dari kelas Boy.
Di kelas Boy, metode yang disebut schoolName juga telah didefinisikan. Objek kelas induk tidak dapat mengakses metode schoolName. Metode schoolName dapat, bagaimanapun, dipanggil dengan membuat objek kelas anak (Boy).
Enkapsulasi
Memberikan setiap variabel dalam program akses global bukanlah langkah yang bijaksana saat bekerja dengan kelas dan menangani data sensitif.
Tanpa memberikan program akses lengkap ke salah satu variabel tersebut, enkapsulasi menyediakan mekanisme bagi kita untuk mendapatkan variabel yang diperlukan.
Metode yang didefinisikan secara eksplisit untuk tujuan tersebut dapat digunakan untuk memperbarui, mengedit, atau menghapus data dari variabel. Metode pemrograman ini memiliki keuntungan dari peningkatan keamanan dan kontrol atas input data.
Lihat seberapa cepat variabel dapat diakses dalam demonstrasi di bawah ini:
Polimorfisme
Katakanlah Anda menggunakan ponsel Anda untuk menelusuri Umpan Instagram. Ketika Anda mendapat dorongan untuk mendengarkan musik, Anda mengakses Spotify dan mulai memainkan lagu favorit Anda.
Setelah beberapa saat, Anda menerima panggilan, jadi Anda menjeda apa pun yang sedang Anda lakukan di latar belakang untuk menjawabnya. Teman Anda menelepon dan meminta Anda mengirim SMS ke nomor telepon orang tertentu.
Jadi Anda mengiriminya nomor telepon melalui SMS dan melanjutkan tugas Anda. Apakah Anda mengambil sesuatu? Hanya dengan satu perangkat—ponsel Anda—Anda dapat menjelajahi feed, mendengarkan musik, menerima dan melakukan panggilan telepon, serta mengirim pesan.
Oleh karena itu, polimorfisme sebanding dengan itu. Poly berarti banyak, dan morph menunjukkan bentuk yang berbeda. Oleh karena itu, polimorfisme secara keseluruhan mengacu pada sesuatu dengan berbagai bentuk.
Atau "sesuatu" yang, tergantung pada situasinya, dapat menunjukkan berbagai perilaku. Dalam OOPS, polimorfisme menggambarkan fungsi dengan nama yang sama tetapi perilaku yang berbeda. Atau, tanda tangan fungsi yang berbeda dengan nama fungsi yang sama (parameter diteruskan ke fungsi).
Contoh:
Di sini, kita dapat menggunakan hewan variabel untuk beralih di seluruh objek Zebra dan Kelinci, menggunakan metode instance masing-masing. Akibatnya, perilaku (warna() & makan()) dari Zebra dan Kelinci diwakili di sini oleh satu variabel yang disebut hewan. Oleh karena itu mengikuti aturan polimorfisme.
Abstraksi
Kemungkinan besar Anda menggunakan laptop, ponsel, atau tablet untuk membaca konten ini. Saat membacanya, Anda mungkin juga membuat catatan, menggarisbawahi bagian-bagian penting, dan mungkin menyimpan beberapa informasi dalam file pribadi Anda.
Yang dapat Anda lihat saat membaca ini adalah "layar" dengan data yang ditampilkan kepada Anda. Anda hanya melihat tombol keyboard saat mengetik, jadi Anda tidak perlu khawatir tentang seluk-beluk internal seperti bagaimana menekan tombol dapat menyebabkan kata itu muncul di layar.
Atau, bagaimana menekan tombol di layar Anda dapat meluncurkan tab baru.
Oleh karena itu, apapun yang dapat kita amati dalam situasi ini adalah abstrak. Kita hanya bisa melihat hasil yang diciptakannya dan bukan seluk-beluk di dalamnya (yang sebenarnya penting bagi kita).
Mirip dengan ini, abstraksi hanya mengungkapkan fungsi yang dimiliki segala sesuatu sambil menyembunyikan implementasi atau detail internal apa pun.
Tujuan utama abstraksi adalah untuk menyembunyikan informasi latar belakang dan implementasi data asing apa pun sehingga orang hanya melihat apa yang perlu mereka lihat. Ini membantu dalam mengelola kompleksitas kode.
Contoh:
Kelas abstrak terkait kendaraan hadir di sini. Karena mewarisi dari kelas abstrak ABC, itu abstrak. Karena metode abstrak tidak didefinisikan atau tetap kosong, kelas Kendaraan memiliki metode abstrak yang disebut no of wheels yang tidak memiliki definisi.
Mereka mengantisipasi kelas yang mewarisi kelas abstrak untuk memberikan implementasi metode.
Manfaat konsep OOPS
- Dengan enkapsulasi, keamanan tinggi dan privasi data tercapai.
- Fleksibilitas dalam memiliki banyak versi polimorfik dari kelas yang sama.
- Tingkat kerumitan kode yang tinggi dikurangi dengan abstraksi.
- Alih-alih memilah-milah ratusan baris kode untuk menemukan satu masalah, modularitas pemrograman membuat debugging menjadi sederhana.
- Penggunaan kembali kode disebabkan oleh pewarisan kelas anak dari properti kelas induk.
- Pemecahan masalah yang efektif dimungkinkan karena kami membuat kelas yang melakukan tindakan yang diperlukan untuk setiap masalah kecil. Masalah berikut dapat diselesaikan dengan lebih cepat karena kita dapat menggunakan kembali kelas-kelas tersebut.
Kesimpulan
Sebagai kesimpulan, kami belajar tentang ide OOPS dengan Python, paradigma pemrograman terpanas saat ini.
Setelah membaca ini, Anda pasti menyadari bahwa paradigma OOPS sepenuhnya berkaitan dengan gagasan kelas dan objek. dan konsep OOPS seperti enkapsulasi, polimorfisme, pewarisan, dan abstraksi.
Tinggalkan Balasan