Lewati ke konten utama
pelatihan
.org
Belajar. Praktik. Berkembang.
Kategori
ID
Masuk
Daftar
Menu
Kurikulum Node.js: 15 Bab, 109 Lesson — pelatihan.org
Beranda
/
Katalog
/
Node.js
/
Kurikulum
Kurikulum
Kurikulum Node.js
Belajar Node.js online lewat 109 lesson terstruktur, contoh kode, dan 545 soal kuis.
109 lesson
15 bab
545 soal
Ringkasan dan poin kunci bisa dilihat gratis. Materi lengkap, contoh kode, dan kuis memerlukan langganan.
01
Node.js Tutorial
9 lesson
01
Node HOME
Node.js adalah runtime JavaScript yang memungkinkan kode JS berjalan di luar browser, khususnya di sisi server. Halaman ini menjadi gerbang utama materi Node.js: mulai dari…
02
Node Intro
Node.js dibuat Ryan Dahl pada 2009 dengan memanfaatkan mesin V8 dari Google Chrome sehingga JavaScript bisa berjalan di server. Ia bersifat open source, cross-platform, dan…
03
Node Get Started
Untuk memulai Node.js kamu cukup menginstalnya dari situs resmi, lalu menjalankan file JavaScript lewat perintah node di terminal. Skrip yang sama bisa dieksekusi langsung tanpa…
04
Node JS Requirements
Untuk belajar Node.js kamu hanya perlu memahami dasar JavaScript: variabel, function, array, object, dan konsep asynchronous. Pengetahuan tambahan tentang terminal, HTTP, dan…
05
Node.js vs Browser
Node.js dan browser keduanya menjalankan JavaScript, tetapi lingkungannya sangat berbeda. Di browser tersedia DOM, window, dan event dari pengguna, sedangkan Node menyediakan…
06
Node Cmd Line
Node.js menyediakan sejumlah flag command line untuk mengontrol cara skrip dijalankan, seperti mengevaluasi kode langsung, mengaktifkan watch mode, atau membuka debugger.…
07
Node V8 Engine
V8 adalah mesin JavaScript open source dari Google yang menjadi jantung Node.js. V8 mengubah kode JavaScript menjadi bytecode lalu mengoptimalkannya menjadi native code melalui…
08
Node Architecture
Arsitektur Node.js memakai pola single-threaded event loop untuk menangani banyak koneksi sekaligus tanpa membuat thread baru per request. Sementara operasi blocking seperti baca…
09
Node Event Loop
Event loop adalah mekanisme yang membuat Node.js bisa menangani banyak operasi asynchronous dalam satu thread. Ia terus berputar mengecek antrean tugas: mulai dari timer, I/O…
02
Asynchronous
4 lesson
01
Node Async
Asynchronous programming memungkinkan Node menyelesaikan operasi berat seperti membaca file tanpa memblokir thread utama. Konsep ini diwakili oleh callback, yaitu fungsi yang…
02
Node Promises
Promise adalah objek yang mewakili nilai yang belum tersedia di masa depan: pending, fulfilled, atau rejected. Dengan Promise, rantai operasi asynchronous bisa ditulis lebih rapi…
03
Node Async/Await
Async/await adalah sintaks di atas Promise yang membuat kode asynchronous terlihat seperti kode synchronous tanpa mengorbankan sifat non-blocking. Function async selalu…
04
Node Errors Handling
Node.js menyediakan berbagai strategi untuk menangani error, mulai dari callback error-first, try/catch untuk Promise, sampai handler uncaughtException sebagai jaring pengaman…
03
Module Basics
7 lesson
01
Node Modules
Node.js memecah kode menjadi modul-modul kecil yang bisa dipakai ulang. Modul adalah file JavaScript yang mengekspor fungsi, objek, atau nilai melalui module.exports. Dengan pola…
02
Node ES Modules
Selain CommonJS, Node.js juga mendukung ES Modules yang menjadi standar modern JavaScript. Modul ESM dideklarasikan dengan import dan export, dan aktif ketika file berekstensi…
03
Node NPM
NPM (Node Package Manager) adalah pengelola paket resmi yang memudahkan instalasi, pembaruan, dan publikasi library JavaScript. Dengan NPM, kamu tidak perlu menulis ulang fitur…
04
Node package.json
package.json adalah pusat konfigurasi proyek Node.js: berisi metadata, dependensi, dan skrip yang bisa dijalankan. Berkas ini membuat proyek mudah dibagikan karena orang lain…
05
Node NPM Scripts
NPM scripts memungkinkan kamu menjalankan perintah panjang lewat alias pendek di package.json. Kamu bisa membuat skrip start, test, build, atau dev yang memanggil tool lain…
06
Node Manage Dep
Mengelola dependensi berarti mengontrol paket yang dibutuhkan proyek beserta versinya agar tetap konsisten di semua mesin. NPM menggunakan pendekatan semver dengan prefix ^ dan ~…
07
Node Publish Packages
NPM memungkinkan kamu mempublikasikan library buatan sendiri agar bisa dipakai orang lain melalui npm install. Sebelum menerbitkan, lengkapi package.json dengan nama unik, versi,…
04
Core Modules
15 lesson
01
HTTP Module
Modul http bawaan Node memungkinkan membuat server HTTP tanpa framework tambahan. Kamu membuat server dengan createServer, lalu menangani setiap request dan response di dalam…
02
HTTPS Module
Modul https menyediakan kemampuan membuat server dan client yang terenkripsi TLS/SSL, penting untuk keamanan data di internet. Penggunaannya sangat mirip dengan modul http, hanya…
03
File System (fs)
Modul fs Node.js menyediakan API untuk membaca, menulis, mengubah, dan menghapus file maupun folder di disk. Tersedia dua gaya: asynchronous yang tidak memblokir event loop dan…
04
Path Module
Modul path menyediakan utilitas untuk manipulasi string path file secara aman lintas platform. Fungsi join, resolve, dan normalize membantu menyusun path tanpa khawatir perbedaan…
05
OS Module
Modul os menyalurkan informasi tentang sistem operasi tempat Node berjalan, seperti platform, arsitektur CPU, total memori, dan uptime. Data ini berguna untuk logging,…
06
URL Module
Modul url Node.js dan global URL bawaan memudahkan parsing serta manipulasi alamat web menjadi komponen seperti protocol, host, pathname, dan query. Kemampuan ini penting ketika…
07
Events Module
Modul events menyediakan kelas EventEmitter, fondasi pola event-driven di Node.js. Kamu bisa memancarkan event dengan emit dan mendengarkannya lewat on atau once. Hampir seluruh…
08
Stream Module
Stream memungkinkan data diproses sebagian demi sebagian sehingga file besar atau data jaringan tidak perlu dimuat seluruhnya ke memori. Node menyediakan empat jenis stream:…
09
Buffer Module
Buffer adalah kelas untuk merepresentasikan data biner mentah dalam memori, seperti isi file gambar atau paket jaringan. JavaScript tidak punya tipe biner bawaan, sehingga Buffer…
10
Crypto Module
Modul crypto menyediakan kemampuan kriptografi bawaan seperti hashing, enkripsi, dekripsi, dan pembuatan nilai acak. Kamu bisa membuat hash SHA-256 untuk verifikasi integritas…
11
Timers Module
Modul timers menyediakan penjadwal eksekusi kode seperti setTimeout, setInterval, dan setImmediate. Timer bisa dijadwalkan, dibatalkan dengan clear, dan digabungkan dengan unref…
12
DNS Module
Modul dns menyediakan akses ke DNS resolver sistem untuk menerjemahkan nama domain menjadi alamat IP dan sebaliknya. Fungsi dns.lookup digunakan ketika aplikasi perlu mengetahui…
13
Assert Module
Modul assert menyediakan fungsi assertion sederhana untuk memverifikasi bahwa suatu kondisi benar saat pengujian. Jika kondisi ternyata salah, assertion akan melempar…
14
Util Module
Modul util menyediakan berbagai helper yang sering dibutuhkan saat mengembangkan aplikasi Node. Fitur utamanya adalah promisify untuk mengubah callback API menjadi Promise,…
15
Readline Module
Modul readline memungkinkan membaca input baris demi baris dari stream seperti stdin, terminal, atau file. Kamu bisa membangun prompt interaktif, menu CLI, atau membaca file…
05
JS & TS Features
5 lesson
01
Node ES6+
Node.js modern mendukung fitur JavaScript ES6 ke atas seperti arrow function, template literal, destructuring, class, dan spread operator. Kemampuan ini membuat kode lebih…
02
Node Process
Objek process global berisi informasi dan kontrol atas proses Node yang sedang berjalan. Melalui process kamu bisa membaca environment variable, argumen command line, mengatur…
03
Node TypeScript
TypeScript bisa langsung dipakai di proyek Node.js melalui kompilator tsc atau loader modern seperti tsx. Dengan tipe data statis, kesalahan seperti salah nama properti…
04
Node Adv. TypeScript
TypeScript tingkat lanjut untuk Node mencakup generic, type guard, utility type, dan dekorator untuk membangun API yang aman dan mudah dirawat. Kemampuan ini memungkinkan kamu…
05
Node Lint & Formatting
Linting dan formatting menjaga kualitas serta konsistensi kode di seluruh tim. ESLint mendeteksi pola berisiko seperti variabel tak terpakai, sedangkan Prettier menyeragamkan…
06
Building Applications
6 lesson
01
Node Frameworks
Framework web Node.js mempercepat pengembangan dengan menyediakan struktur routing, middleware, dan integrasi bawaan. Express tetap paling populer, sementara Fastify, Koa, dan…
02
Express.js
Express adalah framework ringan di atas modul http yang memudahkan pemetaan route, penanganan request, dan penggunaan middleware. Kamu bisa membuat REST API hanya dengan beberapa…
03
Middleware Concept
Middleware adalah fungsi yang dieksekusi berurutan pada setiap request sebelum sampai ke handler akhir. Setiap middleware menerima req, res, dan next sehingga bisa melakukan…
04
REST API Design
REST API adalah kontrak berbasis HTTP untuk operasi CRUD pada resource: GET untuk membaca, POST untuk membuat, PUT/PATCH untuk memperbarui, dan DELETE untuk menghapus. Endpoint…
05
API Authentication
Autentikasi API memverifikasi identitas klien, sedangkan otorisasi menentukan apa yang boleh diakses setelah login. Metode yang umum dipakai adalah Basic Auth, API Key, dan JWT…
06
Node.js with Frontend
Node.js umumnya menjadi backend yang melayani data berupa JSON, sementara frontend membangun antarmuka dengan HTML, CSS, dan framework seperti React atau Vue. Saat dikembangkan,…
07
Database Integration
24 lesson
01
MySQL Get Started
Node.js dapat terhubung ke MySQL menggunakan paket seperti mysql2 yang mendukung callback maupun Promise. Setelah koneksi dibuat dengan kredensial yang tepat, kamu bisa…
02
MySQL Create Database
Sebelum menyimpan data, sebuah database harus dibuat terlebih dahulu, baik lewat mysql CLI maupun dari skrip Node. Setelah database tersedia, langkah berikutnya adalah memilihnya…
03
MySQL Create Table
Table menyimpan data dalam baris dan kolom dengan tipe data yang telah ditentukan. Perintah CREATE TABLE mendefinisikan kolom beserta tipe dan batasannya, termasuk primary key…
04
MySQL Insert Into
INSERT INTO menambahkan baris baru ke tabel, baik satu baris maupun banyak sekaligus. Untuk aplikasi web, gunakan parameterized query agar nilai pengguna tidak menyisipkan SQL…
05
MySQL Select From
SELECT dipakai membaca data dari satu atau beberapa tabel, lengkap dengan klausa seperti SELECT, FROM, dan pilihan kolom. Kamu bisa memilih kolom tertentu, menghitung jumlah…
06
MySQL Where
Klausa WHERE menyaring baris agar hanya yang memenuhi kondisi tertentu yang diambil, diubah, atau dihapus. Operator perbandingan seperti =, >, LIKE, dan IN membuat filter lebih…
07
MySQL Order By
ORDER BY mengurutkan hasil query berdasarkan satu atau lebih kolom, baik menaik (ASC) maupun menurun (DESC). Pengurutan ini penting untuk daftar yang ditampilkan ke pengguna,…
08
MySQL Delete
Perintah DELETE menghapus baris dari tabel berdasarkan kondisi WHERE yang kamu tentukan. Tanpa WHERE, seluruh baris ikut terhapus sehingga harus ditulis dengan sangat hati-hati.…
09
MySQL Drop Table
DROP TABLE menghapus sebuah tabel beserta seluruh struktur dan datanya secara permanen, sehingga berbeda dengan DELETE yang hanya menghapus baris. Perintah ini bersifat…
10
MySQL Update
Pelajaran ini menjelaskan cara memperbarui data di database MySQL dari aplikasi Node.js memakai modul mysql2. Kamu akan memakai perintah SQL UPDATE dengan parameter binding agar…
11
MySQL Limit
Pelajaran ini membahas klausa LIMIT pada kueri MySQL di Node.js untuk membatasi jumlah baris hasil. LIMIT sangat penting saat menampilkan daftar data agar tidak membanjiri memori…
12
MySQL Join
Pelajaran ini menunjukkan cara menggabungkan banyak tabel dengan JOIN dalam kueri MySQL dari Node.js. Dengan JOIN, data pelanggan dan pesanan mereka bisa dibaca dalam satu query…
13
MongoDB Get Started
Pelajaran ini memperkenalkan MongoDB untuk pengembang Node.js: basis data NoSQL berbasis dokumen yang menyimpan data dalam format JSON mirip JavaScript. Kamu belajar memasang…
14
MongoDB Create DB
Pelajaran ini menjelaskan cara membuat dan memilih database MongoDB dari Node.js dengan client.db(nama). Perlu diingat, database di MongoDB bersifat lazy: nama baru benar-benar…
15
MongoDB Collection
Pelajaran ini membahas collection sebagai wadah dokumen di MongoDB, setara tabel pada RDBMS namun tanpa skema ketat. Kamu belajar membuat collection eksplisit dengan…
16
MongoDB Insert
Pelajaran ini mengajarkan cara menambahkan dokumen ke collection MongoDB dari Node.js menggunakan insertOne dan insertMany. Setiap dokumen yang disimpan otomatis mendapat _id…
17
MongoDB Find
Pelajaran ini membahas pembacaan data MongoDB dari Node.js dengan find(), find().findOne(), dan pengubahan hasil ke array. Cursor mendukung chaining seperti sort(), limit(), dan…
18
MongoDB Query
Pelajaran ini memperdalam kemampuan menyaring data MongoDB dengan query operator seperti $gt, $lt, $in, dan $or. Kamu akan memadukan beberapa kondisi dalam satu filter untuk…
19
MongoDB Sort
Pelajaran ini menjelaskan pengurutan hasil kueri MongoDB dari Node.js memakai method sort(). Kamu dapat mengurutkan berdasarkan satu atau banyak kolom dengan nilai 1 untuk…
20
MongoDB Delete
Pelajaran ini mengajarkan penghapusan dokumen MongoDB dari Node.js dengan deleteOne dan deleteMany. Kamu belajar membentuk filter agar menghapus hanya dokumen yang dituju, serta…
21
MongoDB Drop Collection
Pelajaran ini menjelaskan cara menghapus collection MongoDB secara utuh lewat drop() atau db.dropCollection(nama). Drop menghapus seluruh dokumen, index, dan definisi collection…
22
MongoDB Update
Pelajaran ini mengajarkan pembaruan dokumen MongoDB dari Node.js dengan updateOne, updateMany, dan replaceOne. Kamu memakai operator seperti $set, $inc, dan $push untuk mengubah…
23
MongoDB Limit
Pelajaran ini membahas pembatasan jumlah hasil kueri MongoDB memakai limit() dan skip() pada cursor find. Dengan pola (halaman-1)*limit kamu bisa membangun pagination yang hemat…
24
MongoDB Join
Pelajaran ini memperkenalkan $lookup, cara MongoDB menggabungkan collection mirip JOIN pada SQL. Kamu akan menarik data pesanan beserta profil penggunanya dalam satu pipeline…
08
Advanced Communication
3 lesson
01
GraphQL
Pelajaran ini memperkenalkan GraphQL dalam ekosistem Node.js: bahasa kueri tempat klien meminta persis data yang dibutuhkan dari sebuah endpoint. Kamu belajar mendefinisikan…
02
Socket.IO
Pelajaran ini membahas Socket.IO, pustaka komunikasi dua arah (real-time) berbasis WebSocket untuk aplikasi Node.js. Kamu akan membuat server dengan http.createServer lalu…
03
WebSockets
Pelajaran ini menjelaskan WebSocket, protokol komunikasi dua arah lewat satu koneksi TCP yang tetap terbuka. Kamu akan memahami perbedaannya dengan polling HTTP dan melihat cara…
09
Testing & Debugging
4 lesson
01
Node Adv. Debugging
Pelajaran ini membahas teknik debugging tingkat lanjut di Node.js seperti memakai inspector bawaan, breakpoint terprogram, dan inspect lewat berbagai transport. Kamu akan belajar…
02
Node Testing Apps
Pelajaran ini menjelaskan mengapa pengujian penting pada aplikasi Node.js dan bagaimana memulainya. Kamu akan mempelajari tiga tingkat utama: unit test, integration test, dan…
03
Node Test Frameworks
Pelajaran ini membandingkan framework pengujian populer untuk Node.js seperti Jest, Mocha, Jasmine, dan Ava. Kamu akan memahami fitur yang dibawa masing-masing: Jest hadir…
04
Node Test Runner
Pelajaran ini membahas test runner bawaan Node.js, yaitu modul node:test yang tersedia sejak Node 18. Kamu bisa menulis test dengan require('node:test') dan assertion dengan…
10
Node.js Deployment
5 lesson
01
Node Env Variables
Pelajaran ini menjelaskan environment variables sebagai cara mengonfigurasi aplikasi Node.js dari luar kode. Kamu membaca nilai lewat process.env, misalnya PORT, DATABASE_URL,…
02
Node Dev vs Prod
Pelajaran ini menjelaskan perbedaan lingkungan development dan production pada aplikasi Node.js. Kamu akan memahami peran NODE_ENV, perbedaan tingkat log, error handling, dan…
03
Node CI/CD
Pelajaran ini memperkenalkan CI/CD untuk proyek Node.js: alur otomatis membangun, menguji, dan merilis aplikasi setiap kali ada perubahan kode. Kamu akan mempelajari konsep…
04
Node Security
Pelajaran ini membahas praktik keamanan aplikasi Node.js: dari dependensi, input validation, hingga proteksi header dan kredensial. Kamu akan memahami ancaman umum seperti…
05
Node Deployment
Pelajaran ini membahas strategi deployment aplikasi Node.js modern, mulai dari container Docker, platform PaaS seperti Railway/Render, sampai orchestrator Kubernetes. Kamu akan…
11
Perfomance & Scaling
6 lesson
01
Node Logging
Pelajaran ini membahas pencatatan log (logging) pada aplikasi Node.js, mulai dari console bawaan hingga pustaka seperti Winston dan Pino. Kamu akan belajar memilih level log…
02
Node Monitoring
Pelajaran ini menjelaskan monitoring dan observability aplikasi Node.js melalui tiga pilar: metrics, logs, dan traces. Kamu akan memahami konsep health check, application metrics…
03
Node Performance
Pelajaran ini membahas optimasi performa aplikasi Node.js: memahami event loop, menghindari pekerjaan blok di thread utama, dan memakai caching. Kamu juga belajar teknik…
04
Child Process Module
Pelajaran ini menjelaskan modul child_process untuk menjalankan proses luar dari Node.js, seperti perintah shell atau program lain. Kamu akan memakai spawn, exec, execFile, dan…
05
Cluster Module
Pelajaran ini membahas modul cluster yang memungkinkan satu aplikasi Node.js berjalan di banyak proses untuk memanfaatkan seluruh core CPU. Karena Node.js single-threaded per…
06
Worker Threads
Pelajaran ini membahas worker_threads, cara menjalankan kode CPU-bound di thread terpisah dalam satu proses Node.js. Berbeda dengan cluster, worker berbagi memori melalui…
12
Node.js Advanced
9 lesson
01
Microservices
Pelajaran ini menjelaskan penerapan pola mikroservis dengan Node.js: memecah aplikasi besar menjadi layanan kecil yang berkomunikasi lewat API atau pesan. Kamu akan mempelajari…
02
Node WebAssembly
Pelajaran ini memperkenalkan WebAssembly (Wasm) di lingkungan Node.js: menjalankan modul biner berperforma tinggi yang dikompilasi dari bahasa seperti C/C++ dan Rust. Node.js…
03
HTTP2 Module
Pelajaran ini membahas modul http2 bawaan Node.js yang mengimplementasikan protokol HTTP/2. Kamu akan memahami multiplexing, header compression (HPACK), dan server push yang…
04
Perf_hooks Module
Pelajaran ini membahas modul perf_hooks bawaan Node.js untuk mengukur performa kode dengan presisi tinggi. Kamu akan memakai performance.now() untuk timing singkat,…
05
VM Module
Pelajaran ini membahas modul vm (virtual machine) bawaan Node.js yang mengevaluasi kode JavaScript dalam konteks sandbox terbatas. Kamu akan memakai vm.runInNewContext dan…
06
TLS/SSL Module
Pelajaran ini membahas modul tls untuk membuat koneksi terenkripsi (HTTPS, FTPS, dan protokol aman lain) di Node.js. Kamu akan memahami konsep sertifikat, private key, dan TLS…
07
Net Module
Pelajaran ini membahas modul net untuk komunikasi jaringan level socket TCP di Node.js. Kamu akan membuat server TCP dan klien dengan net.createServer dan net.connect, lalu…
08
Zlib Module
Pelajaran ini membahas modul zlib untuk kompresi dan dekompresi data di Node.js, mendukung gzip, deflate, dan brotli. Kamu akan memakai metode sinkron maupun stream untuk…
09
Real-World Examples
Pelajaran ini merangkum contoh penerapan nyata Node.js: server REST API, aplikasi chat, scraper, layanan antrian tugas, dan lainnya. Setiap contoh menunjukkan kombinasi modul dan…
13
Hardware & IoT
8 lesson
01
RasPi Get Started
Pelajaran ini memperkenalkan Raspberry Pi sebagai perangkat untuk menjalankan aplikasi Node.js, khususnya proyek IoT dan home automation. Kamu akan memahami cara menyiapkan…
02
RasPi GPIO Introduction
Pelajaran ini memperkenalkan pemrograman GPIO dari Node.js, khususnya dengan pustaka onoff atau rpi-gpio. Kamu akan belajar menetapkan arah pin (in/out), menulis nilai HIGH/LOW,…
03
RasPi Blinking LED
Pelajaran ini memandu proyek paling klasik di Raspberry Pi: menyalakan dan mematikan LED berkedip (blink) dari Node.js. Kamu akan merangkai LED dengan resistor ke pin GPIO, lalu…
04
RasPi LED & Pushbutton
Pelajaran ini menggabungkan output dan input GPIO: LED yang menyala ketika tombol ditekan pada Raspberry Pi. Kamu akan mengonfigurasi satu pin sebagai input (tombol) dan satu pin…
05
RasPi Flowing LEDs
Pelajaran ini mengembangkan proyek LED menjadi efek 'mengalir' (flowing atau knight rider) yang menyapu beberapa LED berurutan. Kamu akan mempelajari pengaturan banyak pin lewat…
06
RasPi WebSocket
Pelajaran ini membangun aplikasi lengkap: web server di Raspberry Pi yang mengontrol GPIO melalui WebSocket sehingga status tombol/LED tampil real-time di browser. Kamu akan…
07
RasPi RGB LED WebSocket
Pelajaran ini mengembangkan proyek IoT menjadi LED RGB yang diubah warnanya dari browser lewat WebSocket. Kamu akan memahami cara menggabungkan tiga kanal merah, hijau, dan biru…
08
RasPi Components
Pelajaran ini mengenalkan komponen elektronika dasar yang lazim dipakai bersama Raspberry Pi, mulai dari resistor, LED, tombol, sensor suhu, hingga relay. Kamu akan memahami…
14
Resources & Tools
4 lesson
01
Node.js Server
Pelajaran ini menjelaskan cara membuat server HTTP dasar dengan modul http bawaan Node.js. Kamu akan memahami pola request-response, membaca method, URL, dan body permintaan,…
02
Node.js Pratice Problems
Halaman ini berisi kumpulan soal latihan praktik Node.js untuk menguji pemahamanmu tentang modul bawaan, asinkronitas, dan proyek mini. Latihan rutin membuat konsep menjadi…
03
Node.js Syllabus
Silabus ini menyusun kurikulum belajar Node.js secara berurutan, mulai dari dasar JavaScript dan event loop, modul bawaan, sampai topik lanjutan seperti database, keamanan, dan…
04
Node.js Study Plan
Rencana studi ini mengatur jadwal belajar Node.js selama beberapa minggu dengan target dan hasil belajar yang jelas tiap tahap. Kamu akan membagi waktu antara membaca konsep,…