Cara Pakai Base64 di Python: Enkode & Dekode String & Gambar

1. Apa itu Base64? Cara penggunaan dasar di Python

Apa itu Base64? Base64 adalah metode untuk mengkodekan data biner ke dalam format teks. Khususnya, digunakan dalam email, URL, dan komunikasi web untuk mengirim data biner secara aman. Teknologi ini memungkinkan pengkodean gambar atau file sehingga dapat dipertukarkan secara aman berbasis teks. Keuntungan menggunakan Base64 di Python Di Python, dengan menggunakan pustaka standar base64, Anda dapat melakukan enkoding dan dekoding Base64 dengan mudah tanpa perlu instalasi tambahan. Kode berikut menunjukkan cara mengenkode string ke format Base64, lalu mendekodenya kembali ke bentuk semula。
import base64

# Data yang akan dienkode
data = "Halo"
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data)  # b'44GT44KT44Gr44Gh44Gv'

# Dekode kembali ke data asli
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data)  # Halo
  • b64encode() fungsi mengkodekan urutan byte ke format Base64. encode('utf-8') digunakan untuk mengubah string menjadi urutan byte.
  • b64decode() fungsi mendekode data yang telah dienkode kembali ke string semula.

2. Langkah melakukan enkoding Base64 dengan Python

Enkoding string Base64 enkoding dilakukan setelah mengubah teks atau data menjadi urutan byte. Pada kode berikut, ditunjukkan langkah-langkah mengenkode string dengan Python.
import base64

# Enkoding string
text = "Python Base64"
encoded_text = base64.b64encode(text.encode('utf-8'))
print(encoded_text)  # b'UHl0aG9uIEJhc2U2NA=='
Penjelasan: encode('utf-8') dengan mengubah string menjadi urutan byte, dan b64encode() melakukan enkoding Base64. Data yang telah dienkoding ditampilkan sebagai urutan byte.

3. Cara Kerja Base64 Decode dan Contoh

Cara Mengembalikan Data yang Di-encode Berikut adalah contoh cara mendekode data yang telah di-encode dengan Base64 kembali ke string asli。
import base64

# Data yang di-encode dengan Base64
encoded_data = b'UHl0aG9uIGlzIGdyZWF0'
# Decode dan kembalikan ke string asli
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data)  # Python is great
Poin: Data yang didecode dikembalikan sebagai urutan byte, jadi gunakan decode('utf-8') untuk mengubahnya kembali menjadi string. Dengan cara ini, string yang di-encode dapat dipulihkan ke format aslinya。

4. Cara Meng-encode dan Decode File Gambar dengan Base64 di Python

Mengubah File Gambar ke Format Base64 Base64 dapat meng-encode data biner seperti file gambar. Pada contoh berikut, kami memperkenalkan cara meng-encode file gambar ke Base64 dan menyimpannya dalam format teks.
import base64

# Membaca file gambar dan meng-encode ke format Base64
with open('image.png', 'rb') as img_file:
    encoded_image = base64.b64encode(img_file.read())
    print(encoded_image)
Cara Mengembalikan File Gambar ke Aslinya Berikut adalah kode untuk mendecode file gambar yang telah di-encode, dan mengembalikannya ke format gambar.
import base64

# Data gambar yang telah di-encode
encoded_image = b'...'  # Data yang di-encode

# Mendecode dan menyimpan sebagai file gambar
with open('decoded_image.png', 'wb') as img_file:
    img_file.write(base64.b64decode(encoded_image))
Penjelasan: Dengan menggunakan b64encode() untuk meng-encode gambar, dan b64decode() untuk mendecode, Anda dapat mengembalikan data ke format biner.

5. Contoh Penerapan Praktis Base64

Contoh Penggunaan pada Aplikasi Web Base64 sangat berguna saat bertukar. Misalnya, berikut contoh API yang mengonversi gambar ke format Base64 dan mengembalikannya sebagai respons JSON.
from flask import Flask, jsonify
import base64

app = Flask(__name__)

@app.route('/image')
def get_image():
    with open('image.png', 'rb') as image_file:
        encoded_image = base64.b64encode(image_file.read()).decode('utf-8')
    return jsonify({'image': encoded_image})

if __name__ == '__main__':
    app.run(debug=True)
API ini adalah contoh sederhana yang mengkodekan gambar ke Base64 dan mengembalikannya dalam JSON. Pada aplikasi web, ini berguna untuk menyimpan gambar di basis data atau bertukar data gambar melalui komunikasi API.

6. Hal-hal yang Perlu Diperhatikan dan Batasan Enkode Base64

Peningkatan Ukuran Data Enkode Base64 memiliki kelemahan bahwa ukuran data meningkat sekitar 33%. Ini karena Base64 mengubah 3 byte data menjadi 4 byte teks. Misalnya, gambar 1 MB yang dienkode ke Base64 menjadi 1,33 MB. Contoh Konkret Peningkatan Ukuran Data Jika file berukuran 100 KB dienkode, ukurannya menjadi sekitar 133 KB. Ketika sering bertukar file berukuran besar, hal ini dapat memengaruhi kecepatan transmisi dan ruang penyimpanan, sehingga penting untuk menggabungkan teknik optimasi dan kompresi.

Ringkasan

Dalam artikel ini, kami menjelaskan cara melakukan enkoding dan dekoding Base64 di Python, contoh penerapan praktis, serta keuntungan dan kerugian enkoding Base64. Base64 adalah teknologi yang sangat berguna untuk komunikasi dan penyimpanan data, terutama banyak digunakan dalam aplikasi web dan API. Namun, penting untuk mempertimbangkan batasan bahwa ukuran data akan bertambah, dan menggunakannya pada situasi yang tepat. Silakan manfaatkan teknologi ini dalam proyek-proyek Anda ke depan.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール