Skip to main content

Latihan: Translator

Studi Kasus: Penerjemah Berkas Teks​

Pada latihan ini, kita akan membuat sebuah alat atau script Python yang membaca berkas teks .txt, menerjemahkan isinya ke bahasa lain, misalnya bahasa Jepang, kemudian menyimpan hasil terjemahan tersebut ke dalam berkas baru.

Latihan ini menggabungkan beberapa konsep yang sudah dipelajari sebelumnya:

  • File I/O.
  • Membaca file menggunakan open().
  • Menulis file menggunakan mode w.
  • Menggunakan with untuk mengelola file.
  • Error handling menggunakan try...except.
  • Menggunakan library eksternal Python.
  • Menerjemahkan teks ke bahasa tujuan.

Alur sederhana program:

File sumber
│
▼
Baca teks
│
▼
Proses penerjemahan
│
▼
Hasil terjemahan
│
▼
File baru

Instalasi Modul translate​

Untuk melakukan proses penerjemahan, kita menggunakan library eksternal bernama translate.

Library tersebut perlu diinstal terlebih dahulu menggunakan pip.

Jalankan perintah berikut pada terminal:

pip install translate

Setelah proses instalasi selesai, library dapat digunakan di dalam program Python.

Struktur File​

Sebagai contoh, kita memiliki file sumber bernama:

test.txt

File tersebut berisi teks yang ingin diterjemahkan.

Kemudian program akan menghasilkan file baru:

test-ja.txt

File test-ja.txt digunakan untuk menyimpan hasil terjemahan.

Struktur sederhananya:

project/
├── test.txt
└── translator.py

Setelah program dijalankan, hasilnya menjadi:

project/
├── test.txt
├── test-ja.txt
└── translator.py

Mengimpor Translator​

Library translate menyediakan class Translator yang digunakan untuk melakukan proses penerjemahan.

Import menggunakan:

from translate import Translator

Setelah itu, Translator dapat digunakan untuk menentukan bahasa tujuan.

Membaca File Sumber​

Langkah pertama adalah membaca isi file test.txt.

Gunakan with open() dengan mode r:

with open("./test.txt", mode="r") as my_file:
text = my_file.read()

Penjelasan:

  • open() digunakan untuk membuka file.
  • ./test.txt menunjukkan lokasi file menggunakan relative path.
  • mode="r" digunakan untuk membaca file.
  • read() membaca seluruh isi file.
  • Hasil pembacaan disimpan ke dalam variabel text.
  • with memastikan file ditutup secara otomatis setelah selesai digunakan.

Membuat Translator​

Setelah teks berhasil dibaca, kita membuat objek Translator.

Contoh:

translator = Translator(to_lang="ja")

Parameter:

to_lang="ja"

digunakan untuk menentukan bahasa tujuan, yaitu bahasa Jepang.

Setelah objek translator dibuat, kita dapat menggunakan objek tersebut untuk menerjemahkan teks.

Menerjemahkan Teks​

Gunakan method translate() untuk memproses teks.

translation = translator.translate(text)

Variabel text berisi teks asli dari file.

Hasil penerjemahan kemudian disimpan dalam variabel:

translation

Sehingga alurnya:

test.txt
│
▼
text
│
▼
translator.translate()
│
▼
translation

Menyimpan Hasil Terjemahan​

Setelah proses penerjemahan selesai, hasilnya perlu disimpan ke file baru.

Gunakan mode w:

with open("./test-ja.txt", mode="w") as my_file_2:
my_file_2.write(translation)

Mode w digunakan untuk menulis hasil terjemahan ke dalam file.

Jika test-ja.txt belum ada, Python akan membuat file tersebut.

Jika file sudah ada, isinya akan ditimpa dengan hasil terjemahan baru.

Menambahkan Error Handling​

Program File I/O dapat mengalami error, misalnya ketika file sumber tidak ditemukan.

Untuk menangani kondisi tersebut, gunakan try...except.

Contoh:

try:
with open("./test.txt", mode="r") as my_file:
text = my_file.read()

except FileNotFoundError as err:
print("File tidak ditemukan, periksa kembali path file Anda!")
raise err

