21 Pertanyaan dan Jawaban Wawancara OOP yang Sering Diajukan untuk Diketahui Hari Ini
Diterbitkan: 2022-09-20Pertanyaan wawancara Pemrograman Berorientasi Objek dapat membantu programmer dan pengembang meningkatkan pengetahuan mereka tentang konsep-konsep kunci di dunia pemrograman.
OOP adalah salah satu paradigma pemrograman yang paling penting dan diperlukan, berfokus pada objek dan kelas, bukan prosedur dan fungsi.
Beberapa bahasa pemrograman berbasis OOP adalah Objective-C, Java, Ada, Perl, Python, C++, dan lainnya.
Perusahaan besar mencari pengembang yang mahir dalam pendekatan berorientasi objek serta pola.
Jadi, jika Anda berencana untuk mengikuti proses wawancara semacam itu, Anda harus memiliki pemahaman mendalam tentang konsep OOP.
Mari kita lihat beberapa pertanyaan dan jawaban wawancara OOP yang sering diajukan untuk membantu Anda mempersiapkan diri untuk wawancara dan tes.
Pemrograman Berorientasi Objek (OOP): Gambaran Umum

OOP adalah paradigma pemrograman yang berputar di sekitar objek. Di sini, objek dianggap sebagai instance dunia nyata, seperti kelas yang menyertakan beberapa perilaku dan karakteristik yang ditentukan dalam templat kelas.
Sebagai contoh, mari kita pertimbangkan sebuah mobil. Menurut model OOP:
- Objek : Sebuah mobil. Itu bisa dari jenis atau model apa pun, seperti mobil yang Anda miliki.
- Kelas : Model atau tipe mobil, seperti BMW, Chevrolet, Kia, Audi, dan lainnya.
- Karakteristik : Warna mobil, nomor rangka mobil, tipe mesin, tipe gigi, dan lainnya.
- Perilaku : Cara mengganti persneling, cara menstarter mobil, dan lainnya.
Di sini, karakteristik juga dikenal sebagai properti, atribut, atau data, sedangkan perilaku dikenal sebagai prosedur, metode, atau fungsi dalam bahasa pemrograman.
Jadi, mari kita mulai dengan beberapa pertanyaan wawancara OOP yang sering diajukan.
Apa yang dimaksud dengan istilah OOP?
Jawaban: Pemrograman Berorientasi Objek (OOP) adalah model pemrograman berdasarkan objek dan kelas bukan prosedur dan fungsi. Objek individu diatur ke dalam kelas. OOP menggambarkan entitas dunia nyata dengan konsep seperti polimorfisme, persembunyian, pewarisan, dll., dan paradigma pemrograman.
OOP mengikat kode dan data bersama-sama. Objek adalah entitas dunia nyata yang didefinisikan melalui kelas dengan karakteristik dan perilaku tertentu, sedangkan kelas didefinisikan sebagai pola untuk objek tertentu. Ini juga dikenal sebagai tipe data yang ditentukan pengguna.
Ini termasuk program untuk desain dan manufaktur bersama dengan aplikasi seluler. Misalnya, Anda dapat menggunakan OOP untuk membuat perangkat lunak simulasi sistem.
Apa saja paradigma pemrograman selain OOP?

Jawaban: Paradigma pemrograman adalah metode untuk mengkategorikan bahasa pemrograman berdasarkan fitur masing-masing bahasa. Ada dua jenis paradigma pemrograman:
- Paradigma Pemrograman Imperatif: Ini berfokus pada bagaimana mengeksekusi logika dan mendefinisikan aliran kontrol. Ini termasuk Paradigma Pemrograman Prosedural, Pemrograman Berorientasi Objek (OOP), dan Pemrograman Paralel.
- Paradigma Pemrograman Deklaratif: Ini berfokus pada apa yang harus dieksekusi dalam program dan mendefinisikan logikanya, bukan aliran kontrol. Ini termasuk Paradigma Pemrograman Logis, Paradigma Pemrograman Fungsional, dan Paradigma Pemrograman Basis Data.
Apa perbedaan antara OOP dan SOP?
Jawab: Mari kita pahami perbedaan antara OOP dan SOP dengan tabel ini:
Pemrograman berorientasi objek | Pemrograman Berorientasi Struktur |
Ini adalah model pemrograman berdasarkan objek, bukan prosedur dan fungsi. | Ini menyediakan struktur logis untuk program, di mana program dibagi menjadi beberapa fungsi. |
Mengikuti pendekatan bottom-up | Mengikuti pendekatan top-down |
Menyediakan penyembunyian atau enkapsulasi data | Itu tidak menyediakan penyembunyian data |
Dapat memecahkan masalah yang kompleks. | Itu bisa memecahkan masalah sedang. |
Redundansi rendah karena kode dapat digunakan lagi | Itu tidak mendukung penggunaan kembali kode. |
Lebih fleksibel | Kurang fleksibel |
Perhatian utamanya adalah data. | Perhatian utamanya adalah struktur logis dari suatu program. |
Apa saja fitur utama OOP?

