Konsep Pemrograman Berorientasi Objek dengan Python
Diterbitkan: 2020-12-01Berorientasi Objek adalah paradigma pemrograman yang mengikuti konsep kelas dan objek di tempat fungsi dan logika. Ini juga dikenal sebagai cara pengkodean yang mewah yang mengatur kode dengan cara yang meningkatkan keterbacaan dan pemeliharaan kode. Konsep OOP adalah topik penting dalam pemrograman dan membantu membangun modul yang dapat digunakan kembali untuk berbagai tugas dalam Ilmu Data.
Ini sering menjadi prasyarat saat membangun model Deep learning menggunakan berbagai perpustakaan seperti Pytorch di mana model dasar digunakan kembali untuk menambahkan lapisan kustom. Mari kita telusuri apa yang diajarkan konsep ini dan bagaimana menerapkannya dalam kasus penggunaan praktis.
Daftar isi
Apa itu konsep OOP?
Pertimbangkan smartphone yang bisa dari merek apa pun, tetapi mereka adalah berbagai hal yang umum di antara semuanya. Semua memiliki layar, speaker, tombol dan pada tingkat perangkat lunak, hampir semuanya bertenaga android. Sekarang pertimbangkan kasus di mana setiap perusahaan membuat perangkat lunak mereka dari awal, bahkan kernel yang mengontrol sebagian besar komponen perangkat keras.
Ini akan menjadi proses yang membosankan dan mahal, oleh karena itu, meningkatkan harga perangkat. Bagaimana jika ada model abstrak atau umum yang dapat diubah dari waktu ke waktu oleh produsen mana pun sesuai dengan kebutuhan mereka? Konsep ini mencoba menangkap metode berbasis kelas ini di mana kode disusun dalam kelas dengan metode pengakses yang berbeda.
Apa itu Kelas dan Objek?
Kelas adalah cetak biru dari apa yang harus dilaksanakan. Jika kita mempertimbangkan contoh sebelumnya, kita dapat memiliki fungsi untuk memanggil seseorang, menerima panggilan, pesan, memutar musik, atau melakukan beberapa hal lainnya.
Semua hal ini umum untuk setiap ponsel cerdas, kerja internalnya juga serupa dan dapat dianggap sebagai kelas fungsi ponsel cerdas atau kelas. Objek dapat didefinisikan sebagai semua merek smartphone yang akan menggunakan implementasi umum ini dalam produk mereka dengan modifikasi.
Mungkin ada beberapa instance dari kelas dasar ini, dan setiap instance dapat menyimpan status nilai yang berbeda tanpa mengganggu objek lain. Dalam Python, sebuah kelas dapat dideklarasikan dengan menggunakan kelas kata kunci yang dicadangkan. Selanjutnya, konstruktor __init__ digunakan untuk menginisialisasi variabel kelas.
perusahaan kelas:
def __init__ (sendiri):
self.name = 'upGrad'
def display_name (diri):
print(f”Nama perusahaan adalah: {self.name}”)
cm = Perusahaan()
cm.display_name()
Baca juga: Gaji Developer Python di India
Berbagai Pilar OOP
Sekarang kita sudah familiar dengan blok bangunan dasar dari paradigma ini, mari kita lihat beberapa fitur/karakteristik yang paling penting dari konsep ini:
Enkapsulasi
Ini menyatakan bahwa metode (atau fungsi) kelas dan data yang terkait dengannya dienkapsulasi atau dilindungi dari akses yang tidak disengaja atau eksternal. Ini berarti bahwa atribut yang didefinisikan dalam ruang lingkup pribadi atau terlindungi tidak dapat diakses di luar kelas.
Ada kekhawatiran untuk Python bahwa tidak ada konsep variabel pribadi dalam bahasa ini, sehingga atribut dapat diakses di luar kelas.
Ada cara untuk mengenali atribut pribadi dengan menggunakan garis bawah ganda di awal deklarasi dan jika Anda mencoba mengakses ini di luar kelas melalui objek yang sama, Anda akan diminta dengan AttributeError karena Python menerapkan mangling nama setiap kali mendeteksi variabel pribadi. Ini tidak memberikan keamanan apa pun pada atribut Anda karena atribut tersebut masih dapat diakses.
Warisan
Seperti yang disarankan oleh kata, itu mengambil sebagian dari kelas yang ada yang disebut kelas induk ke kelas baru yang disebut kelas anak dengan sedikit atau tanpa perubahan. Kami dapat menghubungkan ini dengan contoh kami dengan cara ini bahwa semua merek ponsel cerdas mewarisi kelas telepon generik yang akan membantu mereka melakukan fungsi dasar, ditambah mereka dapat menambahkan kode ekstra untuk meningkatkan pengalaman pengguna sesuai dengan kebutuhan mereka. Dalam Python, mewarisi kelas dilakukan dengan:
kelas A:
beberapa konten
kelas B(A):
isi dari kelas turunan
Ada konsep lain yang terkait dengan pewarisan yang disebut fungsi overriding. Misalkan fungsi kamera dari smartphone generik tidak begitu baik, dan pabrikan memiliki solusi yang lebih baik untuk ini. Mereka dapat langsung menimpa fungsi ini dengan mendefinisikannya lagi di kelas anak dan menerapkan perubahan di sana.

