Menu

Menjelaskan Kode dengan AI: Prompt Baris demi Baris

Minta AI menjelaskan kode baris demi baris, sesuai levelmu, dengan tabel yang menunjukkan bagaimana nilai-nilainya berubah saat kode berjalan. Sebutkan apa yang sudah kamu ketahui supaya penjelasannya dimulai dari posisimu.

Setiap prompt di bawah bisa diedit: ubah, lalu buka di ChatGPT, Claude, atau aplikasi AI lain.

Untuk mendapat penjelasan kode yang berguna dari AI, sebutkan seberapa banyak yang sudah kamu ketahui, minta penjelasannya baris demi baris, dan minta trace: tabel nilai yang disimpan setiap variabel saat kode berjalan. "Jelaskan kode ini" saja menghasilkan ringkasan yang ditulis untuk pembaca rata-rata khayalan, yang biasanya terlalu dasar atau terlalu cepat untukmu.

Baris demi baris, dengan trace nilai

Kedua tab menanyakan fungsi pendek yang sama. Bandingkan apa yang bisa kamu cek dari masing-masing balasan.

Jelaskan kode ini: def running_max(nums): result = [] best = None for n in nums: if best is None or n > best: best = n result.append(best) return result print(running_max([3, 1, 4, 1, 5]))
Try it
Example replyReplies vary between models and runs.

Fungsi ini menghitung running maximum dari sebuah list. Fungsinya melakukan loop pada angka-angkanya, mencatat nilai terbesar yang sejauh ini terlihat di best, dan menambahkan nilai itu ke result di setiap langkah. Pengecekan best is None menangani elemen pertama. Pemanggilannya mencetak [3, 3, 4, 4, 5].

Fungsi ini berjalan dalam waktu O(n), karena mengunjungi setiap elemen sekali.

Balasan pertama akurat, dan hanya membantu kalau kamu sudah tahu apa itu running maximum. Balasan itu juga menambahkan catatan tentang time complexity yang tidak diminta siapa pun, jenis tambahan yang kamu dapat ketika model tidak tahu siapa yang membaca. Balasan kedua mengaitkan setiap kalimat dengan baris yang bisa kamu tunjuk, dan tabelnya membuat konkret apa yang hanya disebut sambil lalu oleh ringkasan: result.append(best) berjalan di setiap putaran, termasuk putaran di mana best tidak berubah. Itulah kenapa 3 muncul dua kali, dan kamu bisa melihatnya di baris 2 alih-alih menyimpulkannya dari "di setiap langkah".

Trace table juga menjadi pengecekan untuk penjelasannya sendiri. Kamu bisa memverifikasi setiap barisnya dengan menjalankan kode dengan print(n, best, result) di dalam loop. Kalau ada baris yang tidak sama dengan output sebenarnya, berarti penjelasannya salah di suatu tempat, dan sekarang kamu tahu di mana.

Jelaskan sesuai levelmu

Satu baris yang paling berguna dalam prompt penjelasan adalah apa yang sudah kamu ketahui. Baris itu memberi tahu model baris mana yang bisa dilewati dan di baris mana harus pelan-pelan. Kalimat peran juga bisa membantu ("Kamu adalah tutor untuk orang-orang di bulan pertama mereka belajar coding"), tapi cara kerjanya sama: memberi tahu model siapa pembacanya. Role prompting membahas apa yang diubah oleh sebuah peran dan apa yang tidak.

Blok ini adalah versi yang bisa dipakai ulang. Ubah level, bagian yang membingungkan, atau kodenya, dan penjelasannya ikut berubah.

