Load Testing vs Stress Testing: Perbedaan, Metrik dan Contoh k6

  1. Beranda
  2. Blog
  3. Pengujian Perangkat Lunak

Pengujian Perangkat Lunak

Pengujian Beban vs Pengujian Stres: Perbedaan, Metrik, dan Contoh k6

Salah satunya membuktikan sistem Anda menangani lalu lintas yang Anda harapkan. Yang lain mencari tahu di mana kerusakannya dan bagaimana pemulihannya. Pelajari kapan harus menjalankan masing-masing tes, angka mana yang harus dipercaya, dan bagaimana merencanakan tes yang memberikan jawaban nyata.

9 menit baca
Pengujian beban vs pengujian stres: perbedaan, metrik, dan contoh k6

Poin penting

  • Pengujian beban memeriksa apakah sistem memenuhi targetnya berdasarkan lalu lintas yang diharapkan.
  • Pengujian stres melampaui kapasitas untuk menemukan titik puncak dan mempelajari pemulihan.
  • Alatnya biasanya sama. Yang membedakan adalah tujuan dan pola lalu lintasnya.
  • Nilailah hasil dengan persentil seperti p95 dan p99, karena rata-rata dapat menyembunyikan masalah serius.

Aplikasi Anda berfungsi sempurna dengan sepuluh pengguna. Apa yang terjadi pada hari penjualan, dengan sepuluh ribu? Pengujian beban vs pengujian stres menjelaskan dua cara berbeda untuk menjawab hal tersebut, dan menggabungkan keduanya akan menghasilkan pengujian yang tidak membuktikan apa yang menurut Anda dapat dilakukan.

Panduan ini menjelaskan apa yang ditunjukkan masing-masing tes, jenis tes terkait, dan cara membaca hasilnya. Kami menjalankan penghitungan persentil kecil di bawah ini pada Python 3.13, dengan angka simulasi. Skrip k6 adalah contoh ilustratif yang tidak kami jalankan, dan jumlah serta target pengguna dibuat-buat, jadi gantilah dengan skrip Anda sendiri. Jalankan pengujian ini hanya pada sistem yang Anda miliki atau punya izin untuk mengujinya, karena lalu lintas padat dapat terlihat seperti serangan dan menyebabkan gangguan nyata.

Jawaban singkatnya

uji beban menanyakan: dapatkah kami menangani lalu lintas yang kami harapkan, dan memenuhi target saat melakukannya? Sebuah stress test menanyakan: berapa banyak yang dapat kita ambil sebelum kita gagal, bagaimana kita gagal, dan seberapa cepat kita pulih?

Bayangkan sebuah jembatan. Uji beban menentukan jumlah truk yang diharapkan dan memastikan bahwa semuanya baik-baik saja. Tes stres terus menambah bobot untuk mengetahui batasnya, dan apakah tes tersebut memberikan peringatan terlebih dahulu. Untungnya, perangkat lunak lebih murah untuk dipecahkan daripada jembatan.

Pengujian beban vs pengujian stres secara berdampingan

Aspek Pengujian beban Tes stres
Pertanyaan utama Apakah kita memenuhi target pada beban yang diharapkan? Di mana dan bagaimana kita memecahkannya?
Tingkat lalu lintas Normal hingga puncak yang diharapkan Di luar puncak yang diperkirakan
Pola Naik, tetap stabil Terus meningkat hingga gagal
Kegagalan Tes yang gagal Hasil yang diharapkan
Metrik utama Waktu respons, throughput, kesalahan Titik puncak, mode kegagalan, waktu pemulihan
Waktu yang khas Sebelum setiap rilis atau acara besar Setelah sistem stabil di bawah beban
Hasil Lulus atau gagal terhadap target Batas kapasitas dan daftar titik lemah

Apa itu pengujian beban?

Pengujian beban menyimulasikan lalu lintas realistis yang Anda harapkan, dan mengukur perilaku sistem. Diperlukan target untuk diuji, misalnya: “pada 500 pengguna secara bersamaan, 95% permintaan checkout selesai dalam waktu 800 ms, dengan kesalahan di bawah 1%.”

Berikut tampilannya sebagai skrip k6. tes k6 ditulis dalam JavaScript, dan thresholds mengubah target Anda menjadi hasil lulus atau gagal:

