Apa itu RAG? Generasi Retrieval-Augmented Dijelaskan Dengan Contoh Kerja

  1. Beranda
  2. Blog
  3. Kecerdasan Buatan

Kecerdasan Buatan

Apa itu RAG? Retrieval-Augmented Generation Dijelaskan Dengan Contoh Kerja

RAG memungkinkan model AI menjawab dari dokumen Anda sendiri, bukan dari memori saja. Pelajari cara kerja pipeline, jalankan versi kecil dengan Python biasa, dan lihat mengapa sistem sebenarnya gagal dan cara mengujinya.

9 menit baca
Apa itu RAG? Generasi yang ditambah pengambilan dijelaskan dengan contoh kerja

Poin penting

  • RAG menemukan informasi yang relevan terlebih dahulu, menambahkannya ke prompt, lalu meminta model untuk menjawabnya.
  • Ini adalah cara biasa untuk menghubungkan model bahasa ke data pribadi atau data yang sering berubah.
  • Sebagian besar masalah kualitas dimulai pada pengambilan dan persiapan data, bukan pada model.
  • RAG mengurangi jawaban yang dibuat-buat tetapi tidak menghilangkannya, jadi Anda perlu mengujinya.

Tanyakan kepada asisten AI umum tentang kebijakan pengembalian dana perusahaan Anda, dan mereka hanya bisa menebak. Ia belum pernah melihat dokumen Anda. RAG, kependekan dari retrieval-augmented generation, menyelesaikan masalah ini dengan mencari informasi yang tepat dan menyerahkannya ke model beserta pertanyaannya.

Panduan ini menjelaskan setiap tahapan dalam bahasa sederhana, lalu membuat versi kecil hanya dengan menggunakan pustaka standar Python. Kami menjalankan kode tersebut pada Python 3.13, dan skor yang ditampilkan berasal dari proses tersebut. Ini tidak menggunakan model bahasa, sehingga menunjukkan pengambilan dan pembuatan cepat, dan kami tidak menguji langkah jawaban akhir.

Apa itu RAG?

Retrieval-augmented generation adalah teknik yang menggabungkan langkah pencarian dengan model bahasa. Ketika sebuah pertanyaan muncul, sistem mencari sumber pengetahuan, menambahkan hasil terbaik ke prompt, dan meminta model untuk menjawab berdasarkan materi tersebut.

Bayangkan ujian buku terbuka. Seorang siswa dengan buku tertutup bergantung pada ingatan dan mungkin salah mengingat. Siswa buku terbuka dapat mencari halaman kanan terlebih dahulu. RAG memberikan model buku itu, dan juga memungkinkannya menunjukkan halaman mana yang digunakannya.

Masalah yang dipecahkan RAG

Model bahasa sendiri memiliki tiga batasan untuk penggunaan bisnis:

  • Ia tidak mengetahui data pribadi Anda. Kebijakan, tiket, dan kontrak Anda bukan bagian dari pelatihannya.
  • Pengetahuannya terpotong. Ia tidak dapat mengetahui harga yang Anda ubah pagi ini.
  • Ia mungkin menemukan jawaban. Jika tidak yakin, ia dapat menghasilkan sesuatu yang masuk akal namun salah.

RAG membahas ketiganya, dan Anda tidak perlu melatih ulang apa pun. Perbarui dokumen, indeks ulang, dan jawaban selanjutnya dapat menggunakannya.

Cara kerja RAG, langkah demi langkah

Sistem RAG memiliki dua saluran pipa. Yang satu mempersiapkan data Anda sebelumnya, dan yang lainnya menjalankan setiap pertanyaan.

Pengindeksan: menyiapkan data Anda

  1. Muat: kumpulkan konten dari PDF, wiki, database, atau tiket.
  2. Bersihkan dan potong: buang sampah, lalu bagi dokumen menjadi beberapa bagian kecil.
  3. Sematkan: ubah setiap bagian menjadi daftar angka, yang disebut penyematan, yang menangkap maknanya.
  4. Simpan: simpan penyematan dalam indeks yang dapat dicari, sering kali dalam database vektor.

Query: menjawab pertanyaan

  1. Ambil: sematkan pertanyaan dan temukan bagian yang paling dekat maknanya.
  2. Tambahan: masukkan bagian-bagian itu ke dalam prompt.
  3. Hasilkan: model menulis jawaban menggunakan konteks tersebut.

