# Codable & Parsing JSON (iOS) > Protokol Codable, JSONEncoder, JSONDecoder, kunci kustom, JSON bersarang, strategi tanggal - 20 pertanyaan wawancara - Mid-Level - [Pertanyaan Wawancara: iOS](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara.md) ## 1. Apa itu protokol Codable di Swift? **Jawaban** Codable adalah typealias yang menggabungkan Encodable dan Decodable. Ia memungkinkan serialisasi dan deserialisasi struktur Swift ke/dari JSON atau format lain. Ini adalah mekanisme standar untuk menangani JSON di iOS tanpa framework eksternal. ## 2. Apa perbedaan antara Encodable dan Decodable? **Jawaban** Encodable menserialisasi instance Swift menjadi data JSON (objek ke JSON). Decodable melakukan operasi kebalikannya, mengonversi JSON menjadi instance Swift. Protokol-protokol ini bersifat ortogonal: sebuah struct dapat mengimplementasikan salah satunya, yang lain, atau keduanya sesuai kebutuhan. ## 3. Apa kegunaan enum CodingKeys saat decoding JSON? **Jawaban** CodingKeys memetakan properti Swift ke kunci JSON yang sebenarnya. Ia menangani ketidakcocokan penamaan antara kode Swift (camelCase) dan JSON (snake_case). Tanpa CodingKeys, nama properti harus sama persis dengan kunci JSON. ## 17 pertanyaan lagi tersedia - Bagaimana cara membuat instance JSONDecoder untuk decoding JSON? - Apa yang dikembalikan JSONEncoder.encode() setelah serialisasi berhasil? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara iOS lainnya - [Dasar-Dasar Swift](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swift-basics.md): 25 pertanyaan, Junior - [Dasar-Dasar Bahasa Swift](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swift-language-essentials.md): 15 pertanyaan, Junior - [Dasar-Dasar UIKit](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/uikit-fundamentals.md): 18 pertanyaan, Junior - [Siklus Hidup UIViewController](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/uiviewcontroller-lifecycle.md): 20 pertanyaan, Junior - [UserDefaults & Keychain](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/userdefaults-keychain.md): 20 pertanyaan, Junior - [Siklus Hidup Aplikasi](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/app-lifecycle.md): 20 pertanyaan, Junior - [Auto Layout & Constraints](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/auto-layout-constraints.md): 24 pertanyaan, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/uitableview-uicollectionview.md): 25 pertanyaan, Mid-Level - [Dasar-Dasar SwiftUI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-basics.md): 18 pertanyaan, Mid-Level - [Manajemen State SwiftUI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-state-management.md): 22 pertanyaan, Mid-Level - [Navigasi SwiftUI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-navigation.md): 18 pertanyaan, Mid-Level - [Networking & URLSession](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/networking-urlsession.md): 20 pertanyaan, Mid-Level - [Core Data](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/core-data.md): 22 pertanyaan, Mid-Level - [Pemrograman Berorientasi Protokol](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/protocol-oriented-programming.md): 20 pertanyaan, Mid-Level - [Arsitektur MVVM](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/mvvm-architecture.md): 20 pertanyaan, Mid-Level - [Notifikasi Push](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/push-notifications.md): 18 pertanyaan, Mid-Level - [Unit Testing & XCTest](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/unit-testing-xctest.md): 20 pertanyaan, Mid-Level - [Pengujian UI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/ui-testing.md): 18 pertanyaan, Mid-Level - [Xcode & Sistem Build](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/xcode-build-system.md): 16 pertanyaan, Mid-Level - [Swift Package Manager](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swift-package-manager.md): 16 pertanyaan, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/memory-management-arc.md): 22 pertanyaan, Senior - [Combine Framework](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/combine-framework.md): 24 pertanyaan, Senior - [Concurrency & async/await](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/concurrency-async-await.md): 26 pertanyaan, Senior - [iOS Design Patterns](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/ios-design-patterns.md): 24 pertanyaan, Senior - [Optimasi Performa](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/performance-optimization.md): 22 pertanyaan, Senior - [Keamanan dan Enkripsi](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/security-encryption.md): 20 pertanyaan, Senior - [SwiftUI Advanced](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-advanced.md): 22 pertanyaan, Senior - [Arsitektur Aplikasi iOS](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/ios-app-architecture.md): 22 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/codable-json-parsing