Jawaban: Berikut adalah fitur utama OOP:
- Warisan
- Enkapsulasi
- Abstraksi
- Polimorfisme
- Penggantian metode
- Metode kelebihan beban
- Objek
- Kelas
- Konstruktor dan destruktor
Warisan, polimorfisme, dan enkapsulasi adalah elemen dasar OOP yang membedakan fitur ini dari bahasa non-OOP.
Apa itu enkapsulasi?
Jawaban: Enkapsulasi adalah metode untuk menempatkan kelas, variabel, metode, dan lainnya di dalam kapsul yang diperlukan untuk melakukan pekerjaan dan menyajikan kapsul yang sama kepada pengguna. Secara sederhana, semua metode dan data yang diperlukan disatukan, dan detail yang tidak perlu disembunyikan dari pengguna.
Itu juga dapat didefinisikan dengan cara lain:
- Pengikatan data: Enkapsulasi adalah proses pengikatan anggota data bersama dengan metode bersama-sama sebagai kelas atau secara keseluruhan.
- Penyembunyian data: Enkapsulasi adalah proses menyembunyikan informasi yang tidak perlu, seperti pembatasan akses ke anggota suatu objek, dll.
Apa itu Polimorfisme?

Jawaban: Mari kita memahami polimorfisme dengan memisahkan istilah menjadi dua kata yang membentuknya:
"Poli" berarti "banyak"
"Morf" berarti "bentuk"
Jadi, polimorfisme dapat digambarkan sebagai objek yang memiliki bentuk yang berbeda.
Dalam OOP, ini disebut sebagai proses di mana beberapa data, objek, metode, atau kode berperilaku berbeda dalam berbagai konteks atau keadaan. Ada dua jenis polimorfisme dalam model OOP:
- Jalankan polimorfisme waktu
- Kompilasi polimorfisme waktu
Dengan kata lain, ini adalah beberapa definisi dari satu antarmuka. Misalnya, ada kelas bernama 'kendaraan', yang terdiri dari metode 'kecepatan'. Tidak mungkin untuk menentukan kecepatan karena kendaraan yang berbeda memiliki kecepatan yang berbeda. Dengan demikian, ini dapat didefinisikan dalam subkelas dari berbagai definisi untuk berbagai kendaraan.
Apa itu Polimorfisme Statis?
Jawaban: Polimorfisme statis juga dikenal sebagai polimorfisme waktu kompilasi. Ini adalah fitur di mana suatu objek dapat dihubungkan dengan masing-masing operator atau fungsi berdasarkan nilai. Hal ini dapat dicapai melalui overloading operator atau overloading metode.
Di sini, metode menggunakan nama yang mirip, tetapi parameter setiap nama berbeda. Objek berperilaku berbeda untuk pemicu serupa. Dengan demikian, beberapa metode diimplementasikan di kelas yang sama.
Apa itu Polimorfisme Dinamis?

Jawaban: Polimorfisme dinamis juga dikenal sebagai polimorfisme runtime. Ini mengacu pada jenis polimorfisme dalam OOP di mana penggabungan fungsi yang sebenarnya diselesaikan selama eksekusi atau runtime. Hal ini dapat dicapai dengan metode overriding.
Misalnya, dua kelas, sepeda dan Yamaha dibuat, dan kelas Yamaha memperluas kelas sepeda dengan mengesampingkan metode run()-nya. Karena metode subkelas menimpa metode kelas induk, metode ini dipanggil pada saat run time.
Apa itu Kelas?
Jawaban: Kelas dapat didefinisikan sebagai cetak biru atau template yang berisi beberapa nilai, yang disebut data anggota. Ini juga mencakup beberapa aturan, yang dikenal sebagai fungsi atau perilaku. Saat Anda membuat objek, secara otomatis mengambil fungsi dan data yang ditentukan di kelas.
Namun, kelas adalah cetak biru atau template untuk objek. Seseorang dapat mendesain sebanyak mungkin objek sesuai kebutuhan berdasarkan kelas. Misalnya, template mobil dibuat terlebih dahulu. Setelah itu, unit mobil yang berbeda dirancang berdasarkan template mobil.
Apa itu Objek?