import http from "k6/http";
import { sleep } from "k6";

export const options = {
  stages: [
    { duration: "5m", target: 500 },   // ramp up
    { duration: "20m", target: 500 },  // hold at expected peak
    { duration: "2m", target: 0 },     // ramp down
  ],
  thresholds: {
    http_req_duration: ["p(95)<800"],
    http_req_failed: ["rate<0.01"],
  },
};

export default function () {
  http.get("https://staging.example.com/products");
  sleep(1);   // think time, as real users pause
}

sleep penting. Tanpa berpikir panjang, setiap pengguna virtual terus menerus menyerang server, menghasilkan lalu lintas yang jauh lebih banyak dibandingkan jumlah pengguna sebenarnya.

Apa itu pengujian stres?

Stress test sengaja melampaui level yang diharapkan. Anda tidak mencoba untuk lulus. Anda menginginkan jawaban atas pertanyaan seperti:

  • Pada tingkat manakah kinerja mulai menurun?
  • Komponen manakah yang gagal terlebih dahulu: database, server aplikasi, atau panggilan pihak ketiga?
  • Apakah itu gagal dengan baik dengan kesalahan yang jelas, atau apakah itu crash dan kehilangan data?
  • Apakah ia pulih dengan sendirinya ketika lalu lintas menurun?
export const options = {
  stages: [
    { duration: "5m", target: 500 },    // expected peak
    { duration: "5m", target: 1000 },   // beyond it
    { duration: "5m", target: 2000 },   // further
    { duration: "5m", target: 4000 },   // likely to break
    { duration: "10m", target: 0 },     // recovery: does it come back?
  ],
};

Tahap pemulihan terakhir ini sering kali terlupakan, dan mungkin merupakan tahap yang paling berharga. Sebuah sistem yang menangani kegagalan dengan baik tetapi tidak pernah pulih tanpa memulai ulang secara manual masih berarti pemadaman listrik yang harus diperbaiki seseorang di tengah malam. Idealnya, di bawah beban ekstrem, sistem harus melepaskan pekerjaan secara terkendali, mengembalikan 503 tanggapan yang jelas, bukannya waktu habis.

Spike, rendam dan jenis lainnya

Tes beban dan stres termasuk dalam kelompok pengujian kinerja yang lebih luas:

Ketik Pola Apa yang ditemukannya
Asap (kinerja) Beberapa pengguna, secara singkat Apakah skrip dan sistem berfungsi sama sekali
Memuat Puncak yang diperkirakan, terjadi Apakah target terpenuhi
stres Meningkat melebihi kapasitas Batasan dan mode kegagalan
Lonjakan Lompatan tiba-tiba, lalu jatuh Penskalaan otomatis dan perilaku antrean
Rendam (daya tahan) Beban normal selama berjam-jam Kebocoran memori, koneksi habis
Kapasitas Peningkatan bertahap Beban maksimum dalam target Anda

Tes rendam menangkap masalah yang tidak pernah terlihat oleh tes singkat. Kebocoran memori kecil mungkin terlihat tidak berbahaya selama dua puluh menit, dan hanya membuat layanan terhenti setelah dua hari. Tes lonjakan cocok untuk acara seperti penjualan kilat, di mana lalu lintas tidak meningkat secara bertahap.

Metrik yang penting

Metrik Artinya Perhatikan
Waktu respons (persentil) Berapa lama waktu yang dibutuhkan untuk permintaan p95 dan p99 meningkat
Hasil Permintaan ditangani per detik Merata seiring bertambahnya pengguna
Tingkat kesalahan Persentase permintaan yang gagal Kenaikan mendadak
CPU dan memori Penggunaan sumber daya server Saturasi, atau pertumbuhan stabil
Basis data Kueri lambat, penggunaan kumpulan koneksi Kelelahan kolam, kunci menunggu
Kedalaman antrian Pekerjaan menunggu untuk diproses Pertumbuhan yang tidak pernah habis

Mengapa rata-rata menyesatkan

Rata-rata menyembunyikan permintaan lambat yang dikeluhkan orang-orang nyata. Untuk menunjukkan hal ini, kami membuat 100 waktu respons simulasi, dengan 95 waktu respons cepat (80 hingga 200 ms) dan 5 waktu respons sangat lambat (2,5 hingga 4 detik), lalu menghitung statistik umum:

