# Repository Pattern (Laravel) > Repository pattern (trade-off, use case), contracts, service layer, prinsip SOLID, dependency inversion, testability, kapan TIDAK menggunakannya - 20 pertanyaan wawancara - Senior - [Pertanyaan Wawancara: Laravel](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara.md) ## 1. Apa itu Repository Pattern di Laravel? **Jawaban** Repository Pattern adalah design pattern yang menambahkan lapisan abstraksi antara logika bisnis dan lapisan data. Pattern ini mengenkapsulasi logika akses data dalam kelas khusus (repositories), memungkinkan pemisahan tanggung jawab dan membuat kode lebih mudah diuji. Tidak seperti menggunakan Eloquent langsung di controllers, repository memusatkan query kompleks dan memudahkan perubahan sumber data tanpa memengaruhi bagian lain aplikasi. ## 2. Dalam skenario apa Repository Pattern memberikan nilai paling besar? **Jawaban** Repository Pattern sangat berguna dalam aplikasi kompleks dengan query yang canggih dan berbagai sumber data. Pattern ini bersinar dalam proyek enterprise di mana logika akses data kompleks, digunakan kembali di banyak tempat, atau kemungkinan besar akan berubah (misalnya, migrasi dari MySQL ke MongoDB). Untuk CRUD sederhana atau aplikasi kecil, hal ini bisa menjadi over-engineering yang tidak perlu. ## 3. Apa trade-off utama dari Repository Pattern? **Jawaban** Trade-off utama adalah meningkatnya kompleksitas kode dan jumlah file yang harus dipelihara. Setiap repository menambahkan setidaknya 2 file (interface + implementasi), yang dapat dengan cepat menjadi bertele-tele dalam aplikasi sederhana. Laravel Eloquent sudah merupakan abstraksi yang kuat yang menyelesaikan 80% kasus penggunaan, dan menambahkan lapisan ekstra dapat memperlambat pengembangan tanpa manfaat nyata jika query tetap sederhana. ## 17 pertanyaan lagi tersedia - Bagaimana Repository Pattern menerapkan prinsip SOLID Dependency Inversion? - Apa keuntungan utama Repository Pattern untuk pengujian? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara Laravel lainnya - [Dasar-Dasar PHP](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/php-basics.md): 25 pertanyaan, Junior - [Dasar OOP PHP](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/php-oop-essentials.md): 20 pertanyaan, Junior - [Composer & Autoloading](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/composer-autoloading.md): 18 pertanyaan, Junior - [Dasar-Dasar Laravel](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-fundamentals.md): 20 pertanyaan, Junior - [Routing Laravel](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-routing.md): 20 pertanyaan, Junior - [Blade Templates](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/blade-templates.md): 18 pertanyaan, Junior - [Request & Response](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/request-response.md): 20 pertanyaan, Junior - [Dasar-Dasar Eloquent ORM](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/eloquent-orm-basics.md): 22 pertanyaan, Junior - [Eloquent Relationships](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/eloquent-relationships.md): 25 pertanyaan, Mid-Level - [Migrations & Schema Builder](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/database-migrations.md): 20 pertanyaan, Mid-Level - [Validasi & Formulir](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/validation-forms.md): 22 pertanyaan, Mid-Level - [Autentikasi](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/authentication.md): 20 pertanyaan, Mid-Level - [Otorisasi & Policies](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/authorization-policies.md): 18 pertanyaan, Mid-Level - [API Resources & Authentication](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/api-resources-authentication.md): 26 pertanyaan, Mid-Level - [Middleware](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/middleware.md): 18 pertanyaan, Mid-Level - [Service Container & DI](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/service-container-di.md): 20 pertanyaan, Mid-Level - [Queues & Jobs](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/queues-jobs.md): 22 pertanyaan, Mid-Level - [Events & Listeners](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/events-listeners.md): 18 pertanyaan, Mid-Level - [Notifikasi & Mail](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/notifications-mail.md): 20 pertanyaan, Mid-Level - [File Storage](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/file-storage.md): 18 pertanyaan, Mid-Level - [Testing & PHPUnit](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/testing-phpunit.md): 24 pertanyaan, Mid-Level - [Caching](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/caching.md): 18 pertanyaan, Mid-Level - [Livewire & Inertia](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/livewire-inertia.md): 20 pertanyaan, Mid-Level - [Eloquent Advanced](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/eloquent-advanced.md): 24 pertanyaan, Senior - [Laravel Packages](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-packages.md): 20 pertanyaan, Senior - [Performance Optimization](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/performance-optimization.md): 22 pertanyaan, Senior - [Security Best Practices](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/security-best-practices.md): 22 pertanyaan, Senior - [Laravel Octane](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-octane.md): 18 pertanyaan, Senior - [Laravel Distributed Systems](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-distributed-systems.md): 22 pertanyaan, Senior - [Observability & Monitoring](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/observability-monitoring.md): 20 pertanyaan, Senior - [Deployment & DevOps](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/deployment-devops.md): 20 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/repository-pattern