Jawaban: Objek dapat didefinisikan sebagai turunan dari kelas yang berisi turunan perilaku dan anggota yang didefinisikan dalam template. Objek adalah entitas aktual yang berinteraksi dengan pengguna, tetapi kelas hanyalah cetak biru untuk objek itu.
Jadi, objek memiliki beberapa karakteristik atau perilaku dan mengonsumsi ruang—misalnya, model mobil tertentu.
Apa perbedaan antara Kelas dan Struktur?
Jawaban: Mari kita pahami ini dengan bantuan tabel:
Kelas | Struktur |
Kelas adalah tipe referensi. | Struktur adalah tipe nilai. |
Itu dialokasikan ke memori tumpukan. | Itu dialokasikan pada memori tumpukan. |
Alokasi lebih murah dalam tipe referensi besar | Alokasi lebih murah dalam tipe nilai daripada tipe referensi |
Ini memiliki fitur tak terbatas. | Ini memiliki fitur terbatas. |
Kelas digunakan dalam program besar. | Struktur digunakan dalam program kecil. |
Ini berisi konstruktor dan destruktor. | Ini berisi konstruktor parameter atau statis. |
Ia menggunakan kata kunci new() setiap kali membuat instance. | Itu dapat dengan mudah membuat instance dengan atau tanpa kata kunci apa pun. |
Sebuah kelas dapat mewarisi dari kelas lain. | Sebuah struktur tidak diperbolehkan untuk mewarisi. |
Anggota data suatu kelas dapat dilindungi. | Anggota data suatu struktur tidak dapat dilindungi. |
Anggota fungsi bisa abstrak atau virtual | Anggota fungsi tidak boleh abstrak atau virtual |
Dua variabel kelas yang berbeda dapat menyertakan referensi dari objek yang serupa. | Setiap variabel berisi salinannya sendiri. |
Apa itu Warisan?

Answer: Inheritance adalah salah satu fitur OOP yang memungkinkan sebuah class mewarisi properti utama dari class lain. Misalnya, jika 'kendaraan' adalah kelas, maka 'mobil', 'sepeda', dll., adalah kelas lain yang dapat mewarisi properti kunci dari kendaraan kelas'.

Fitur ini membantu menyingkirkan kode yang berlebihan; karenanya, mengurangi ukuran kode. Secara sederhana, pewarisan didefinisikan sebagai penerima properti dari kelas induk ke kelas anak. Di sini, 'kendaraan' adalah kelas induk, dan 'mobil' atau 'sepeda' adalah kelas anak dari contoh di atas.
Dengan cara ini, Anda dapat menggunakan kembali kode pemrograman satu kelas di kelas lain tanpa menulis kode yang sama lagi atau membuang waktu dalam prosesnya.
Apa saja macam-macam warisan?
Jawaban: Ada berbagai jenis pewarisan yang digunakan dalam model OOP, seperti:
- Warisan tunggal: Ini didefinisikan sebagai warisan di mana satu kelas mewarisi fungsi umum dari satu kelas dasar.
- Warisan berganda: Muncul ke dalam gambar ketika satu kelas mewarisi lebih dari satu kelas.
- Warisan bertingkat: Ini berarti kelas mewarisi dari kelas lain, yang merupakan subkelas dari beberapa kelas lain.
- Warisan hierarkis: Ini mengacu pada warisan di mana satu kelas memiliki beberapa subkelas.
- Warisan hibrida: Ini adalah kombinasi dari pewarisan bertingkat dan banyak.
Apa saja batasan warisan?

Jawab: Beberapa batasan warisan adalah sebagai berikut:
- Ini meningkatkan upaya dan waktu yang dibutuhkan untuk menjalankan program. Hal ini karena membutuhkan sering melompat dari satu kelas ke kelas lain, yang membutuhkan waktu.
- Kelas induk, bersama dengan kelas anak, digabungkan sangat erat, jadi, kurang fleksibel.
- Perlu penggabungan hati-hati, atau yang lain akan menyebabkan hasil yang tidak memadai atau salah.
- Modifikasi tunggal dalam program dapat menyebabkan perubahan kode di kedua kelas induk dan anak.
Apa itu Abstraksi?
Jawaban: Abstraksi adalah salah satu elemen OOP. Peran kunci dari abstraksi adalah untuk menangani kompleksitas. Ini dilakukan dengan menyembunyikan detail yang tidak diinginkan dari pengguna. Ini memungkinkan pengguna untuk menerapkan logika kompleks di atas abstraksi tanpa memikirkan kompleksitas yang tersembunyi.
Misalnya, jika Anda seorang pecinta kopi, Anda perlu mengetahui berapa banyak susu, biji kopi, dan gula batu yang ingin Anda tambahkan untuk membuat secangkir kopi menggunakan mesin kopi. Tidak ada gunanya memikirkan prinsip kerja mesin itu. Mesin kopi adalah kerumitan tersembunyi yang tidak perlu Anda ketahui, tetapi proses pembuatan kopi adalah suatu keharusan.
Ada dua jenis abstraksi:
- Abstraksi data
- Proses abstraksi
Apa itu Konstruktor?