import math, random, statistics

random.seed(3)
times = [random.randint(80, 200) for _ in range(95)] \
      + [random.randint(2500, 4000) for _ in range(5)]

def pct(values, p):
    values = sorted(values)
    return values[math.ceil(p / 100 * len(values)) - 1]

print("avg", round(statistics.mean(times)), "p50", pct(times, 50),
      "p95", pct(times, 95), "p99", pct(times, 99), "max", max(times))

# avg 302 p50 150 p95 199 p99 3740 max 3896

Perhatikan baik-baik angka-angka itu. Rata-rata 302 ms tidak menggambarkan siapa pun. Permintaan umum membutuhkan waktu sekitar 150 ms, sedangkan permintaan lambat membutuhkan waktu lebih dari 3 detik. Bahkan p95 terlihat sehat pada 199 ms, dan hanya p99 yang menunjukkan masalahnya. Angka seperti p95 berarti 95% permintaan secepat atau secepat ini.

Dan permintaan satu persen bukanlah kejadian langka. Jika suatu halaman membuat 50 permintaan, p99 yang lambat memengaruhi sebagian besar tampilan halaman. Tetapkan target pada persentil yang penting bagi Anda, dan lihat beberapa persentil secara bersamaan.

Kiat: Carilah “lutut” pada grafik Anda. Seiring bertambahnya beban, waktu respons tetap datar untuk beberapa saat, lalu tiba-tiba naik, sementara throughput berhenti bertambah. Poin tersebut adalah kapasitas praktis Anda, dan sering kali hal ini muncul jauh sebelum sesuatu benar-benar gagal.

Alat

Alat skrip Dikenal karena
k6 JavaScript Ramah pengembang, ambang batas sesuai dengan CI
JMeter GUI dan XML Dewasa, mendukung banyak protokol
Gatling Scala, Java, Kotlin, dan lainnya Berbasis kode, efisien
belalang ular piton Perilaku pengguna sederhana berbasis Python

Semua ini dapat menjalankan tes beban dan stres. Pilih salah satu yang sesuai dengan keahlian tim Anda, daripada mengejar daftar fitur. Untuk menggunakannya di pipeline Anda, lihat apa itu CI/CD.

Bagaimana merencanakan tes

  1. Tetapkan sasaran. Gunakan analisis nyata untuk menemukan lalu lintas puncak Anda, dan tentukan target.
  2. Pilih perjalanan. Buat model perilaku pengguna yang realistis, seperti menelusuri, menelusuri, dan checkout, dalam proporsi yang realistis. Hanya menekan halaman beranda tidak membuktikan banyak hal.
  3. Gunakan lingkungan yang realistis. Server pementasan kecil tidak dapat memprediksi produksi. Perhatikan perbedaan apa pun.
  4. Siapkan data. Gunakan volume yang realistis, karena kueri yang cepat pada 100 baris mungkin merayapi 10 juta.
  5. Peringatkan orang-orang. Beri tahu tim operasi Anda dan pihak ketiga mana pun, dan jangan melakukan tes beban pada penyedia pembayaran secara tidak sengaja. Tirukan layanan eksternal jika diperlukan.
  6. Mulailah dari yang kecil. Jalankan tes asap kecil terlebih dahulu untuk memastikan bahwa skrip Anda berfungsi.
  7. Pantau semuanya. Tanpa metrik server, Anda akan melihat bahwa server melambat, namun tidak mengapa.
  8. Ulangi. Jalankan lagi setelah setiap perbaikan, dan pertahankan garis dasar untuk dibandingkan.

Membaca hasilnya

Gejala Kemungkinan penyebabnya
Respons lambat, tetapi CPU rendah Menunggu di database, kunci, atau layanan eksternal
CPU basis data tinggi Indeks tidak ada atau kueri tidak efisien
Kesalahan koneksi tiba-tiba Kumpulan koneksi atau batas file tercapai
Memori terus meningkat Kebocoran, atau cache yang tidak terbatas
CPU pembangkit beban tinggi Alat pengujianlah yang menjadi penghambatnya, bukan sistem Anda

Database adalah hambatan yang umum terjadi, jadi jika kueri adalah masalahnya, baca panduan kami tentang optimasi kueri SQL. Baris terakhir tabel tersebut merupakan jebakan penting: selalu periksa kesehatan mesin yang menghasilkan beban juga.

Kesalahan umum

  • Membingungkan pengguna dengan permintaan. Perjelas apakah target berarti pengguna secara bersamaan atau permintaan per detik.
  • Menghilangkan waktu berpikir. Hal ini meningkatkan lalu lintas dan memberikan hasil yang menyesatkan.
  • Pengujian terlambat. Seminggu sebelum peluncuran tidak ada waktu untuk memperbaiki masalah arsitektur.
  • Menggunakan satu titik akhir. Campuran lalu lintas nyata untuk membaca, menulis, dan menelusuri.
  • Caching menyembunyikan semuanya. Permintaan berulang yang identik hanya dapat menguji cache Anda, jadi variasikan datanya.
  • Pengujian sekali. Performa berubah setiap rilis, jadi jalankan pengujian secara berkala.

Penutup

Jalankan tes beban untuk memastikan bahwa Anda dapat menangani lalu lintas yang Anda harapkan, dan tes stres untuk mengetahui apa yang terjadi jika Anda tidak bisa menanganinya. Mulailah dari yang kecil: pilih perjalanan pengguna Anda yang paling penting, tetapkan satu target yang jelas, dan jalankan pengujian singkat terhadap pementasan dengan pemantauan aktif. Proses pertama biasanya mengajarkan Anda sesuatu, dan Anda dapat membangunnya dari sana.

Pertanyaan yang sering diajukan

Apa perbedaan utama antara pengujian beban dan pengujian stres?

Pengujian beban memeriksa perilaku lalu lintas yang diharapkan terhadap target yang ditetapkan. Stress test melampaui kapasitas untuk menemukan titik puncaknya dan bagaimana sistem pulih.

Haruskah saya menjalankan pengujian beban atau pengujian stres terlebih dahulu?

Uji beban terlebih dahulu. Setelah sistem memenuhi targetnya dalam lalu lintas yang diharapkan, jalankan stress test untuk mengeksplorasi batasannya. Hasil stres tidak banyak berarti pada sistem yang tidak stabil.

Apa perbedaan antara tes stres dan tes lonjakan?

Tes stres biasanya menaikkan beban selangkah demi selangkah hingga gagal. Uji lonjakan tiba-tiba melonjak ke tingkat yang tinggi, untuk melihat bagaimana sistem mengatasi perubahan mendadak.

Berapa waktu respons p95?

Ini berarti 95% permintaan selesai pada atau di bawah waktu tersebut. Ini menggambarkan pengalaman sebagian besar pengguna lebih baik daripada rata-rata pengguna.

Bisakah saya menjalankan tes beban pada produksi?

Bisa, tapi hati-hati, dengan izin, pengawasan dan cara untuk berhenti dengan cepat. Sebagian besar tim memulai dengan lingkungan pementasan seperti produksi untuk mengurangi risiko bagi pengguna sebenarnya.

Teruslah belajar

Bekerja dengan Stack Quora

Butuh bantuan dengan pengujian, WordPress atau SEO?

Kami membantu tim mengirimkan perangkat lunak yang lebih baik dan mengembangkan situs mereka. Beritahu kami apa yang sedang Anda kerjakan dan kami akan menyarankan langkah selanjutnya yang jelas.

Teruslah membaca

Panduan lebih lanjut tentang pengujian, AI & pengembangan modern

Menikmati artikel ini? Pilih topik dan langsung masuk ke tutorial terbaru kami.

Kecerdasan buatan

Penjelasan Halusinasi AI: Mengapa Model Bahasa Memperbaiki Masalah dan Cara Menguranginya

Halusinasi AI menjelaskan: apa itu, mengapa model bahasa memproduksinya, tipe umum, cara menguranginya dengan landasan dan petunjuk, dan pemeriksaan…

Baca artikel →
DevOps

Penjelasan Variabel Lingkungan: File .env, Rahasia, dan Konfigurasi Dilakukan dengan Benar

Variabel lingkungan dijelaskan dengan contoh Python yang kami jalankan: membaca dan mengaturnya, mengapa setiap nilai berupa string, file .env, pewa…

Baca artikel →
Pengembangan perangkat lunak

Penjelasan Pembatasan Kecepatan API: Algoritma, Header, dan Penanganan 429 Kesalahan

