I/O #
Input/Output (I/O) dalam Ruby melibatkan interaksi dengan pengguna, file, atau perangkat lain untuk membaca dan menulis data. Ruby menyediakan berbagai metode dan kelas untuk menangani operasi I/O, baik itu input dari keyboard, output ke layar, atau manipulasi file di sistem.
Input dan Output Dasar #
Output ke Layar #
Ruby menyediakan beberapa metode untuk menampilkan output ke layar:
-
puts: Menampilkan output dengan menambahkan baris baru setelah setiap argumen.Contoh:
puts "Hello, World!" puts "This is Ruby."Output:
Hello, World! This is Ruby. -
print: Menampilkan output tanpa menambahkan baris baru.Contoh:
print "Hello, " print "World!"Output:
Hello, World! -
p: Mirip denganputs, tetapi juga menampilkan representasi literal dari objek.Contoh:
p "Hello, World!" p [1, 2, 3]Output:
"Hello, World!" [1, 2, 3]
Input dari Pengguna #
Untuk menerima input dari pengguna, Ruby menggunakan metode gets. Metode ini membaca input dari pengguna sebagai string, termasuk karakter newline di akhir input.
-
gets: Membaca satu baris input dari pengguna.Contoh:
print "Enter your name: " name = gets.chomp puts "Hello, #{name}!"Penjelasan:
getsmembaca input dari pengguna.chompmenghapus karakter newline (\n) dari akhir string yang dihasilkan olehgets.
Penanganan File #
Ruby menyediakan kelas File dan IO untuk membaca dari dan menulis ke file.
Membuka dan Menutup File #
-
File.open: Membuka file dan mengembalikan objekFile.Contoh:
file = File.open("example.txt", "w") file.puts "Hello, World!" file.closePenjelasan:
"example.txt"adalah nama file yang akan dibuka atau dibuat."w"adalah mode pembukaan file (wuntuk write,runtuk read,auntuk append).- Jangan lupa menutup file setelah selesai menggunakan metode
close.
-
File.opendengan blok: Memastikan file ditutup secara otomatis setelah blok selesai dieksekusi.Contoh:
File.open("example.txt", "w") do |file| file.puts "Hello, World!" endPenjelasan:
- File akan otomatis ditutup setelah blok selesai dieksekusi, bahkan jika terjadi kesalahan dalam blok tersebut.
Membaca dari File #
-
File.read: Membaca seluruh isi file dan mengembalikannya sebagai string.Contoh:
content = File.read("example.txt") puts contentPenjelasan:
File.readmembaca seluruh isi file dan mengembalikannya sebagai string.
-
File.readlines: Membaca seluruh isi file dan mengembalikannya sebagai array dari baris-barisnya.Contoh:
lines = File.readlines("example.txt") lines.each { |line| puts line }Penjelasan:
File.readlinesmembaca file dan mengembalikan setiap baris sebagai elemen dalam array.
-
Iterasi melalui file dengan
each_line:Contoh:
File.open("example.txt", "r") do |file| file.each_line do |line| puts line end endPenjelasan:
each_linedigunakan untuk iterasi melalui setiap baris dalam file.
Menulis ke File #
-
putsatauwriteke file:Contoh:
File.open("example.txt", "w") do |file| file.puts "Hello, World!" file.write "This is another line." endPenjelasan:
putsmenulis string ke file dan menambahkan baris baru, sementarawritemenulis string tanpa menambahkan baris baru.
Mode Pembukaan File #
Saat membuka file, Anda dapat menentukan mode pembukaan. Berikut beberapa mode yang sering digunakan:
"r": Membuka file untuk membaca. Jika file tidak ada, akan menghasilkan kesalahan."w": Membuka file untuk menulis. Jika file ada, isinya akan dihapus. Jika file tidak ada, akan dibuat file baru."a": Membuka file untuk menambahkan (append). Jika file tidak ada, akan dibuat file baru."r+": Membuka file untuk membaca dan menulis. Tidak menghapus isi file."w+": Membuka file untuk membaca dan menulis. Menghapus isi file jika file ada."a+": Membuka file untuk membaca dan menulis. Menambahkan ke akhir file.
Contoh:
File.open("example.txt", "a") do |file|
file.puts "Appending this line."
end
Penjelasan:
- Mode
"a"digunakan untuk menambahkan teks ke akhir file tanpa menghapus konten yang sudah ada.
Penanganan Direktori #
Ruby juga menyediakan metode untuk bekerja dengan direktori.
Membuat Direktori #
-
Dir.mkdir: Membuat direktori baru.Contoh:
Dir.mkdir("new_directory")Penjelasan:
Dir.mkdirmembuat direktori baru bernama"new_directory".
Mengubah Direktori #
-
Dir.chdir: Mengubah direktori kerja saat ini.Contoh:
Dir.chdir("new_directory")Penjelasan:
Dir.chdirmengubah direktori kerja ke"new_directory".
Membaca Isi Direktori #
-
Dir.entries: Mengembalikan array yang berisi daftar file dan direktori dalam direktori tertentu.Contoh:
entries = Dir.entries(".") puts entriesPenjelasan:
Dir.entries(".")mengembalikan daftar file dan direktori dalam direktori saat ini.
-
Dir.glob: Mengembalikan daftar file yang cocok dengan pola tertentu.Contoh:
files = Dir.glob("*.txt") puts filesPenjelasan:
Dir.glob("*.txt")mengembalikan daftar semua file dengan ekstensi.txtdalam direktori saat ini.
Error Handling dalam I/O #
Ketika bekerja dengan I/O, penting untuk menangani kemungkinan kesalahan, seperti file yang tidak ditemukan atau masalah izin. Ruby memungkinkan Anda menangani kesalahan ini menggunakan blok begin...rescue.
Contoh:
begin
file = File.open("non_existent_file.txt", "r")
rescue Errno::ENOENT => e
puts "File not found: #{e.message}"
ensure
file.close if file
end
Penjelasan:
- Blok
beginmencoba membuka file. - Jika file tidak ditemukan,
rescuemenangkap kesalahan dan menampilkan pesan. ensurememastikan file ditutup jika berhasil dibuka.
Kesimpulan #
Penanganan I/O di Ruby melibatkan operasi dasar seperti membaca dari dan menulis ke layar, file, dan direktori. Ruby menyediakan kelas File dan Dir serta berbagai metode yang memudahkan interaksi dengan sistem file. Menangani I/O dengan benar juga mencakup penanganan kesalahan untuk memastikan program dapat menangani situasi seperti file yang tidak ditemukan atau masalah izin. Dengan memahami dasar-dasar ini, Anda dapat melakukan berbagai operasi I/O dengan Ruby secara efektif. Jika Anda memiliki pertanyaan lebih lanjut atau membutuhkan penjelasan tambahan, jangan ragu untuk bertanya!