Jawaban: Konstruktor adalah metode khusus di kelas atau struktur yang namanya mirip dengan nama kelas. Ini melayani tujuan yang diperlukan untuk menginisialisasi objek. Ini juga membantu dalam membuat instance data anggota serta metode untuk menetapkan objek ke kelas.
Saat membuat konstruktor, beberapa hal yang perlu diingat:
- Namanya sama dengan nama kelas.
- Itu tidak bisa abstrak, final, atau statis.
- Itu tidak memiliki variabel tipe pengembalian.
Apa saja macam-macam konstruktor di C++?
Jawaban: Ada tiga jenis konstruktor di C++:
- Konstruktor default: Konstruktor tanpa parameter atau argumen dalam definisi. Jenis konstruktor ini digunakan untuk menginisialisasi anggota data atau variabel dengan nilai nyata.
- Parameterized Constructor: Ini berisi argumen atau parameter dalam deklarasi dan definisi. Lebih dari satu parameter dapat melewati konstruktor berparameter. Ini digunakan untuk overloading untuk mengetahui perbedaan dalam beberapa konstruktor.
- Salin konstruktor: Ini adalah fungsi anggota yang menggunakan objek lain dari kelas yang sama untuk menginisialisasi objek. Selain itu, ini membantu menyalin data dari satu objek ke objek lain.
Apa itu Destruktor?

Jawaban: Destruktor adalah metode yang dipanggil secara otomatis saat menghancurkan objek. Ini mengimplementasikan tindakan tertentu:
- Memulihkan ruang tumpukan yang dialokasikan sebelumnya selama inisialisasi objek
- Menutup koneksi database dan file
- Melepaskan sumber daya jaringan dan kunci sumber daya
- Melakukan berbagai tugas rumah tangga
Dengan kata lain, destruktor menghancurkan objek yang diinisialisasi oleh konstruktor. Ini adalah fungsi anggota khusus dengan nama yang sama dengan nama kelas tetapi didahului dengan simbol (~). Destructor dapat kelebihan beban karena merupakan fungsi satu arah.
Apa itu Pengumpulan Sampah (GC)?
Jawaban: Pengumpulan sampah (GC) adalah elemen pemulihan memori yang dibangun ke dalam bahasa pemrograman, seperti Java dan C#. Bahasa pemrograman berkemampuan GC berisi setidaknya satu pengumpul sampah yang mengosongkan ruang memori secara otomatis yang tidak lagi diperlukan dalam suatu program.
Pengumpulan sampah mengkonfirmasi bahwa program masih dalam kuota memori. Ini mencegah pengembang mengelola memori program secara manual, yang meminimalkan bug terkait memori.
Apa itu penanganan pengecualian?

Jawaban: Penanganan pengecualian adalah metode untuk menanggapi kejadian tak terduga saat program komputer berjalan. Pemrogram harus "menangani" kejadian yang tidak diinginkan (pengecualian) untuk mencegah sistem atau program mogok. Tanpa metode ini, pengecualian dapat mengganggu operasi umum suatu program dan mengakibatkan inefisiensi atau risiko.
Apa itu blok coba/tangkap?
Answer: Try or catch adalah kata kunci yang mewakili penanganan eksepsi akibat kesalahan pengkodean atau data selama eksekusi suatu program.
- Blok coba adalah blok kode tempat pengecualian terjadi
- Blok tangkapan menangani dan menangkap coba pengecualian blok
Pernyataan try and catch sering digunakan dalam berbagai bahasa pemrograman, termasuk C++. C#, Java, SQL, dan JavaScript. Setiap pernyataan try cocok dengan pernyataan catch untuk menangani eksekusi. Berikut adalah beberapa hal yang perlu diingat dalam pernyataan try and catch :
- Blok try diikuti oleh blok catch.
- Sebuah blok try diikuti oleh setidaknya satu blok catch.
- Sebuah blok try diikuti oleh blok try yang lain dan selanjutnya diikuti oleh blok catch.
Kesimpulan
OOP adalah konsep penting yang harus diketahui oleh programmer. Mempelajarinya secara menyeluruh juga akan membantu Anda memprogram dengan baik dalam bahasa yang menggunakan konsep OOP.
Jika Anda sedang mempersiapkan wawancara atau tes, pertanyaan dan jawaban wawancara di atas akan membantu Anda menyegarkan kembali pemahaman Anda tentang konsep OOP seperti kelas, objek, enkapsulasi, polimorfisme, pewarisan, abstraksi, dan banyak lagi. Dengan cara ini, Anda dapat dengan percaya diri menghadapi wawancara dan berhasil melewatinya untuk membangun karier Anda.
Anda juga dapat melihat beberapa Pertanyaan Wawancara SQL ini.