Pembatasan laju API dijelaskan dengan simulasi yang kami jalankan: keranjang token, jendela tetap, jendela geser, respons 429, header batas laju, pe…

Baca artikel →
Otomatisasi pengujian

Mengejek dengan Python: unittest.mock, patch dan Kesalahan yang Membuat Tes Berbohong

Mengejek dengan Python dengan unittest.mock, menguji: Mock dan return_value, side_effect, menambal di mana nama digunakan, spesifikasi dan autospec,…

Baca artikel →
Pengujian perangkat lunak

Penjelasan Cakupan Kode: Cakupan Jalur vs Cabang dan Apa Arti 100% Sebenarnya

Cakupan kode dijelaskan dengan coverage.py yang sebenarnya dijalankan: cakupan garis, cabang dan kondisi, membaca laporan, mengapa cakupan 100% masi…

Baca artikel →
Basis data & SQL

DELETE vs TRUNCATE vs DROP dalam SQL: Perbedaan, Rollback dan Kapan Menggunakan Masing-Masing

DELETE vs TRUNCATE vs DROP dijelaskan dengan SQL yang diuji: apa yang dihapus, rollback, pemicu, reset identitas, kecepatan, dan perbedaan PostgreSQ…

Baca artikel →
Basis data & SQL

Penjelasan Tampilan SQL: Membuat, Menggunakan, dan Menghindari Kesalahan, Dengan Contoh

Tampilan SQL dijelaskan dengan kueri yang kami jalankan: membuat tampilan, hasil langsung, menyembunyikan kolom, kinerja, tampilan yang dapat diperb…

Baca artikel →
Pengembangan perangkat lunak

Antarmuka TypeScript vs Tipe: Perbedaan Nyata, Diuji Dengan Kompiler

Antarmuka TypeScript vs tipe, diperiksa dengan kompiler sebenarnya: apa yang bisa dilakukan keduanya, apa yang hanya bisa dilakukan satu orang, peng…

Baca artikel →
Pengembangan perangkat lunak

Penjelasan Python *args dan **kwargs: Fungsi Fleksibel Dengan Contoh Jelas

Python *args dan **kwargs dijelaskan dengan kode yang kami jalankan: pengepakan dan pembongkaran, urutan parameter, argumen hanya kata kunci dan pos…

Baca artikel →
Pengembangan perangkat lunak

Fungsi Python Lambda: Sintaks, Kegunaan Sebenarnya, dan Kapan Tidak Digunakan

Fungsi python lambda dijelaskan dengan kode yang kami jalankan: sintaksis, pengurutan dengan kunci, peta dan filter, penutupan, jebakan pengikatan a…

Baca artikel →
Kecerdasan buatan

Apa Itu Agen AI? Cara Kerjanya, Dengan Agent Loop Sederhana yang Dapat Anda Jalankan

Apa itu agen AI? Panduan sederhana tentang loop agen, alat, memori, dan pagar pembatas, dengan loop Python kecil yang kami jalankan, risiko nyata da…

Baca artikel →
DevOps

Pemantauan vs Observabilitas: Perbedaan Nyata, Dengan Log, Metrik, dan Jejak

Penjelasan pemantauan vs observabilitas: kegagalan yang diketahui dan tidak diketahui, log, metrik dan jejak, penelusuran insiden checkout, sinyal e…

Baca artikel →
DevOps

Volume Docker vs Bind Mounts: Pertahankan Data Kontainer dengan Cara yang Benar

Volume Docker vs pengikatan pengikat dijelaskan: mengapa data kontainer menghilang, volume yang diberi nama, pengikatan pengikatan, tmpfs, contoh Tu…

Baca artikel →
Otomatisasi pengujian

TDD vs BDD: Perbedaan Utama, Satu Fitur Dibangun dengan Dua Cara dan Kapan Menggunakan Masing-masing

TDD vs BDD dijelaskan dengan satu fitur diskon yang dibuat dengan dua cara: refactor merah-hijau dengan kode yang kami jalankan, skenario Mengingat-…

Baca artikel →
Pengujian perangkat lunak

User Acceptance Testing (UAT): Proses, Checklist dan Contoh Nyata

