Mengapa BufferedReader
Pembacaan dengan buffer dan tanpa buffer
Mengapa BufferedReader adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Membaca Masukan di Java
Sebagian besar program nyata memerlukan masukan dari pengguna: nama, angka, atau perintah. Java menyediakan beberapa cara untuk membaca masukan, tetapi salah satu cara yang paling umum dan efisien adalah BufferedReader.
Dalam pelajaran ini, Anda akan mempelajari mengapa BufferedReader ada dan kapan sebaiknya menggunakannya.
Dari Mana Masukan Berasal
Saat Anda mengetik di konsol, teks Anda masuk melalui System.in. Ini adalah aliran bita tingkat rendah — aliran ini memberikan bita mentah, bukan teks yang mudah digunakan.
Untuk mengubah bita tersebut menjadi karakter yang dapat dibaca dan baris utuh, kita membungkus System.in dengan kelas pembantu. BufferedReader adalah pembungkus yang memudahkan hal ini.
Arti 'Berpenyangga'
Membaca satu bita setiap kali dari papan ketik atau berkas berjalan lambat. Penyangga adalah bagian memori yang menampung banyak karakter sekaligus.
BufferedReader mengisi penyangga ini dalam jumlah besar, lalu memberikan data kepada Anda dengan cepat. Lebih sedikit akses ke aliran di bawahnya berarti kinerja yang lebih baik, terutama untuk masukan berukuran besar.
Konfigurasi Dua Lapis
BufferedReader tidak dapat membaca System.in secara langsung karena aliran tersebut memberikan bita. Pertama-tama, kita membungkusnya dalam InputStreamReader, yang mengubah bita menjadi karakter.
System.in→ bitaInputStreamReader→ karakterBufferedReader→ baris berpenyangga
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);Baris Tunggal Klasik
Anda akan melihat baris persis ini di hampir setiap program Java yang membaca masukan dari konsol. Baris ini menggabungkan kedua pembungkus dalam satu pernyataan.
Ingat: InputStreamReader di bagian dalam menangani perubahan bita menjadi karakter, sedangkan BufferedReader di bagian luar menambahkan penyanggaan serta metode readLine() yang praktis.
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));Impor yang Diperlukan
Kelas-kelas ini berada dalam paket java.io, jadi Anda harus mengimpornya di bagian atas berkas Anda.
Pembacaan masukan dapat gagal, sehingga metode-metode tersebut melempar IOException — Anda juga harus mengimpornya atau menanganinya, yang akan kita bahas nanti.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;BufferedReader dibandingkan dengan Scanner
Pemula biasanya pertama kali mengenal Scanner. Alat ini lebih mudah digunakan karena dapat menguraikan angka secara langsung, tetapi lebih lambat.
- Scanner: penguraian mudah, tetapi beban tambahannya lebih besar.
- BufferedReader: lebih cepat dan membaca seluruh baris, tetapi Anda harus menguraikan angka sendiri.
Untuk masukan berukuran besar atau pemrograman kompetitif, BufferedReader lebih unggul dalam hal kecepatan.
Membaca Satu Baris Penuh
Metode andalannya adalah readLine(). Metode ini membaca semua yang diketik pengguna hingga mereka menekan Enter, lalu mengembalikannya sebagai String tanpa karakter baris baru.
Jika tidak ada masukan lagi, readLine() mengembalikan null. Kita akan membahasnya dalam pelajaran berikutnya.
String name = br.readLine();
System.out.println("Hello, " + name);Program Pembacaan Lengkap
Berikut adalah program lengkap. Program ini membaca satu baris dan menyapa pengguna. Perhatikan throws IOException pada main — ini adalah cara singkat untuk membiarkan kesalahan masukan diteruskan ke pemanggil selama belajar.
Cuplikan ini menunggu masukan dari papan ketik, jadi tidak dapat dijalankan otomatis di sini, tetapi merupakan Java yang valid.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String name = br.readLine();
System.out.println("Hi " + name);
}
}Tidak Perlu Masukan untuk Membuktikan Program Berjalan
Untuk melihat bahwa pembungkus tersebut ada dan dapat dikompilasi, berikut versi yang dapat dijalankan dan tidak membaca apa pun — versi ini hanya memastikan bahwa objek berhasil dibuat.
Dalam aplikasi nyata, Anda akan memanggil readLine(), tetapi versi ini mencetak pesan agar dapat langsung Anda jalankan.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("BufferedReader is ready!");
}
}Kapan Menggunakan BufferedReader
Gunakan BufferedReader ketika Anda:
- membaca banyak baris atau berkas besar,
- mementingkan kecepatan,
- menginginkan teks sederhana yang dibaca baris demi baris.
Gunakan Scanner jika Anda menginginkan penguraian angka dengan cepat dan masukannya sedikit. Keduanya valid — pilih alat yang tepat.
Uji Cepat
Uji pemahaman Anda tentang konfigurasi BufferedReader.
Ringkasan
Anda telah mempelajari bahwa System.in adalah aliran bita yang dibungkus oleh InputStreamReader (bita menjadi karakter), lalu oleh BufferedReader (penyanggaan serta readLine()).
Penyanggaan meningkatkan kinerja, dan BufferedReader sangat cocok untuk masukan berukuran besar atau berbasis baris. Berikutnya: membaca baris secara lebih mendetail.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengapa BufferedReader” gratis?
Ya — teks lengkap “Mengapa BufferedReader” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengapa BufferedReader”?
Pembacaan dengan buffer dan tanpa buffer Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mengapa BufferedReader” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengapa BufferedReader
- Membaca Baris
- Mengurai Angka dari Masukan
- Menutup Aliran dengan Aman