Pengambilan tidak harus menggunakan vektor. Ini bisa berupa pencarian kata kunci atau bahkan kueri SQL, mana saja yang menemukan informasi yang tepat untuk data Anda.

Contoh kerja kecil

Untuk melihat bagian yang bergerak dengan jelas, berikut adalah seekor anjing retriever kecil tanpa perpustakaan. Ini mewakili teks sebagai jumlah kata, pengganti yang lebih sederhana untuk penyematan nyata, dan menilai kesamaan menggunakan ukuran kosinus.

import math, re
from collections import Counter

DOCS = {
    "refunds": "Refunds are paid within 7 days to the original payment method.",
    "shipping": "Standard shipping takes 3 to 5 working days across India.",
    "warranty": "All keyboards include a 2 year warranty against defects.",
}

def vectorize(text):
    return Counter(re.findall(r"[a-z0-9]+", text.lower()))

def similarity(a, b):
    dot = sum(a[word] * b[word] for word in a)
    size = math.sqrt(sum(v * v for v in a.values()))
    size *= math.sqrt(sum(v * v for v in b.values()))
    return dot / size if size else 0

def retrieve(question, k=1):
    q = vectorize(question)
    scored = [(similarity(q, vectorize(t)), name) for name, t in DOCS.items()]
    return sorted(scored, reverse=True)[:k]

def build_prompt(question):
    (score, name), = retrieve(question)
    return (
        "Answer using only the context. If it is not there, say you do not know.\n"
        f"Context: {DOCS[name]}\n"
        f"Question: {question}"
    )

Menanyakan tentang pengembalian dana akan menemukan jalan yang tepat dan membangun prompt ini:

print(retrieve("How many days until refunds are paid?"))
# [(0.4558..., 'refunds')]

print(build_prompt("How many days until refunds are paid?"))
# Answer using only the context. If it is not there, say you do not know.
# Context: Refunds are paid within 7 days to the original payment method.
# Question: How many days until refunds are paid?

Dalam sistem yang lengkap, Anda sekarang akan mengirimkan prompt itu ke model bahasa. Detail pentingnya adalah instruksi untuk mengakui ketika jawabannya tidak ada, yang dapat Anda pelajari lebih lanjut dalam panduan kami untuk rekayasa cepat.

Apa yang terlewatkan oleh contoh kita

Sekarang cobalah pertanyaan yang mempunyai arti yang sama tetapi menggunakan kata-kata yang berbeda:

print(retrieve("When can I get my money back?", k=3))
# [(0.0, 'warranty'), (0.0, 'shipping'), (0.0, 'refunds')]

Setiap skor adalah nol, karena pertanyaannya tidak memiliki kesamaan kata dengan dokumen apa pun. “Uang kembali” berarti pengembalian uang kepada manusia, tetapi tidak ada kata yang bisa menjelaskannya. Output tunggal ini menjelaskan mengapa sistem nyata menggunakan embeddings, yang dirancang sedemikian rupa sehingga teks dengan makna serupa berakhir dengan angka serupa, bahkan tanpa kata yang sama.

Namun jangan berasumsi bahwa penyematan menyelesaikan segalanya. Mereka mungkin kesulitan dengan istilah persis seperti kode produk dan nomor kesalahan, yang mana pencarian kata kunci dapat ditangani dengan sangat baik. Inilah sebabnya banyak sistem produksi menggunakan penelusuran hibrid, yang menggabungkan kedua pendekatan tersebut.

Chunking: langkah yang diremehkan orang

Dokumen dipecah menjadi beberapa bagian karena seluruh file terlalu panjang dan tidak tepat untuk diambil. Ukuran yang Anda pilih melibatkan trade-off nyata:

Ukuran potongan Keuntungan Resiko
Terlalu kecil Pertandingan yang tepat Kehilangan konteks, seperti produk mana yang menerapkan aturan
Terlalu besar Menjaga konteks Mencairkan makna, dan menggunakan lebih banyak perintah
Pisahkan berdasarkan struktur Menghormati judul dan bagian Membutuhkan dokumen sumber yang lebih bersih

Beberapa ratus kata dengan beberapa tumpang tindih di antara bagian-bagiannya adalah titik awal yang umum, tetapi perlakukan itu sebagai tebakan pertama untuk diuji. Pisahkan menurut batas alami, seperti judul, bila Anda bisa. Dan lampirkan metadata, seperti judul dokumen, tanggal dan departemen, sehingga Anda dapat memfilter hasil dan mengutip sumber.