Pengujian penerimaan pengguna menjelaskan: siapa yang menjalankannya, perbedaannya dengan QA, proses tujuh langkah, templat kasus uji UAT, daftar pe…

Baca artikel →
Basis data & SQL

Penjelasan Nilai NULL SQL: IS NULL, COALESCE, NULLIF dan Jebakan yang Harus Dihindari

Nilai SQL NULL dijelaskan dengan kueri yang kami jalankan: logika tiga nilai, IS NULL, COALESCE, NULLIF, cara agregat, penggabungan, dan pengurutan …

Baca artikel →
Basis data & SQL

Pernyataan SQL CASE WHEN: Sintaks, Contoh Nyata dan Kesalahan Umum

SQL CASE KETIKA dijelaskan dengan kueri yang kami jalankan: formulir sederhana dan dicari, urutan kondisi, pivot dengan SUM, trik COUNT, pengurutan …

Baca artikel →
Pengembangan perangkat lunak

Apa itu JWT? Token Web JSON Dijelaskan Dengan Contoh Kerja

Apa itu JWT? JSON Web Tokens menjelaskan: tiga bagian, token yang dibuat dan dirusak dalam kode yang kami jalankan, sesi JWT vs, penyimpanan, token …

Baca artikel →
Pengembangan perangkat lunak

Penjelasan Loop Acara JavaScript: Call Stack, Microtasks, dan Timer Dengan Contoh

Perulangan peristiwa JavaScript dijelaskan dengan kode yang kami jalankan: tumpukan panggilan, antrian tugas dan tugas mikro, mengapa setTimeout 0 t…

Baca artikel →
Pengembangan perangkat lunak

Generator Python dan Penjelasan Hasil: Menghemat Memori Dengan Contoh Nyata

Generator dan hasil Python dijelaskan dengan kode yang kami jalankan: bagaimana mereka menjeda dan melanjutkan, mengukur penghematan memori, saluran…

Baca artikel →
Kecerdasan buatan

Apa itu Embedding? Kesamaan Vektor dan Kosinus Dijelaskan Secara Sederhana

Apa itu embeddings? Panduan bahasa sederhana tentang vektor, kesamaan kosinus, dan penelusuran semantik, dengan contoh kecil yang kami jalankan, pen…

Baca artikel →
DevOps

Penerapan Biru-Hijau vs Canary: Perbedaan, Kompromi, dan Cara Memilih

Penjelasan penerapan blue-green vs canary: cara kerja masing-masing, biaya, risiko dan rollback, pengelompokan pengguna stabil yang kami uji, migras…

Baca artikel →
Otomatisasi pengujian

Tes Tidak Stabil: Apa Penyebabnya dan Cara Memperbaikinya untuk Kebaikan

Pengujian yang tidak stabil dijelaskan dengan demo yang kami jalankan: penyebab utama, cara mengonfirmasi dan mendiagnosisnya, perbaikan waktu yang …

Baca artikel →
Pengujian perangkat lunak

Load Testing vs Stress Testing: Perbedaan, Metrik dan Contoh k6

Penjelasan pengujian beban vs pengujian stres: apa yang dibuktikan masing-masing, pengujian lonjakan dan rendam, metrik yang penting, mengapa rata-r…

Baca artikel →
Pengujian perangkat lunak

Kasus Uji vs Skenario Uji: Perbedaan Utama, Contoh, dan Kapan Menggunakan Masing-masing

Penjelasan kasus uji vs skenario pengujian: definisi yang jelas, tabel berdampingan, satu fitur pengaturan ulang kata sandi yang diambil dari skenar…

Baca artikel →
Basis data & SQL

Optimasi Kueri SQL: Baca Rencana Eksekusi dan Perbaiki Kueri Lambat, Dengan Pengaturan Waktu

Pengoptimalan kueri SQL diuji pada sejuta baris: membaca rencana eksekusi, menambahkan indeks yang tepat, memperbaiki filter yang tidak dapat disarg…

Baca artikel →
Basis data & SQL

SQL UNION vs UNION ALL: Perbedaan, Contoh dan Kinerja Diuji

SQL UNION vs UNION ALL dijelaskan dengan kueri yang kami jalankan: duplikat, aturan yang diikuti keduanya, bug data nyata, kinerja terukur, INTERSEC…

Baca artikel →
Pengembangan perangkat lunak