Jika test.txt tidak ditemukan, Python akan menghasilkan FileNotFoundError.

Blok except kemudian menangkap error tersebut dan menampilkan pesan yang lebih mudah dipahami.

Program Lengkap​

Berikut implementasi lengkap latihan Translator:

from translate import Translator

try:
# 1. Membaca file teks sumber
with open("./test.txt", mode="r") as my_file:
text = my_file.read()

# 2. Inisialisasi translator ke bahasa tujuan
translator = Translator(to_lang="ja")
translation = translator.translate(text)

# 3. Menulis hasil terjemahan ke file baru
with open("./test-ja.txt", mode="w") as my_file_2:
my_file_2.write(translation)

print("Penerjemahan selesai! Hasil disimpan di test-ja.txt")

except FileNotFoundError as err:
print("File tidak ditemukan, periksa kembali path file Anda!")
raise err

Penjelasan Program​

Program dimulai dengan mengimpor Translator:

from translate import Translator

Kemudian seluruh proses utama ditempatkan di dalam blok try:

try:
...

Tujuannya adalah menangani kemungkinan FileNotFoundError ketika file sumber dibuka.

Membaca File​

Program membuka test.txt menggunakan mode r:

with open("./test.txt", mode="r") as my_file:
text = my_file.read()

Seluruh isi file kemudian disimpan ke dalam variabel text.

Membuat Translator​

Program membuat translator dengan bahasa tujuan Jepang:

translator = Translator(to_lang="ja")

Melakukan Penerjemahan​

Isi file diterjemahkan menggunakan:

translation = translator.translate(text)

Hasilnya disimpan di dalam variabel translation.

Hasil terjemahan kemudian disimpan ke test-ja.txt:

with open("./test-ja.txt", mode="w") as my_file_2:
my_file_2.write(translation)

Menampilkan Pesan​

Setelah proses selesai, program menampilkan:

print("Penerjemahan selesai! Hasil disimpan di test-ja.txt")

Pesan tersebut memberikan informasi kepada pengguna bahwa proses penerjemahan telah selesai.

Alur Kerja Program​

Secara keseluruhan, program bekerja dengan alur berikut:

test.txt
│
▼
open(..., "r")
│
▼
read()
│
▼
text
│
▼
Translator(to_lang="ja")
│
▼
translator.translate()
│
▼
translation
│
▼
open(..., "w")
│
▼
write()
│
▼
test-ja.txt

Error Handling​

Jika file sumber tidak tersedia:

test.txt
│
▼
open()
│
▼
FileNotFoundError
│
▼
except FileNotFoundError
│
▼
Pesan error

Program menampilkan:

File tidak ditemukan, periksa kembali path file Anda!

Dengan demikian, pengguna mendapatkan informasi mengenai masalah yang terjadi.

Konsep yang Dipraktikkan​

Latihan Translator menggabungkan beberapa konsep Python yang telah dipelajari.

KonsepPenggunaan
open()Membuka file
mode="r"Membaca file
read()Mengambil isi file
withMengelola file secara aman
TranslatorMembuat objek penerjemah
translate()Menerjemahkan teks
mode="w"Menulis file
write()Menyimpan hasil terjemahan
try...exceptMenangani error
FileNotFoundErrorMenangani file yang tidak ditemukan

Ringkasan​

Pada latihan Exercise: Translator, kita membuat program yang membaca teks dari sebuah file, menerjemahkannya, kemudian menyimpan hasilnya ke file baru.

Alur utamanya adalah:

  1. Menginstal library translate.
  2. Mengimpor Translator.
  3. Membuka file sumber menggunakan mode r.
  4. Membaca isi file menggunakan read().
  5. Membuat objek Translator.
  6. Menentukan bahasa tujuan menggunakan to_lang.
  7. Menerjemahkan teks menggunakan translate().
  8. Membuka file tujuan menggunakan mode w.
  9. Menyimpan hasil menggunakan write().
  10. Menangani FileNotFoundError menggunakan try...except.

Latihan ini merupakan contoh penerapan beberapa konsep File I/O, Error Handling, dan External Library dalam satu program Python.