Spaces:
Sleeping
Sleeping
| [ | |
| { | |
| "role_name": "AI Engineer", | |
| "description": "Profesional yang membangun dan mengoptimalkan model AI.", | |
| "sub_skills": [ | |
| { | |
| "id": "python_data_science", | |
| "name": "Python for Data Science", | |
| "levels": { | |
| "beginner": { | |
| "description": "Memahami sintaks dasar Python dan struktur data.", | |
| "exam_topics": [ | |
| "Variables", | |
| "Data Types", | |
| "List/Dictionary", | |
| "Control Flow" | |
| ], | |
| "recommendation": { | |
| "course_name": "Memulai Pemrograman dengan Python", | |
| "specific_chapters": [ | |
| "Variable dan Assignment", | |
| "Tipe Data", | |
| "Kuis Coding: Variabel dan Assignment" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Mampu menggunakan fungsi, loop kompleks, dan OOP dasar.", | |
| "exam_topics": [ | |
| "Functions", | |
| "Loops", | |
| "Object-Oriented Programming (OOP)" | |
| ], | |
| "recommendation": { | |
| "course_name": "Memulai Pemrograman dengan Python", | |
| "specific_chapters": [ | |
| "Fungsi", | |
| "Perulangan", | |
| "Pengenalan Kelas", | |
| "Kuis Object-Oriented Programming (OOP)" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Menguasai library data, unit testing, dan style guide.", | |
| "exam_topics": [ | |
| "Unit Testing", | |
| "Matriks", | |
| "Library Pengolahan Data" | |
| ], | |
| "recommendation": { | |
| "course_name": "Memulai Pemrograman dengan Python", | |
| "specific_chapters": [ | |
| "Pengantar Unit Testing", | |
| "Implementasi Matriks pada Python", | |
| "Library Machine Learning" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "ml_fundamentals", | |
| "name": "Machine Learning Fundamentals", | |
| "levels": { | |
| "beginner": { | |
| "description": "Paham konsep dasar AI, Machine Learning, dan Taksonomi.", | |
| "exam_topics": [ | |
| "AI Taxonomy", | |
| "Supervised vs Unsupervised", | |
| "Data Splitting" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar AI", | |
| "specific_chapters": [ | |
| "Taksonomi AI", | |
| "Tipe-Tipe Machine Learning", | |
| "Machine Learning Workflow" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Mampu menangani regresi, klasifikasi, dan data cleaning.", | |
| "exam_topics": [ | |
| "Linear Regression", | |
| "Decision Tree", | |
| "Handling Missing Value", | |
| "Overfitting" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Machine Learning untuk Pemula", | |
| "specific_chapters": [ | |
| "Rangkuman Supervised Learning - Regresi", | |
| "Decision Tree", | |
| "Penanganan Outlier", | |
| "Metode Deteksi Overfitting dan Underfitting" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Menguasai unsupervised learning, tuning, dan evaluasi model kompleks.", | |
| "exam_topics": [ | |
| "Clustering (K-Means/DBSCAN)", | |
| "Hyperparameter Tuning (Grid Search)", | |
| "Dimensionality Reduction (PCA)" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Machine Learning untuk Pemula", | |
| "specific_chapters": [ | |
| "K-Means Clustering", | |
| "DBSCAN", | |
| "Grid Search", | |
| "Dimensionality Reduction : LDA, PCA, dan t-SNE" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "computer_vision", | |
| "name": "Computer Vision", | |
| "levels": { | |
| "beginner": { | |
| "description": "Paham dasar CNN dan pengolahan citra sederhana.", | |
| "exam_topics": [ | |
| "CNN Architecture", | |
| "Convolutions", | |
| "Pooling", | |
| "Image Preprocessing" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Deep Learning", | |
| "specific_chapters": [ | |
| "Dasar-Dasar Convolutional Neural Networks (CNNs)", | |
| "Pembuatan Model Klasifikasi Gambar dengan CNN", | |
| "Image Generation" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Mampu melakukan Transfer Learning dan Object Detection dasar.", | |
| "exam_topics": [ | |
| "Transfer Learning", | |
| "Object Detection Concepts", | |
| "Dropout/Batch Normalization" | |
| ], | |
| "recommendation": { | |
| "course_name": "Machine Learning Terapan", | |
| "specific_chapters": [ | |
| "Pengenalan Transfer Learning", | |
| "Pengenalan Object Detection", | |
| "Teknik-teknik Object Detection" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Menguasai segmentasi gambar dan kustomisasi model visual.", | |
| "exam_topics": [ | |
| "Image Segmentation", | |
| "Advanced Object Detection", | |
| "Custom Loss for Vision" | |
| ], | |
| "recommendation": { | |
| "course_name": "Membangun Proyek Deep Learning Tingkat Mahir", | |
| "specific_chapters": [ | |
| "Image Segmentation dengan Deep Learning", | |
| "Klasifikasi Gambar Lanjutan", | |
| "Berkenalan dengan Object Detection" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "nlp", | |
| "name": "Natural Language Processing (NLP)", | |
| "levels": { | |
| "beginner": { | |
| "description": "Dasar pemrosesan teks, tokenisasi, dan klasifikasi teks sederhana.", | |
| "exam_topics": [ | |
| "Tokenization", | |
| "Text Cleaning", | |
| "Binary Classification" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Deep Learning", | |
| "specific_chapters": [ | |
| "Pengenalan Natural Language Processing", | |
| "Latihan Pra-pemrosesan Teks", | |
| "Binary vs Multiclass vs Multilabel Classification pada Text" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Memahami RNN, LSTM, dan Analisis Sentimen.", | |
| "exam_topics": [ | |
| "RNN", | |
| "LSTM", | |
| "Sentiment Analysis", | |
| "Word Embeddings" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Deep Learning", | |
| "specific_chapters": [ | |
| "Pengenalan Recurrent Neural Network", | |
| "Algoritma RNN", | |
| "Proyek Analisis Sentimen" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Menguasai Transformers, Attention Mechanism, dan NLU lanjutan.", | |
| "exam_topics": [ | |
| "Transformers", | |
| "Attention Mechanism", | |
| "Sequence to Sequence", | |
| "IndoNLU" | |
| ], | |
| "recommendation": { | |
| "course_name": "Membangun Proyek Deep Learning Tingkat Mahir", | |
| "specific_chapters": [ | |
| "Mengenal Transformer dalam NLP", | |
| "Latihan Membangun Model Transformer Milik Kita Sendiri", | |
| "Pengenalan IndoNLU" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "time_series", | |
| "name": "Time Series Analysis", | |
| "levels": { | |
| "beginner": { | |
| "description": "Konsep dasar data deret waktu dan preprocessing.", | |
| "exam_topics": [ | |
| "Time Series Basics", | |
| "Trend & Seasonality", | |
| "Data Splitting for Time Series" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Deep Learning", | |
| "specific_chapters": [ | |
| "Pengenalan Time Series", | |
| "Data Preprocessing untuk Time Series", | |
| "Tipe-Tipe Time Series" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Membuat model forecasting menggunakan LSTM.", | |
| "exam_topics": [ | |
| "LSTM for Time Series", | |
| "Windowing", | |
| "MAE/Huber Loss" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Deep Learning", | |
| "specific_chapters": [ | |
| "Machine Learning pada Time Series", | |
| "Proyek Kedua : Membuat Model Machine Learning dengan Data Time Series" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Analisis Time Series tingkat lanjut dengan kustomisasi.", | |
| "exam_topics": [ | |
| "Advanced Preprocessing", | |
| "Custom Model for Time Series" | |
| ], | |
| "recommendation": { | |
| "course_name": "Membangun Proyek Deep Learning Tingkat Mahir", | |
| "specific_chapters": [ | |
| "Eksplorasi Data dalam Time Series", | |
| "Data Preprocessing Lanjutan Untuk Time Series", | |
| "Latihan Custom Model... pada Time Series Model" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "recommender_system", | |
| "name": "Recommender Systems", | |
| "levels": { | |
| "beginner": { | |
| "description": "Memahami konsep Content-Based Filtering.", | |
| "exam_topics": [ | |
| "Content-Based Filtering", | |
| "TF-IDF", | |
| "Cosine Similarity" | |
| ], | |
| "recommendation": { | |
| "course_name": "Machine Learning Terapan", | |
| "specific_chapters": [ | |
| "Pengenalan Sistem Rekomendasi", | |
| "Content Based Filtering", | |
| "Feature Engineering dengan TF-IDF" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Memahami Collaborative Filtering.", | |
| "exam_topics": [ | |
| "Collaborative Filtering", | |
| "User-Item Matrix", | |
| "Embedding Layers" | |
| ], | |
| "recommendation": { | |
| "course_name": "Machine Learning Terapan", | |
| "specific_chapters": [ | |
| "Collaborative Filtering", | |
| "Model Development dengan Collaborative Filtering" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Sistem rekomendasi Hybrid dan Neural Collaborative Filtering.", | |
| "exam_topics": [ | |
| "Hybrid Recommender", | |
| "Neural Collaborative Filtering", | |
| "TensorFlow Recommenders" | |
| ], | |
| "recommendation": { | |
| "course_name": "Membangun Proyek Deep Learning Tingkat Mahir", | |
| "specific_chapters": [ | |
| "Neural Collaborative Filtering", | |
| "Retrieval dalam Sistem Rekomendasi", | |
| "Hybrid Recommender System" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "mlops_deployment", | |
| "name": "MLOps & Deployment", | |
| "levels": { | |
| "beginner": { | |
| "description": "Menyimpan model dan penggunaan TF Lite.", | |
| "exam_topics": ["Saving Models (H5/SavedModel)", "TF Lite Basics"], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Deep Learning", | |
| "specific_chapters": [ | |
| "Format Penyimpanan Model", | |
| "Pengenalan TensorFlow Lite", | |
| "Latihan: Deploy Model ML Menggunakan TensorFlow Lite" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Deployment web (TFJS) dan Serving.", | |
| "exam_topics": ["TensorFlow.js", "TF Serving", "Model Conversion"], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Deep Learning", | |
| "specific_chapters": [ | |
| "Pengenalan TensorFlow.js", | |
| "Pengenalan TensorFlow Serving", | |
| "Latihan: Deploy Model ML Menggunakan TensorFlow.js" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Distributed training dan kustomisasi loop training.", | |
| "exam_topics": [ | |
| "Distributed Training", | |
| "Custom Training Loops", | |
| "TensorFlow Extended (TFX) concepts" | |
| ], | |
| "recommendation": { | |
| "course_name": "Membangun Proyek Deep Learning Tingkat Mahir", | |
| "specific_chapters": [ | |
| "Strategi Distributed Training dengan TensorFlow", | |
| "Custom Training Loop", | |
| "Reproducibility dalam TensorFlow" | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "role_name": "Front-End Web Developer", | |
| "description": "Pengembang yang fokus pada antarmuka visual dan interaksi pengguna di browser.", | |
| "sub_skills": [ | |
| { | |
| "id": "html_css_fundamentals", | |
| "name": "HTML & CSS Fundamentals", | |
| "levels": { | |
| "beginner": { | |
| "description": "Struktur dasar HTML5 dan styling CSS dasar.", | |
| "exam_topics": [ | |
| "Semantic HTML", | |
| "Box Model", | |
| "Selectors", | |
| "Text Styling" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar Pemrograman Web", | |
| "specific_chapters": [ | |
| "Semantic HTML: Header, Footer, Main, dan Nav", | |
| "Box Model", | |
| "Selector Dasar" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Layouting modern dengan Flexbox dan Positioning.", | |
| "exam_topics": [ | |
| "Flexbox", | |
| "Positioning (Relative/Absolute)", | |
| "Floats" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar Pemrograman Web", | |
| "specific_chapters": [ | |
| "Pengantar Flexbox", | |
| "Positioning", | |
| "Latihan: Implementasi Flexbox pada Halaman Profil" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Layout Grid kompleks dan Desain Responsif.", | |
| "exam_topics": ["CSS Grid", "Media Queries", "Responsive Design"], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Front-End Web Development", | |
| "specific_chapters": [ | |
| "Pengantar CSS Grid", | |
| "Grid Container dan Grid Item", | |
| "Media Query", | |
| "Responsive Layout" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "javascript_core", | |
| "name": "JavaScript Core Logic", | |
| "levels": { | |
| "beginner": { | |
| "description": "Sintaks dasar JS, tipe data, dan logika dasar.", | |
| "exam_topics": [ | |
| "Variables", | |
| "Data Types", | |
| "Operators", | |
| "Functions" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar Pemrograman JavaScript", | |
| "specific_chapters": [ | |
| "Variabel", | |
| "Tipe Data", | |
| "Logika Operator dan If Else", | |
| "Function" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Manipulasi struktur data dan OOP dasar.", | |
| "exam_topics": ["Arrays", "Objects", "Map/Set", "Basic OOP"], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar Pemrograman JavaScript", | |
| "specific_chapters": [ | |
| "Menstrukturkan Data dengan Object", | |
| "Array", | |
| "Map", | |
| "Pengenalan OOP" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Konsep ES6+, Functional Programming, dan Module.", | |
| "exam_topics": [ | |
| "ES6 Modules", | |
| "Arrow Functions", | |
| "Higher Order Functions", | |
| "Destructuring" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar Pemrograman JavaScript", | |
| "specific_chapters": [ | |
| "ES6 Module", | |
| "Arrow Function", | |
| "Destructuring Object & Array", | |
| "Functional Programming" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "dom_events", | |
| "name": "DOM Manipulation & Interactivity", | |
| "levels": { | |
| "beginner": { | |
| "description": "Memilih elemen dan event dasar.", | |
| "exam_topics": [ | |
| "getElementById/querySelector", | |
| "Click Events", | |
| "Basic DOM Manipulation" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Membuat Front-End Web untuk Pemula", | |
| "specific_chapters": [ | |
| "Mencari DOM", | |
| "Manipulasi Konten Melalui innerText", | |
| "Menambahkan Event Handler" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Event bubbling, form handling, dan membuat elemen dinamis.", | |
| "exam_topics": [ | |
| "Event Bubbling", | |
| "Form Events", | |
| "Creating Elements" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Membuat Front-End Web untuk Pemula", | |
| "specific_chapters": [ | |
| "Event Bubbling dan Capturing", | |
| "Form Event", | |
| "Membuat Elemen HTML" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Web Storage (Local/Session) dan Custom Events.", | |
| "exam_topics": [ | |
| "LocalStorage", | |
| "SessionStorage", | |
| "JSON Parsing", | |
| "Custom Events" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Membuat Front-End Web untuk Pemula", | |
| "specific_chapters": [ | |
| "Pengertian dan Fungsi Web Storage", | |
| "Implementasi Web Storage", | |
| "Custom Event" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "async_api", | |
| "name": "Asynchronous & API", | |
| "levels": { | |
| "beginner": { | |
| "description": "Konsep dasar Async dan Callback.", | |
| "exam_topics": [ | |
| "Synchronous vs Asynchronous", | |
| "Callbacks", | |
| "setTimeout" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar Pemrograman JavaScript", | |
| "specific_chapters": [ | |
| "Apa Itu Asynchronous Process", | |
| "Penanganan dengan Callback", | |
| "setTimeout" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Promise dan Fetch API dasar.", | |
| "exam_topics": ["Promise", "Fetch API Basics", "JSON Data"], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Front-End Web Development", | |
| "specific_chapters": [ | |
| "Promise", | |
| "Dasar Penggunaan Fetch", | |
| "Mengonsumsi Data API" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Async/Await, Error Handling, dan Chaining.", | |
| "exam_topics": [ | |
| "Async/Await", | |
| "Try/Catch", | |
| "Promise.all", | |
| "Chaining" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Front-End Web Development", | |
| "specific_chapters": [ | |
| "Sintaks Async/Await", | |
| "Error Handling pada Async", | |
| "Promise Berantai" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "web_components", | |
| "name": "Front-End Architecture (Web Components)", | |
| "levels": { | |
| "beginner": { | |
| "description": "Konsep dasar Custom Elements.", | |
| "exam_topics": ["Custom Elements", "HTMLElement Class"], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Front-End Web Development", | |
| "specific_chapters": [ | |
| "Apa Itu Web Component", | |
| "Basic Custom Element" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Shadow DOM dan Template.", | |
| "exam_topics": ["Shadow DOM", "Templates", "Encapsulation"], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Front-End Web Development", | |
| "specific_chapters": [ | |
| "Pengantar Shadow DOM", | |
| "Shadow DOM untuk Web Component" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Lifecycle Callbacks dan Slots.", | |
| "exam_topics": [ | |
| "connectedCallback", | |
| "attributeChangedCallback", | |
| "Slots" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Fundamental Front-End Web Development", | |
| "specific_chapters": [ | |
| "Siklus Hidup (Lifecycle)", | |
| "Fleksibel dengan Slot Element" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "pwa_performance", | |
| "name": "PWA & Performance Optimization", | |
| "levels": { | |
| "beginner": { | |
| "description": "Dasar PWA dan Manifest.", | |
| "exam_topics": ["Web App Manifest", "Service Worker Basics"], | |
| "recommendation": { | |
| "course_name": "Belajar Pengembangan Web Intermediate", | |
| "specific_chapters": [ | |
| "Pengenalan Progressive Web Apps", | |
| "Web App Manifest", | |
| "Registrasi Service Worker" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Caching dan Workbox.", | |
| "exam_topics": [ | |
| "Cache API", | |
| "Workbox", | |
| "Caching Strategies (StaleWhileRevalidate)" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Pengembangan Web Intermediate", | |
| "specific_chapters": [ | |
| "Workbox Precaching", | |
| "Caching Strategies", | |
| "Latihan: Offline Capability dengan Workbox" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "Optimasi performa, Lazy Loading, dan Web Vitals.", | |
| "exam_topics": [ | |
| "Image Optimization", | |
| "Lazy Loading", | |
| "Web Vitals (LCP, FID, CLS)", | |
| "Bundle Analyzer" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Pengembangan Web Intermediate", | |
| "specific_chapters": [ | |
| "Image Optimization", | |
| "Menggunakan Lazy Loading Image", | |
| "Web Vitals", | |
| "Bundle Analyzer" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "testing_automation", | |
| "name": "Testing & Automation", | |
| "levels": { | |
| "beginner": { | |
| "description": "Dasar pengujian manual dan konsep testing.", | |
| "exam_topics": [ | |
| "Why Testing?", | |
| "Manual vs Automated", | |
| "Types of Testing" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Dasar Pemrograman JavaScript", | |
| "specific_chapters": [ | |
| "Pengenalan JavaScript Testing", | |
| "Pengujian Program" | |
| ] | |
| } | |
| }, | |
| "intermediate": { | |
| "description": "Unit Testing dan Integration Testing.", | |
| "exam_topics": [ | |
| "Jest", | |
| "Unit Testing", | |
| "Integration Testing", | |
| "TDD" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Pengembangan Web Intermediate", | |
| "specific_chapters": [ | |
| "TDD Menggunakan Jest", | |
| "Framework Automation Testing", | |
| "Menulis Kode Pengujian" | |
| ] | |
| } | |
| }, | |
| "advanced": { | |
| "description": "E2E Testing dan CI/CD.", | |
| "exam_topics": [ | |
| "End-to-End Testing", | |
| "CI/CD Concepts", | |
| "GitHub Actions" | |
| ], | |
| "recommendation": { | |
| "course_name": "Belajar Pengembangan Web Intermediate", | |
| "specific_chapters": [ | |
| "Kasus 5: End-to-End Testing", | |
| "Pendahuluan Continuous Integration & Continuous Deployment", | |
| "Latihan: Membuat CI Pipeline menggunakan GitHub Action" | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| ] | |
| } | |
| ] | |