Abstraksi
Ini mendefinisikan cetak biru atau antarmuka ke implementasi subclass. Ini berarti beberapa metode didefinisikan di kelas dasar yang tidak sepenuhnya diimplementasikan dan hanya tampilan abstrak yang didefinisikan. Ini dapat membantu dalam melacak berbagai fitur modul dan sub-modul yang akan dibuat.
Misalnya, beberapa ponsel cerdas mendukung NFC (konektivitas medan dekat) dan fungsi ini dapat didefinisikan di kelas dasar dan implementasinya dapat dikodekan di kelas anak dari ponsel yang dihasilkan. Dengan cara ini, kelas dasar abstrak dapat memberikan tampilan keseluruhan modul dan implementasi selanjutnya. Berikut ini contohnya:
Telepon kelas:
kamera def (diri):
lulus
def NFC (diri):
lulus
kelas Xyz(Telepon):
def NFC (diri):
kembali Benar
Pelajari tentang: Alat Python teratas
Polimorfisme
Jika kita menggunakan makna dasarnya, itu berarti banyak bentuk dari hal yang sama. Polimorfisme mendefinisikan fungsi berdasarkan jumlah atau jenis argumen yang diteruskan. Misalnya, fungsi panjang di Python dapat mengambil semua jenis iterable atau objek dan mengembalikan panjang integer.
Ini juga dapat dikutip sebagai fungsi yang berlebihan tetapi di sini ada tangkapan dalam bahasa Python. Kami tidak dapat mendefinisikan fungsi nama yang sama dengan argumen yang berbeda dan jika selesai, maka itu hanya mempertimbangkan entri terakhir.
Kasus Penggunaan Praktis OOP
Kami telah melihat tentang apa konsep ini dan fitur apa yang ditawarkannya. Lihatlah beberapa contoh di mana Anda dapat menerapkan konsep ini:
Jinja Templating: Jika Anda memiliki pengalaman dengan kerangka Flask Python yang menangani rute dan sisi server, templating ini membantu menangani data ini di front-end. Umumnya, file HTML dasar dibuat yang kemudian diwarisi oleh semua halaman untuk memiliki tata letak yang sama di seluruh situs web.
Aplikasi Kivy: Ini adalah perpustakaan yang memungkinkan Anda untuk membangun aplikasi python berbasis GUI lintas platform (android dan iOS) dan di sini sebagian besar pemrograman didasarkan pada konsep OOP.
ORM: Object-relational Mappers menawarkan cara untuk mendefinisikan database relasional dalam kode aplikasi menggunakan bahasa apapun. Misalnya, di Django, Anda dapat mendefinisikan tipe model yang berbeda menggunakan kelas untuk tipe pengguna yang berbeda.
Kesimpulan
Dalam artikel ini, kita membahas apa itu konsep OOP, blok bangunannya (kelas dan objek), pilar yang berbeda, dan menyoroti beberapa contoh di mana paradigma ini diadopsi. Ada banyak tempat di mana metode pemrograman ini dipertimbangkan karena manajemen kode yang lebih baik, kolaborasi, dan menyediakan fungsionalitas abstrak untuk program lain yang bergantung pada ini.
Jika Anda penasaran untuk belajar tentang python, ilmu data, lihat PG Diploma IIIT-B & upGrad dalam Ilmu Data yang dibuat untuk para profesional yang bekerja dan menawarkan 10+ studi kasus & proyek, lokakarya praktis, bimbingan dengan pakar industri, 1-on-1 dengan mentor industri, 400+ jam pembelajaran dan bantuan pekerjaan dengan perusahaan-perusahaan top.
Apa itu OOP?
Pemrograman berorientasi objek, disingkat OOP, adalah teknik pemrograman komputer yang mengatur desain perangkat lunak menurut data, bukan mengaturnya menurut fungsi dan logika. OOP berfokus pada objek, yaitu, bidang data dengan properti dan perilaku berbeda yang ingin dikontrol oleh pengembang daripada logika yang diperlukan untuk mengelolanya. Metode pemrograman ini ideal untuk aplikasi besar dan rumit yang terus diperbarui atau dipelihara. OOP mencakup inisiatif manufaktur, desain, dan aplikasi seluler. Keuntungan lain dari bahasa ini adalah penggunaan kembali kode, skalabilitas, dan efisiensi.
Apa bahasa yang berbeda di OOP?
Bahasa pemrograman berorientasi objek membuat beberapa bahasa pengkodean yang paling sering digunakan di industri komputer saat ini. Bahasa OOP ditemukan di mana-mana. Bahasa ini menggunakan objek yang menyimpan data dan kode. Enkapsulasi, abstraksi, polimorfisme, dan pewarisan adalah ide pemrograman berorientasi objek. Bahasa pemrograman berorientasi objek yang populer termasuk Java, Python, C++, Lisp, dan Perl. Mereka membantu dengan pemrograman memanfaatkan kelas dan objek paradigma. Bahasa lain yang mendukung prinsip berorientasi objek adalah Perl, Objective-C, Dart, Lisp, JavaScript, dan PHP.
Mengapa OOP lebih disukai?
Ada banyak alasan mengapa OOP lebih disukai. Pengembang dapat menggunakan kembali kode berorientasi objek. Anda juga dapat menggunakan warisan untuk menduplikasi informasi dan fungsionalitas yang telah dibuat sebelumnya. Ini menghemat waktu, menyederhanakan kode, menghemat ruang, dan membuat pengkodean lebih mudah di jari kita. Karena sebagian besar kode berada di satu lokasi dan dipanggil serta digunakan kembali, maka pemeliharaannya jauh lebih mudah. Sementara sebagian besar bahasa menawarkan beberapa tingkat keamanan, bahasa berorientasi objek lebih nyaman karena enkapsulasi mencakup keamanan. Bahasa pemrograman berorientasi objek membagi program menjadi objek dan kelas. Ini menguntungkan karena menyediakan aplikasi Anda dengan kerangka kerja yang lebih modular.