Last Updated on October 20, 2020 by
Pernahkah Anda memperhatikan bagaimana pertanyaan klise yang sama selalu ditanyakan pada wawancara kerja? Misalnya: Apa cita-cita atau impian Anda di masa depan?? Apa yang Anda anggap sebagai kelemahan terbesar Anda?
Sekecil apa pun pertanyaan-pertanyaan seperti ini, mereka penting karena memberi petunjuk tentang Anda. Keadaan pikiran Anda saat ini, sikap Anda, dan perspektif Anda.
Saat menjawab, Anda harus berhati-hati, karena Anda dapat mengungkapkan sesuatu yang kemudian Anda sesali. Kali ini kami ingin berbicara tentang jenis pertanyaan serupa di dunia pemrograman:
Table of Contents
Apa konsep OOP (Pemrograman Berorientasi Objek)
Ini adalah salah satu topik yang sering ditanyakan sehingga Anda tidak bisa membiarkan tidak mengetahuinya. Pengembang junior dan entry level harus bisa menjawabnya. Karena itu cara mudah bagi pewawancara untuk mengatakan tiga hal:
Apakah kandidat melakukan persiapan untuk interview ini?
Poin bonus jika Anda segera mendengar jawaban ini menunjukkan pendekatan yang serius.
Apakah kandidat melewati fase tutorial?
Memahami prinsip-prinsip Pemrograman Berorientasi Objek yang disebut dengan OOP adalah menunjukkan Anda telah melampaui copy dan paste dari tutorial, Anda sudah melihat sesuatu dari perspektif yang lebih tinggi.
Apakah pemahaman kandidat dalam atau dangkal?
Tingkat kompetensi pada pertanyaan ini sering sama dengan tingkat kompetensi pada sebagian besar mata pelajaran lainnya.
Empat konsep oop adalah enkapsulasi, abstraksi, pewarisan, dan polimorfisme. Ini mungkin terdengar menakutkan bagi pengembang junior dan penjelasan yang rumit.
Itu sebabnya saya ingin memberikan penjelasan yang sederhana, singkat, dan jelas untuk masing-masing konsep oop.
Enkapsulasi dalam OOP adalah
Katakanlah kita punya program. Oop adalah beberapa objek berbeda secara logis yang berkomunikasi satu sama lain sesuai dengan aturan yang ditetapkan dalam program. Enkapsulasi oop adalah mencapai ketika setiap objek dapat menjaga keadaan privatnya, objek lain tidak memiliki akses langsung. Sebaliknya, mereka hanya bisa memanggil daftar fungsi publik yang disebut metode.
Jadi, objek mengelola kondisinya sendiri melalui metode dan tidak ada kelas lain yang bisa menyentuhn kecuali diizinkan secara eksplisit. Jika Anda ingin berkomunikasi dengan objek, Anda harus menggunakan metode yang disediakan. Tetapi (secara default), Anda tidak dapat mengubah status.
Katakanlah kita sedang membangun game Sims kecil. Ada orang dan ada kucing. Mereka berkomunikasi satu sama lain. Kami ingin menerapkan enkapsulasi, jadi kami merangkum semua logika “cat” ke dalam kelas cat.
Anda bisa memberi makan kucing. Tapi Anda tidak bisa langsung mengubah seberapa lapar kucing itu.
Di sini “keadaan” kucing adalah variabel pribadi mood, lapar dan energi. Ini juga memiliki metode pribadi. Itu bisa memanggilnya kapan saja dia mau, kelas lain tidak bisa memberi tahu kucing kapan harus mengeong.
Apa yang dapat mereka lakukan didefinisikan dalam metode publik sleep (), play () dan feed (). Masing-masing dari mereka memodifikasi keadaan internal entah bagaimana dan dapat memanggil meow (). Dengan demikian, pengikatan antara negara swasta dan metode publik dibuat. Ini adalah pengertian oop enkapsulasi.
Abstraksi OOP adalah
Abstraksi dapat dianggap sebagai perpanjangan alami enkapsulasi. Dalam desain berorientasi objek, program seringkali sangat besar dan objek terpisah saling berkomunikasi satu sama lain. Jadi mempertahankan basis kode besar seperti ini selama bertahun-tahun dengan perubahan di sepanjang jalan sulit.
Abstraksi oop adalah konsep yang bertujuan untuk meringankan masalah ini. Menerapkan abstraksi berarti bahwa setiap objek hanya boleh mengekspos mekanisme tingkat tinggi untuk menggunakannya. Mekanisme ini harus menyembunyikan detail implementasi internal, hanya mengungkapkan operasi yang relevan untuk objek lain. Mekanisme ini harus mudah digunakan dan jarang berubah seiring waktu. Anggap saja sebagai satu set kecil metode publik yang dapat dipanggil oleh kelas lain tanpa “mengetahui” cara kerjanya.
Contoh nyata lain dari abstraksi?
Pikirkan tentang bagaimana Anda menggunakan ponsel Anda:
Ponsel itu kompleks. Tetapi menggunakan mereka itu sederhana.
Anda berinteraksi dengan telepon Anda hanya dengan menggunakan beberapa tombol. Apa yang terjadi di bawah tenda? Anda tidak perlu tahu detail implementasi tersebut. Namun Anda hanya perlu mengetahui serangkaian tindakan singkat.
Perubahan implementasi misalnya, pembaruan perangkat lunak jarang memengaruhi abstraksi yang Anda gunakan.
Inheritance OOP adalah
Melihat bagaimana enkapsulasi dan abstraksi dapat membantu kami mengembangkan dan mempertahankan basis kode besar. Tapi tahukah Anda apa masalah umum lainnya dalam desain OOP?
Objek seringkali sangat mirip. Mereka berbagi logika yang sama. Tetapi mereka tidak sepenuhnya sama. Jadi bagaimana kita menggunakan kembali logika umum dan mengekstrak logika unik ke dalam kelas yang terpisah? Salah satu cara untuk mencapai ini adalah warisan. Ini berarti bahwa Anda membuat kelas (anak) dengan berasal dari kelas (orang tua) lain. Dengan cara ini, kami membentuk hierarki.
Kelas anak menggunakan kembali semua bidang dan metode dari kelas induk dan dapat mengimplementasikannya sendiri. Misalnya, guru privat adalah tipe guru, dan setiap guru adalah tipe orang. Jika program kami perlu mengelola guru negeri dan swasta, tetapi juga tipe orang lain seperti siswa, kami dapat menerapkan hierarki kelas ini. Dengan cara ini, setiap kelas hanya menambahkan apa yang diperlukan untuk itu sambil menggunakan kembali logika umum dengan kelas induk.
Polymorphism / Polimorfisme OOP adalah
Kami sampai ke konsep oop yang paling rumit! Polimorfisme berarti “banyak bentuk” dalam bahasa Yunani. Jadi kita sudah tahu kekuatan warisan dan menggunakannya. Katakanlah kita memiliki kelas induk dan beberapa kelas anak yang mewarisinya. Terkadang kami ingin menggunakan koleksi misalnya daftar yang berisi campuran dari semua kelas ini. Atau kami memiliki metode yang diterapkan untuk kelas induk tetapi kami juga ingin menggunakannya untuk anak-anak.
Ini dapat diselesaikan dengan menggunakan polimorfisme. Sederhananya, polimorfisme oop adalah memberikan cara untuk menggunakan kelas persis seperti induknya sehingga tidak ada kebingungan dengan jenis pencampuran. Tetapi masing-masing kelas anak menjaga caranya sendiri.
Ini biasanya terjadi dengan mendefinisikan antarmuka (induk) yang akan digunakan kembali. Ini menguraikan banyak metode umum. Kemudian, setiap kelas anak mengimplementasikan versinya sendiri dari metode ini. Setiap kali koleksi seperti daftar atau suatu metode mengharapkan turunan dari induknya di mana metode-metode umum diuraikan, bahasa tersebut menangani evaluasi implementasi yang tepat dari metode umum terlepas dari anak mana yang dilewati.
Lihatlah sketsa implementasi angka geometris. Mereka menggunakan kembali antarmuka umum untuk menghitung luas permukaan dan perimeter: Triangle, Circle, and Rectangle kini dapat digunakan dalam koleksi yang sama. Jika Anda memiliki fungsi yang beroperasi dengan angka dengan menggunakan parameternya, Anda tidak perlu mendefinisikannya tiga kali sekali untuk segitiga, lingkaran, dan persegi panjang.
Anda bisa mendefinisikannya sekali dan menerima Figure sebagai argumen. Apakah Anda memberikan Triangle, Circle, atau Rectangle selama mereka menerapkan CalculateParamter (), jenisnya tidak masalah. Anda dapat langsung menggunakan penjelasan yang sama persis ini di wawancara kerja.
[jasa-pembuatan-website]
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.