Jelaskan sesuai levelku
Fill in
Parts
Jelaskan kode di bawah ini kepadaku.
Levelku: aku paham loop, list, dan dictionary, tapi belum paham lambda atau sorted dengan key. Bagian yang membingungkanku: dua baris terakhir.
text = "the cat and the hat" counts = {} for word in text.split(): counts[word] = counts.get(word, 0) + 1 top = sorted(counts.items(), key=lambda kv: kv[1], reverse=True)[:2] print(top)
Jelaskan baris-baris yang sudah aku pahami dalam satu kalimat saja secara keseluruhan. Pakai sisanya untuk bagian yang membingungkan, potongan demi potongan, sambil menunjukkan nilai yang dihasilkan setiap potongan untuk input ini.
Kurang dari 180 kata. Pakai hanya konsep-konsep yang ada di levelku, ditambah yang sedang kamu jelaskan.
Try it
Example replyReplies vary between models and runs.

Loop-nya menghitung setiap kata: counts berakhir sebagai {'the': 2, 'cat': 1, 'and': 1, 'hat': 1}.

Sekarang dua baris terakhir, dari dalam ke luar:

  • counts.items() memberikan pasangan-pasangan ('the', 2), ('cat', 1), ('and', 1), ('hat', 1).
  • lambda kv: kv[1] adalah fungsi kecil tanpa nama. Fungsi ini menerima satu pasangan dan mengembalikan item keduanya, yaitu jumlahnya. Untuk ('the', 2), fungsi ini mengembalikan 2.
  • sorted(..., key=...) mengurutkan pasangan-pasangan itu berdasarkan nilai yang dikembalikan fungsi tadi, jadi pengurutannya berdasarkan jumlah. reverse=True menaruh yang terbesar di depan. Kata-kata dengan jumlah yang sama tetap dalam urutan aslinya.
  • [:2] menyimpan dua pasangan pertama.

Jadi top adalah [('the', 2), ('cat', 1)], dan itulah yang dicetak.

"Kata-kata dengan jumlah yang sama tetap dalam urutan aslinya" adalah detail yang dilewatkan oleh penjelasan yang terburu-buru, dan itulah alasan cat mendapat posisi kedua, bukan and atau hat. sorted di Python bersifat stabil, dan reverse=True mempertahankan kestabilan itu. Kamu tidak akan terpikir untuk menanyakannya, dan meminta "nilai yang dihasilkan setiap potongan untuk input ini" itulah yang memunculkannya ke permukaan.

Tanyakan satu bagian, bukan seluruh file

Menempel file 500 baris lalu bertanya "ini fungsinya apa" menghasilkan tur struktur file itu. Ketika kamu buntu di satu fungsi, tempel fungsi itu dan baris-baris yang memanggilnya, lalu tanyakan langsung: "Kenapa fungsi ini langsung return ketika list-nya kosong?" atau "Apa yang dilakukan yield di baris 12, dan apa yang berubah kalau diganti return?" Pertanyaan yang sempit mendapat jawaban tentang kodemu; pertanyaan yang luas mendapat jawaban tentang kode yang mirip dengan kodemu.

Untuk codebase besar yang belum kamu kenal, balik caranya: minta peta dulu ("sebutkan modul-modul utama dan tanggung jawab masing-masing, satu baris per modul"), lalu tanyakan modul yang kamu butuhkan. Ini adalah prompt chain kecil, dan setiap langkahnya menjaga jawaban model tetap cukup pendek untuk dicek.

Jelaskan lewat bahasa yang kamu kuasai

Kode dalam bahasa yang belum kamu kenal lebih mudah dibaca ketika penjelasannya berpijak pada bahasa yang kamu kuasai. Sebutkan itu di prompt: "Aku paham Python. Jelaskan fungsi Go ini dan tunjukkan setiap bagian di mana perilakunya berbeda dari yang akan diperkirakan programmer Python." Perbedaan-perbedaan itulah tempat kesalahpahaman bersembunyi: pembagian bilangan bulat, zero value alih-alih None, slice yang berbagi memori dengan array asalnya. Penjelasan biasa tentang kode Go itu akan menggambarkan baris-baris tersebut dengan benar tanpa pernah memberitahumu bahwa naluri kamu tentang baris-baris itu keliru.