Tutorial API Pengambilan JavaScript: GET, POST, Penanganan Kesalahan, dan Batas Waktu

Tutorial JavaScript Fetch API diuji pada server lokal: GET dan POST, mengapa 404 tidak muncul, bantuan yang dapat digunakan kembali, string kueri, b…

Baca artikel →
Pengembangan perangkat lunak

Penanganan File Python: Baca, Tulis, CSV, JSON dan pathlib Dengan Contoh

Penanganan file Python dijelaskan dengan kode yang kami jalankan: mode terbuka, dengan, membaca file besar, CSV, JSON, pathlib, file biner, penulisa…

Baca artikel →
Pengembangan perangkat lunak

Kelas dan Objek Python: Tutorial OOP Dengan Contoh Nyata

Kelas dan objek Python dijelaskan dengan kode yang kami jalankan: __init__, metode, atribut kelas vs instance, warisan, properti, metode dunder, kel…

Baca artikel →
Kecerdasan buatan

Apa Itu Model Bahasa Besar? Bagaimana LLM Bekerja, Dijelaskan Tanpa Hype

Apa yang dimaksud dengan model bahasa besar? LLM dijelaskan dalam bahasa sederhana: token, penyematan, perhatian, pelatihan, jendela suhu dan kontek…

Baca artikel →
DevOps

Perintah Linux untuk Pemula: Panduan Terminal Penting Dengan Contoh

Perintah Linux untuk pemula, dikelompokkan berdasarkan tugas: navigasi, file, melihat log, grep, pipa, izin, proses dan arsip, dengan contoh analisi…

Baca artikel →
Otomatisasi pengujian

Selenium vs Penulis Drama: Perbedaan Utama, Perbandingan Kode, dan Mana yang Harus Dipilih

Selenium vs Playwright dibandingkan: arsitektur, menunggu, dukungan browser dan bahasa, debugging, pengujian yang sama di kedua alat, saran migrasi …

Baca artikel →
Pengujian perangkat lunak

Partisi Ekivalensi: Teknik Desain Tes Dijelaskan Dengan Contoh yang Dikerjakan

Penjelasan partisi ekivalensi: cara menemukan partisi yang valid dan tidak valid, contoh yang berfungsi untuk usia, kata sandi dan kupon, pengujian …

Baca artikel →
Pengujian perangkat lunak

Severity vs Priority dalam Pengujian Perangkat Lunak: Perbedaan, Matriks dan Contoh Nyata

Keparahan vs prioritas dalam pengujian perangkat lunak dijelaskan: definisi yang jelas, matriks empat arah dengan contoh, skala level, siapa yang me…

Baca artikel →
Basis data & SQL

Tutorial Subkueri SQL: Jenis, Subkueri yang Berkorelasi, dan ADA Dengan Contoh

Tutorial subkueri SQL dengan kueri yang kami jalankan: subkueri skalar, IN, FROM dan SELECT, subkueri yang berkorelasi, EXISTS, jebakan NOT IN NULL …

Baca artikel →
Basis data & SQL

Penjelasan Transaksi SQL dan ACID: COMMIT, ROLLBACK dan Tingkat Isolasi

Transaksi SQL dan ACID dijelaskan dengan transfer bank yang kami jalankan: COMMIT, ROLLBACK, savepoint, kunci, tingkat isolasi, pembacaan kotor, keb…

Baca artikel →
Pengembangan perangkat lunak

Git merge vs rebase: perbedaan, contoh, dan kapan memakai masing-masing

Git merge vs rebase dijelaskan dengan keluaran log nyata, tabel perbandingan, aturan emas rebase, dan alur kerja tim yang aman.

Baca artikel →
Pengembangan perangkat lunak

List Comprehension Python: Sintaks, Contoh, dan Kapan Harus Dihindari

List comprehension Python dijelaskan: sintaks, filter, if-else, perulangan bersarang, waktu yang diukur, dan kapan perulangan for biasa lebih baik.

Baca artikel →
Basis data & SQL

Penjelasan SQL JOIN dengan Contoh (Inner, Left, Right, Full)

Pahami SQL JOIN langkah demi langkah dengan tabel dan query contoh: INNER, LEFT, RIGHT, FULL, CROSS, dan SELF, plus kesalahan umum dan tips performa.

Baca artikel →