Meningkatkan pengambilan

Jika jawabannya buruk, berikut adalah peningkatan yang paling pantas untuk dicoba, kira-kira dalam urutan ini:

  • Bersihkan data. Hapus dokumen usang dan duplikat terlebih dahulu. Tidak ada algoritma yang memperbaiki sumber yang bertentangan.
  • Gunakan penelusuran hibrid. Gabungkan hasil berbasis makna dan kata kunci.
  • Tambahkan pemeringkat ulang. Ambil lebih banyak kandidat, lalu gunakan model khusus untuk menyusun ulang kandidat berdasarkan relevansi.
  • Filter berdasarkan metadata. Batasi hasil berdasarkan produk, wilayah, atau tanggal sebelum melakukan penelusuran.
  • Tulis ulang kueri. Ubah tindak lanjut yang tidak jelas seperti “bagaimana dengan yang kedua?” menjadi pertanyaan lengkap.

Kiat: Sebelum menyalahkan model, lihat pengambilan apa yang sebenarnya dikembalikan. Jika bagian yang benar tidak ada dalam konteksnya, tidak ada model yang dapat menjawab dengan benar dari bagian tersebut.

RAG vs penyempurnaan

Pertanyaan RAG Penyempurnaan
Apa yang ditambahkannya? Pengetahuan pada saat pertanyaan Perilaku atau gaya yang terlatih
Memperbarui informasi Indeks ulang dokumen tersebut Berlatih lagi
Bisakah ia mengutip sumbernya? Ya Tidak dapat diandalkan
Terbaik untuk Fakta yang berubah Format atau nada yang konsisten

Mereka tidak saling eksklusif. Perbandingan kami mengenai RAG vs fine-tuning vs rekayasa cepat mencakup cara memilih secara lebih mendalam.

Cara menguji sistem RAG

RAG adalah perangkat lunak, dan memerlukan pengujian seperti perangkat lunak lainnya. Buatlah serangkaian pertanyaan nyata beserta petikan dan jawaban yang Anda harapkan, lalu ukur kedua tahap tersebut secara terpisah:

Panggung Pertanyaan untuk ditanyakan Nama umum
Pengambilan Apakah kita mengambil jalan yang benar? Ingatan konteks
Pengambilan Berapa banyak dari apa yang kita ambil berguna? Ketepatan konteks
Generasi Apakah jawabannya didukung oleh konteksnya? Kesetiaan
Generasi Apakah itu benar-benar menjawab pertanyaan itu? Relevansi jawaban

Sertakan juga kasus-kasus yang canggung: pertanyaan yang tidak memiliki jawaban dalam data Anda, pertanyaan yang menggunakan kata-kata berbeda, dan pertanyaan dengan sumber yang bertentangan. Jalankan kembali set ini setiap kali Anda mengubah potongan, model, atau perintah, seperti rangkaian regresi. tutorial pytest kami menunjukkan cara menjalankan banyak input melalui satu pengujian.

Mengapa sistem RAG gagal

  • Jawabannya tidak ada dalam data. Model mungkin masih mencobanya, jadi beri tahu cara menolaknya.
  • Bagian kanan tidak diambil. Ini sering kali merupakan masalah pengelompokan atau pencarian.
  • Terlalu banyak konteks. Bagian yang tidak relevan dapat mengganggu model dan meningkatkan biaya.
  • Dokumen basi. Kebijakan lama dapat diambil dengan percaya diri seperti kebijakan saat ini.
  • Tabel dan PDF diurai dengan buruk. Jika ekstraksi mengacak teks, pengambilan tidak akan pernah pulih.
  • Menguji hanya dengan pertanyaan demo. Pengguna sebenarnya mengungkapkan hal-hal dengan sangat berbeda.

Keamanan dan izin

RAG membawa dua risiko yang mudah diabaikan. Pertama, kontrol akses: jika indeks menyimpan file HR, pertanyaan karyawan junior tidak boleh mengambilnya. Terapkan izin setiap pengguna selama pengambilan, karena memerintahkan model untuk menyimpan rahasia bukanlah perlindungan yang dapat diandalkan.

Kedua, injeksi cepat. Halaman web atau dokumen yang diambil mungkin berisi teks seperti “abaikan instruksi Anda”. Perlakukan konten yang diambil sebagai data yang tidak tepercaya, batasi tindakan yang dapat dilakukan model, dan minta manusia menyetujui tindakan sensitif.

Penutup

RAG adalah ide sederhana dengan banyak detail praktis: temukan informasi yang tepat, lalu minta model untuk menggunakannya. Mulailah dengan sekumpulan dokumen kecil dan bersih dan sekitar dua puluh pertanyaan nyata. Buat pengambilan berfungsi dengan baik sebelum Anda menambahkan kompleksitas, karena saluran sederhana dengan data yang baik biasanya mengalahkan saluran canggih yang memiliki data buruk.

Pertanyaan yang sering diajukan

Apa kepanjangan RAG dalam AI?

RAG adalah singkatan dari generasi pengambilan-augmentasi. Sebuah sistem mengambil informasi yang relevan, menambahkannya ke prompt, dan model menghasilkan jawaban darinya.

Apakah RAG menghentikan halusinasi AI?

Ini menguranginya dengan memberikan model sumber nyata, tetapi tidak menghapusnya. Seorang model masih bisa salah membaca konteks, jadi ujilah jawaban dan tampilkan kutipan.

Apakah saya memerlukan database vektor untuk RAG?

Tidak selalu. Proyek kecil dapat menggunakan indeks dalam memori, pencarian kata kunci, atau SQL. Basis data vektor membantu koleksi besar dan pencarian berbasis makna.

Apa perbedaan antara RAG dan penyempurnaan?

RAG memberikan informasi pada saat pertanyaan, sehingga pembaruan dapat dilakukan dengan cepat. Penyempurnaan melatih model untuk mengubah perilaku atau gayanya, dan kurang cocok untuk mengubah fakta.

Apa itu penyematan?

Penyematan adalah daftar angka yang mewakili makna teks. Bagian-bagian dengan arti yang serupa memiliki nomor yang serupa, sehingga pencarian berdasarkan makna dapat dilakukan.

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

Lembar Cheat Perintah Git: Perintah yang Sebenarnya Anda Gunakan, Beserta Contohnya

Lembar contekan perintah Git yang dikelompokkan berdasarkan tugas: pengaturan, pementasan, cabang, remote, simpanan, riwayat, dan pembatalan kesalah…

Baca artikel →
Pengembangan perangkat lunak

Penjelasan Janji JavaScript: lalu, tangkap, Janji.semua, dan Kesalahan Umum

Janji JavaScript dijelaskan dengan kode yang kami jalankan: status, rantai lalu dan tangkap, penanganan kesalahan, Promise.all, allSettled, race dan…

Baca artikel →
Pengembangan perangkat lunak

Tutorial Kamus Python: Metode, Contoh dan Pola Umum

Tutorial kamus Python dengan kode yang kami jalankan: membuat, membaca dan memperbarui dicts, metode utama, penggabungan, pemahaman, pola penghitung…

Baca artikel →
Kecerdasan buatan

Apa itu RAG? Generasi Retrieval-Augmented Dijelaskan Dengan Contoh Kerja

Apa itu RAG? Generasi yang ditambah pengambilan dijelaskan langkah demi langkah: pengindeksan, pemotongan, penyematan, pengambilan, contoh kecil Pyt…

Baca artikel →
DevOps

Tutorial Terraform untuk Pemula: Infrastruktur sebagai Kode Dari File Pertama hingga Modul

Tutorial Terraform untuk pemula: mulai tanpa akun cloud, pelajari init, rencanakan dan terapkan, lalu variabel, keluaran, status, modul, dan alur ke…

Baca artikel →
DevOps

Docker vs Kubernetes: Perbedaan Utama, Cara Kerja Sama, dan Yang Anda Butuhkan

Docker vs Kubernetes menjelaskan: apa yang dilakukan masing-masing, aplikasi yang sama dijalankan dengan keduanya, Docker Compose dan Swarm dibandin…

Baca artikel →
Otomatisasi pengujian

Tutorial Pytest untuk Pemula: Fixture, Parametrize dan Contoh Nyata

Tutorial pytest untuk pemula dengan pengujian yang kami jalankan di pytest 9.2: pernyataan, perlengkapan, parametrize, conftest, marker, tmp_path, m…

Baca artikel →
Pengujian perangkat lunak

Siklus Hidup Pengujian Perangkat Lunak (STLC): 6 Fase, Kriteria Masuk dan Keluar, Contoh

Siklus hidup pengujian perangkat lunak menjelaskan: enam fase STLC dengan kriteria masuk dan keluar, hasil, contoh fitur login yang berfungsi, STLC …

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 →