Cek apakah kamu sudah paham

Penjelasan yang kamu baca dan setujui masih bisa membuatmu tidak mampu menulis kodenya sendiri. Dua prompt ini menutup celah itu:

  • Tebak dulu. Sebelum menjalankan kode atau meminta penjelasan, tuliskan apa yang menurutmu dicetaknya. Lalu minta model menjelaskan hanya baris-baris di mana tebakanmu salah.
  • Jelaskan ulang. Tulis penjelasanmu sendiri dan minta model menunjukkan apa pun yang salah atau kurang, tanpa menulis ulang penjelasanmu.
Beri aku kuis tentang kode ini
Fill in
Aku baru saja membaca penjelasan tentang kode Python ini: def running_max(nums): result = [] best = None for n in nums: if best is None or n > best: best = n result.append(best) return result Ajukan 3 pertanyaan yang mengecek apakah aku benar-benar memahaminya, satu per satu. Sertakan satu pertanyaan di mana aku harus menebak output untuk input yang baru. Tunggu jawabanku sebelum mengajukan pertanyaan berikutnya, dan beri tahu apakah jawabanku benar dan kenapa.
Try it
Example replyReplies vary between models and runs.

Pertanyaan 1 dari 3: apa yang dikembalikan running_max([2, 7, 5, 9])? Hitung dulu sebelum kamu menjalankannya.

Pendekatan yang sama bisa dipakai ketika sebuah program berperilaku salah, tapi saat itu kamu butuh penyebabnya, bukan pelajaran: lihat prompt untuk debugging. Ketika kode di depanmu ditulis oleh AI, penjelasan baris demi baris adalah cara cepat untuk me-review-nya sebelum kamu menyimpannya; prompt untuk menulis kode menyebutkan pengecekan-pengecekan lain yang perlu dijalankan.

Pertanyaan yang sering diajukan

Bagaimana cara meminta ChatGPT atau Claude menjelaskan kode?

Tempel kodenya dan sebutkan tiga hal: apa yang sudah kamu ketahui, bagian mana yang membingungkanmu, dan dalam bentuk apa kamu ingin penjelasannya. "Jelaskan setiap baris dalam satu kalimat, lalu tunjukkan tabel variabel-variabel setelah setiap putaran loop" menghasilkan jawaban yang jauh lebih berguna daripada "jelaskan kode ini".

Apa itu trace table?

Trace table mengikuti sebuah program saat berjalan: satu baris per langkah (sering kali satu putaran loop), satu kolom per variabel, dan nilai setiap variabel di titik itu. Memintanya mengubah deskripsi yang abstrak menjadi nilai-nilai konkret yang bisa kamu cocokkan dengan kodenya. Ini adalah catatan tertulis dari apa yang ditunjukkan debugger saat kamu menjalankan program langkah demi langkah.

Bisakah AI menjelaskan kode dalam bahasa yang tidak aku kuasai?

Bisa, dan ini salah satu hal paling berguna untuk diminta. Sebutkan bahasa yang kamu kuasai dan minta model membandingkannya: "Aku paham Python; jelaskan kode Rust ini dan tunjukkan di mana perilakunya berbeda dari Python." Cek klaim-klaim tentang perilaku bahasanya dengan menjalankan contoh-contoh kecil, karena penjelasan bisa salah dengan sangat yakin di bagian detail.

Apakah memakai AI untuk menjelaskan kode buruk untuk belajar?

Tergantung apa yang kamu lakukan sesudahnya. Membaca penjelasan lalu langsung lanjut tidak banyak mengajarkan apa-apa. Menebak output sebelum menjalankan kode, meminta model memberimu kuis, atau menjelaskan ulang kodenya lalu bertanya apa yang salah dari penjelasanmu semuanya membuatmu berpikir sendiri, dan di situlah proses belajar terjadi.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai