Kasus Uji vs Skenario Uji: Perbedaan Utama, Contoh, dan Kapan Menggunakan Masing-masing
Sebuah skenario mengatakan apa yang harus diuji. Sebuah kasus menjelaskan dengan tepat bagaimana caranya. Ikuti satu fitur pengaturan ulang kata sandi mulai dari persyaratan, skenario, hingga kasus pengujian lengkap, dan pelajari seberapa banyak detail yang benar-benar dibutuhkan tim Anda.
- skenario pengujian adalah pernyataan satu baris tentang apa yang harus diverifikasi.
- kasus uji memberikan langkah-langkah, data, dan hasil yang diharapkan yang menunjukkan cara untuk memverifikasinya.
- Satu skenario biasanya menghasilkan beberapa kasus uji.
- Cocokkan detail dengan risikonya: skenario ringan untuk tim yang cepat, kasus lengkap untuk pekerjaan kritis atau teregulasi.
Penguji baru sering mendengar kedua istilah ini digunakan seolah-olah memiliki arti yang sama. Mereka tidak melakukannya. Perbedaan antara kasus uji vs skenario pengujian sebagian besar terletak pada tingkat detailnya, dan memahaminya akan membantu Anda memutuskan berapa banyak yang akan ditulis sebelum memulai pengujian.
Panduan ini menjelaskan masing-masingnya, kemudian bekerja melalui satu fitur pengaturan ulang kata sandi, mulai dari persyaratan, skenario, hingga kasus pengujian penuh. Fitur dan aturannya adalah contoh yang diciptakan. Terminologi juga sedikit berbeda antara tim dan alat, jadi setujui arti kata-kata ini di tim Anda sendiri.
Jawaban singkatnya
skenario pengujian menjelaskan situasi yang perlu diperiksa, seperti “verifikasi pengguna dapat menyetel ulang sandi yang terlupa”. Biasanya satu baris dan menyerahkan detailnya kepada penguji.
kasus uji menjelaskan dengan tepat cara memeriksa satu kondisi dalam situasi tersebut: prasyarat, langkah-langkah, data pengujian, dan hasil yang diharapkan. Dua penguji yang mengikutinya harus mencapai keputusan yang sama.
Pikirkan merencanakan perjalanan. Skenarionya adalah “perjalanan dari Pune ke Delhi”. Test case adalah rencana perjalanan lengkap, dengan nomor penerbangan, waktu keberangkatan dan apa yang harus dilakukan di setiap tahap.
Uji kasus vs skenario uji berdampingan
| Aspek | Skenario pengujian | Kasus uji |
|---|---|---|
| Pertanyaan terjawab | Apa yang harus kita uji? | Bagaimana tepatnya kita mengujinya? |
| Detil | Tingkat tinggi | Tingkat rendah dan spesifik |
| Panjang tipikal | Satu baris | Beberapa bidang dan langkah |
| Berasal dari | Persyaratan, cerita pengguna | Skenario pengujian |
| Termasuk data uji? | Jarang | Ya |
| Termasuk hasil yang diharapkan? | Tersirat | Ya, secara eksplisit |
| Saatnya menulis | Menit | Lebih lama lagi |
| Pemeliharaan | Rendah | Lebih tinggi, karena detailnya berubah |
| Kebebasan penguji | Tinggi | Rendah |
| Terbaik untuk | Ikhtisar cakupan, tim cepat | Arus kritis, audit, serah terima |
Apa yang dimaksud dengan skenario pengujian?
Skenario pengujian adalah deskripsi singkat tentang sesuatu yang mungkin dilakukan pengguna, atau situasi yang harus ditangani oleh sistem. Ini berfokus pada hal-hal yang penting dari luar, dan biasanya datang langsung dari persyaratan atau cerita pengguna.
Skenario sangat berharga karena cepat. Anda dapat mencantumkan tiga puluh waktu yang diperlukan untuk menulis tiga kasus terperinci, yang menjadikannya cara yang bagus untuk meninjau liputan dengan pemilik produk: “sudahkah kita memikirkan semuanya?” Pembaca non-teknis dapat mengikuti daftar skenario tanpa kesulitan.
Apa itu kasus uji?
Kasus uji adalah serangkaian kondisi dan langkah tertentu, yang digunakan untuk menentukan apakah suatu hal berhasil. Kasus uji tipikal berisi:
- ID yang unik dan judul yang jelas
- Prakondisi, artinya apa yang harus dipenuhi sebelum Anda memulai
- Bernomor langkah
- Spesifik data pengujian
- hasil yang diharapkan
- hasil aktual dan status, terisi saat dijalankan
Kasus uji bersinar ketika konsistensi penting. Anggota tim baru dapat menjalankannya, hasilnya dapat dibandingkan di seluruh rilis, dan Anda memiliki catatan tentang apa yang telah diverifikasi. Kami mempelajari lebih dalam panduan kami tentang cara menulis kasus pengujian.
Satu fitur, mulai sampai selesai
Langkah 1: Persyaratan
Pengguna yang lupa kata sandinya dapat meminta tautan reset melalui email. Tautan berfungsi satu kali dan habis masa berlakunya setelah 30 menit. Kata sandi baru harus terdiri dari minimal 8 karakter.
Langkah 2: Skenario pengujian
| tanda pengenal | Skenario pengujian |
|---|---|
| TS-01 | Verifikasi bahwa pengguna terdaftar dapat mengatur ulang kata sandi menggunakan tautan yang dikirim melalui email |
| TS-02 | Verifikasi perilaku saat email tidak terdaftar |
| TS-03 | Pastikan tautan yang kedaluwarsa tidak dapat digunakan |
| TS-04 | Pastikan tautan tidak dapat digunakan dua kali |
| TS-05 | Pastikan aturan kata sandi baru diterapkan |
Lihatlah TS-02. Persyaratan tersebut tidak pernah menjelaskan apa yang harus terjadi dengan email yang tidak dikenal, dan penulisan skenario mengungkap kesenjangan tersebut. Haruskah halaman tersebut menunjukkan bahwa alamat tersebut tidak terdaftar? Demi keamanan, biasanya hal ini tidak boleh dilakukan, karena hal ini memungkinkan penyerang menemukan akun yang valid. Menemukan pertanyaan-pertanyaan ini sejak dini adalah salah satu manfaat terbesar dari menulis skenario.
Langkah 3: Kasus uji
Sekarang kami hanya memperluas TS-05 ke dalam kasus uji. Satu skenario menjadi beberapa:
| tanda pengenal | Judul | Data uji | Hasil yang diharapkan |
|---|---|---|---|
| TC-051 | Menerima kata sandi persis 8 karakter | abcd1234 |
Kata sandi berubah, dan konfirmasi muncul |
| TC-052 | Menolak kata sandi 7 karakter | abcd123 |
Kesalahan: diperlukan setidaknya 8 karakter |
| TC-053 | Menolak kata sandi kosong | (blank) | Kesalahan: diperlukan kata sandi |
| TC-054 | Menolak konfirmasi yang tidak cocok | abcd1234, abcd9999 |
Kesalahan: kata sandi tidak cocok |
Nilai-nilai ini tidak acak. TC-051 dan TC-052 berada di kedua sisi batas, menggunakan analisis nilai batas, dan yang lainnya berasal dari partisi kesetaraan.
Templat kasus uji
Berikut TC-052 yang dituliskan secara lengkap. Salin tata letak ini jika tim Anda belum memiliki standar:
ID: TC-052
Title: Reset rejects a password of 7 characters
Scenario: TS-05 New password rules are enforced
Priority: High
Preconditions: Account asha@example.com exists
A valid, unused reset link has been requested
Test data: New password: abcd123
Steps:
1. Open the reset link from the email
2. Enter abcd123 in New password
3. Enter abcd123 in Confirm password
4. Click Reset password
Expected: Error "Password must be at least 8 characters"
Password is unchanged, and the link stays valid
Actual: (filled in during the run)
Status: (Pass / Fail / Blocked)
Perhatikan bahwa hasil yang diharapkan memeriksa lebih dari sekadar pesan kesalahan. Ini juga mengonfirmasi bahwa kata sandi lama masih berfungsi dan tautannya tetap dapat digunakan. Kasus pengujian yang lemah sering kali berhenti pada apa yang terlihat di layar.
Kiat: Uji satu kondisi di setiap kasus uji. Jika sebuah kasus yang mencakup lima hal gagal, Anda tidak akan tahu mana yang rusak. Kasus yang singkat dan terfokus juga lebih mudah untuk diotomatisasi nantinya.
Dimana mereka cocok dalam gambaran yang lebih besar
| Tingkat | Jawaban | Contoh |
|---|---|---|
| Strategi pengujian | Apa pendekatan umum kami? | Otomatiskan regresi, jelajahi fitur baru |
| Rencana pengujian | Apa yang akan kami lakukan untuk rilis ini? | Fitur akun, diuji mulai 3 hingga 7 Maret |
| Skenario pengujian | Apa yang akan kita periksa? | Aturan kata sandi ditegakkan |
| Kasus uji | Bagaimana kita memeriksanya? | TC-052 dan langkah-langkahnya |
| Skrip tes | Bagaimana mesin memeriksanya? | Kode otomatis untuk TC-052 |
Secara tradisional, skenario dan kasus ditulis selama fase desain pengujian dari siklus hidup pengujian perangkat lunak.
Kapan menggunakan masing-masing
Skenario seringkali cukup ketika:
- Timnya kecil, berpengalaman dan mengetahui produk dengan baik.
- Waktunya singkat, atau persyaratan sering berubah.
- Fitur tersebut berisiko rendah.
- Anda ingin meninjau liputan dengan cepat bersama pemangku kepentingan.
- Anda memandu pengujian eksplorasi.
Kasus uji yang terperinci layak untuk dilakukan jika:
- Kegagalan akan berdampak buruk, seperti halnya pembayaran, keamanan, atau data kesehatan.
- Regulator atau auditor memerlukan bukti atas apa yang diuji.
- Penguji baru atau yang dialihdayakan harus menjalankan pengujian.
- Hasil harus diulang dengan tepat, seperti dalam rangkaian regresi.
- Langkah-langkahnya akan menjadi pengujian otomatis.
Kebanyakan tim dewasa menggunakan keduanya. Mereka membuat daftar skenario untuk semuanya, dan menulis kasus lengkap hanya untuk risiko tertinggi. Tidak perlu mendokumentasikan setiap langkah pada halaman pengaturan risiko rendah dengan cara yang sama seperti transfer bank.
Skenario, kasus, dan otomatisasi
Kasus uji yang ditulis dengan baik memetakan hampir langsung ke pengujian otomatis. Prasyarat menjadi persiapan, langkah menjadi tindakan, dan hasil yang diharapkan menjadi pernyataan. Kerangka kerja pengembangan berbasis perilaku bahkan menggunakan kata “Skenario” untuk spesifikasi yang dapat dijalankan:
Scenario: Reset rejects a short password
Given I have opened a valid reset link
When I submit the new password "abcd123"
Then I see "Password must be at least 8 characters"
And my password is unchanged
Yang membingungkan, apa yang BDD sebut sebagai skenario lebih mirip kasus uji, karena skenario tersebut mempunyai data dan hasil yang spesifik. Itu adalah pengingat yang baik untuk menyetujui persyaratan. Untuk mengotomatiskan pemeriksaan ini, lihat Tutorial Penulis Drama atau tutorial pytest kami.
Apa yang membuat mereka bagus
| Skenario yang bagus | Kasus uji yang bagus |
|---|---|
| Menjelaskan tujuan atau situasi pengguna | Menguji satu kondisi tertentu |
| Tautan kembali ke persyaratan | Memiliki hasil yang diharapkan secara tepat |
| Meliputi kegagalan dan kesuksesan | Cantumkan prasyarat dan datanya |
| Tidak memiliki detail yang tidak perlu | Dapat dijalankan oleh orang baru |
| Cocok dalam satu baris | Tidak bergantung pada tes lain |
Kesalahan umum
- Hanya menulis jalur bahagia. Sebagian besar bug berada dalam kondisi kesalahan, jadi sertakan apa yang seharusnya gagal.
- Menggunakan hasil yang diharapkan tidak jelas. “Ini akan berfungsi dengan baik” memungkinkan penguji mana pun memutuskan apa pun.
- Mendokumentasikan semuanya secara lengkap. Ribuan kasus yang tidak dikelola oleh siapa pun lebih buruk daripada kumpulan kasus kecil yang berguna.
- Melewatkan skenario. Melompat langsung ke kasus dapat membuat seluruh area terlupakan.
- Membiarkan casing menjadi usang. Saat produk berubah, casing lama akan menyesatkan orang. Tinjau secara teratur.
- Mengikat langkah-langkah ke detail yang rapuh. “Klik tombol biru di atas” tidak dapat dilakukan dengan desain ulang apa pun.
Penutup
Skenario memberi Anda keluasan, dan kasus uji memberi Anda kedalaman. Mulailah dengan skenario untuk fitur Anda berikutnya dan tinjau skenario tersebut bersama pengembang dan pemilik produk. Kemudian kembangkan hanya kasus-kasus yang berisiko menjadi kasus-kasus penuh. Anda akan menemukan celah lebih awal, dan Anda akan menghabiskan waktu menulis Anda di tempat yang penting.
Pertanyaan yang sering diajukan
Apa perbedaan utama antara kasus uji dan skenario uji?
Skenario pengujian adalah pernyataan tingkat tinggi tentang apa yang akan diuji. Kasus uji memberikan langkah-langkah spesifik, data, dan hasil yang diharapkan tentang cara mengujinya.
Mana yang lebih dulu, skenario uji atau kasus uji?
Biasanya skenarionya. Skenario berasal dari persyaratan, kemudian kasus uji ditulis dari skenario yang memerlukan lebih detail.
Berapa banyak kasus uji yang dimiliki satu skenario?
Tidak ada nomor tetap. Hal ini bergantung pada aturan dan risiko yang terlibat, dan skenario umum mungkin memiliki beberapa skenario, yang mencakup keberhasilan, kegagalan, dan batasan.
Apakah tim Agile memerlukan kasus uji yang terperinci?
Tidak selalu. Banyak yang mengandalkan skenario, kriteria penerimaan, dan otomatisasi, serta hanya menyimpan kasus terperinci untuk arus kritis atau kebutuhan kepatuhan.
Apakah skrip pengujian sama dengan test case?
Kurang tepat. Kasus uji menjelaskan apa yang harus diperiksa, sedangkan skrip pengujian biasanya berupa kode yang melakukan pemeriksaan tersebut secara otomatis, meskipun beberapa tim menggunakan istilah tersebut secara longgar.
Teruslah belajar
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.
Panduan lebih lanjut tentang pengujian, AI & pengembangan modern
Menikmati artikel ini? Pilih topik dan langsung masuk ke tutorial terbaru kami.
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 →DevOpsPenjelasan 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 lunakPenjelasan 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 pengujianMengejek 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 lunakPenjelasan 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 & SQLDELETE 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 & SQLPenjelasan 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 lunakAntarmuka 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 lunakPenjelasan 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 lunakFungsi 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 buatanApa 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 →DevOpsPemantauan 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 →DevOpsVolume 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 pengujianTDD 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 lunakUser 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 & SQLPenjelasan 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 & SQLPernyataan 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 lunakApa 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 lunakPenjelasan 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 lunakGenerator 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 buatanApa 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 →DevOpsPenerapan 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 pengujianTes 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 lunakLoad 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 lunakKasus 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 & SQLOptimasi 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 & SQLSQL 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 lunakTutorial 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 lunakPenanganan 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 lunakGit 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 lunakList 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 & SQLPenjelasan 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 →