"JSON itu kayak kotak penyimpanan ajaib, bikin data kita rapi dan gampang diakses! 🗂️✨"
Doa: "Ya Tuhan, bantu kami mengolah data dengan JSON biar program kami mendukung lingkungan dan komunitas. Aamiin. 🙏"
Yo, bro, selamat datang di JSON Crash Courses, bagian spesial dari Tutorial Python ala Arry Hutomo! 🚀 Di sini, kita bakal ngegas belajar JSON (JavaScript Object Notation) dari nol sampe jago, pake 10 contoh query Python dari yang super gampang sampe yang bikin otak ngebul! 💥 JSON itu kayak kotak penyimpanan digital yang super rapi, cocok buat ngatur data konservasi mangrove, donasi, atau laporan kegiatan, kayak yang dibutuhin tim BioMac di Chapter 20. Kita akan pake modul json
dari Chapter 19, plus sentuhan dari Chapter 10-18 (modul, error handling, OOP, regex, datetime, logging), dengan gaya milenial yang asik dan penjelasan yang bikin pemula ngerti. Yuk, kita jadi pengelola data kece bareng Mas Arry Hutomo dan ECC Team! 😎🌱
json
untuk ubah data Python ke JSON dan sebaliknya. 💻Mas Azmi: "Mas Arry, tim BioMac butuh ngelola data kegiatan, donasi, sama jadwal tanam pohon pake cara yang rapi. Aku denger JSON bagus buat ini, tapi aku ga ngerti caranya. Bisa ajarin dari awal sampe bikin sistem keren kayak di Chapter 20? 🧐😍"
Mas Arry: "Chill, Mas Azmi! 😎 JSON itu gampang banget kalo dijelasin step-by-step. Aku sama ECC Team bakal bikin JSON Crash Courses dengan 10 contoh, dari yang simpel kayak nyanyi lagu pop sampe yang kompleks kayak komposer symphony! 🎶 Kita bikin sistem yang bantu BioMac, plus penjelasan detail biar kamu jago sendiri. Deal? 💪"
Mas Azmi: "Kece banget, Mas! 😍 Aku pengen contoh yang bener-bener praktis, dari yang gampang sampe yang bikin tim kagum. Bisa? 🚀"
Mas Arry: "Beres, bro! 😎 Kita bikin 10 variasi query Python, mulai dari nyimpen data pohon sampe laporan kegiatan dengan logging dan datetime. Semua pake JSON, dan aku kasih narasi yang bikin kamu ngerti kenapa kodenya begitu. Yuk, ngegas bareng! 🚴♂️"
Berikut 10 contoh query Python yang dirancang untuk ngajarin JSON dari level pemula sampe pro, dengan tema konservasi mangrove dan donasi untuk dukung isu lingkungan dan sosial ekonomi. Setiap query punya penjelasan detail, output, logika, dan Do and Don'ts, ditulis dengan gaya asik ala Arry Hutomo. Yuk, kita mulai petualangan JSON! 😎🚀
Konsep: JSON (Chapter 19) bikin kita bisa ubah data Python (kayak dictionary) ke string JSON yang rapi, kayak nyimpen data pohon di kotak digital.
Cara Import: Butuh modul json
yang udah ada di Python. Jalankan dengan python nama_file.py
.
import json
data_pohon = {"acara": "Tanam Pohon", "pohon": 10, "lokasi": "Pantai"}
json_data = json.dumps(data_pohon)
print(f"Data dalam JSON: {json_data}")
Output:
Data dalam JSON: {"acara": "Tanam Pohon", "pohon": 10, "lokasi": "Pantai"}
Penjelasan Output: Outputnya nunjukin string JSON: {"acara": "Tanam Pohon", "pohon": 10, "lokasi": "Pantai"}
. Ini adalah dictionary Python yang diubah jadi format JSON pake json.dumps()
. String JSON pake kutip ganda untuk teks, bikin data rapi dan universal, kayak nyimpen lagu di playlist digital! 🎶
Penjelasan Query: Bayangin kamu punya catatan sederhana tentang acara tanam pohon BioMac, dan kamu mau simpen dalam format yang gampang dibaca komputer. Kita bikin dictionary data_pohon
dengan tiga kunci: acara
, pohon
, dan lokasi
. Pake json.dumps(data_pohon)
, kita ubah dictionary ini jadi string JSON, trus simpen di json_data
dan cetak. Ini super simpel, cocok buat pemula, dan bikin data pohon terstruktur, kayak nyanyi lagu pop yang gampang diinget! 🌱😎
Logika Query: Logikanya kayak nyimpen catatan di kotak ajaib. Dictionary dipilih karena gampang nyimpen data dengan kunci-nilai (kayak "pohon": 10). json.dumps()
ubah dictionary ke string JSON, format universal yang bisa dibaca di mana aja, misalnya buat kirim data ke tim lain. Kita cetak biar lihat hasilnya, tapi di dunia nyata, string JSON ini bisa disimpen ke file atau dikirim ke server. Struktur ini efisien buat BioMac, kayak nyanyi lagu dan simpen nadanya di kotak digital! 🎵🗂️
Do and Don'ts:
json
, kalo ga kode ga jalan. ❌"Data JSON yang rapi itu kayak lagu pop yang enak didenger. Simpel tapi bikin happy! 🎶💚"
Konsep: Kita bisa ubah string JSON kembali ke dictionary Python pake json.loads()
, kayak buka kotak penyimpanan dan ambil isinya.
Cara Import: Butuh modul json
. Jalankan dengan python nama_file.py
.
import json
json_data = '{"acara": "Tanam Pohon", "pohon": 10, "lokasi": "Pantai"}'
data = json.loads(json_data)
print(f"Data dalam dictionary: {data}")
Output:
Data dalam dictionary: {'acara': 'Tanam Pohon', 'pohon': 10, 'lokasi': 'Pantai'}
Penjelasan Output: Outputnya nunjukin dictionary Python: {'acara': 'Tanam Pohon', 'pohon': 10, 'lokasi': 'Pantai'}
. String JSON diubah kembali ke dictionary pake json.loads()
, bikin data bisa diolah lagi, kayak buka playlist dan lihat detail lagu! 🎶
Penjelasan Query: Bayangin tim BioMac dapet string JSON dari server, dan mereka mau olah datanya di Python. Kita bikin string JSON json_data
dengan data acara tanam pohon. Pake json.loads(json_data)
, kita ubah string itu jadi dictionary, simpen di data
, trus cetak. Ini gampang, bikin data JSON bisa diakses kayak dictionary biasa, cocok buat tim yang perlu ekstrak info pohon atau lokasi. Gampang diinget, kayak nyanyi lagu pop dan baca liriknya! 📖😎
Logika Query: Logikanya kayak buka kotak ajaib. String JSON adalah format data universal, tapi untuk olah di Python, kita ubah ke dictionary pake json.loads()
. Dictionary bikin kita bisa akses data pake kunci, misalnya data["pohon"]
ngasih 10. Kita cetak dictionary biar lihat hasilnya, tapi di dunia nyata, kita bisa olah lebih lanjut, kayak hitung total pohon. Struktur ini bikin BioMac gampang ngelola data, kayak buka playlist dan mainkan lagu favorit! 🎵📊
Do and Don'ts:
json.loads()
untuk ubah JSON ke data Python yang bisa diolah. ✅JSONDecodeError
. ❌json.loads()
di variabel biar gampang diakses. 🌟loads
. 🚨"Baca JSON itu kayak buka kotak harta. Data siap diolah, bro! 📖💚"
Konsep: Pake parameter indent
di json.dumps()
bikin JSON rapi dan gampang dibaca manusia, kayak nyusun playlist aesthetic.
Cara Import: Butuh modul json
. Jalankan dengan python nama_file.py
.
import json
data = {
"acara": "Tanam Pohon",
"donasi": 500000,
"lokasi": "Pantai"
}
json_data = json.dumps(data, indent=2)
print(f"Data dalam JSON:\n{json_data}")
_threshold_0.8
Output:
Data dalam JSON: { "acara": "Tanam Pohon", "donasi": 500000, "lokasi": "Pantai" }
Penjelasan Output: Outputnya nunjukin JSON yang rapi dengan indentasi 2 spasi, tiap kunci-nilai di baris baru. Data acara, donasi, dan lokasi tersusun jelas, bikin gampang dibaca tim BioMac, kayak playlist dengan judul lagu yang rapi! 🎶
Penjelasan Query: Bayangin tim BioMac mau share data tanam pohon ke donatur, tapi harus rapi biar gampang dibaca. Kita bikin dictionary data
dengan info acara, donasi, dan lokasi. Pake json.dumps(data, indent=2)
, kita ubah ke JSON dengan indentasi, simpen di json_data
, trus cetak dengan tambahan \n
biar jelas. Ini bikin JSON aesthetic, cocok buat laporan atau presentasi, kayak nyanyi lagu dengan lirik yang ditata rapi! 🌴😎
Logika Query: Logikanya kayak nyusun kotak penyimpanan yang cantik. Dictionary nyimpen data dengan kunci-nilai, trus json.dumps()
ubah ke JSON. Parameter indent=2
bikin tiap level JSON punya 2 spasi indentasi, bikin output rapi kayak buku catatan aesthetic. Kita cetak biar lihat hasilnya, tapi di dunia nyata, JSON ini bisa disimpen ke file buat laporan BioMac. Struktur ini bikin data gampang dipahami, kayak nyanyi lagu dengan lirik yang tersusun cantik! 🎵📊
Do and Don'ts:
indent
buat JSON yang bakal dibaca manusia. ✅\n
di print biar output jelas di konsol. 🌟"JSON yang rapi itu kayak taman yang tertata. Bikin hati tenang, bro! 🌴💚"
Konsep: JSON bisa nyimpen data bersarang (dictionary dalam dictionary), kayak kotak penyimpanan dengan laci-laci kecil, cocok buat data kompleks BioMac.
Cara Import: Butuh modul json
. Jalankan dengan python nama_file.py
.
import json
data = {
"acara": "Tanam Pohon",
"detail": {
"donasi": 500000,
"pohon": 10,
"lokasi": "Pantai"
}
}
json_data = json.dumps(data, indent=2)
print(f"Data dalam JSON:\n{json_data}")
Output:
Data dalam JSON: { "acara": "Tanam Pohon", "detail": { "donasi": 500000, "pohon": 10, "lokasi": "Pantai" } }
Penjelasan Output: Outputnya nunjukin JSON bersarang: kunci detail
punya dictionary sendiri dengan donasi, pohon, dan lokasi. Indentasi 2 spasi bikin struktur jelas, kayak buka album dengan folder lagu di dalamnya! 🎶
Penjelasan Query: Bayangin BioMac mau simpen data acara tanam pohon dengan detail terpisah, misalnya donasi dan lokasi dalam satu grup. Kita bikin dictionary data
dengan kunci acara
dan detail
, di mana detail
adalah dictionary lain. Pake json.dumps(data, indent=2)
, kita ubah ke JSON rapi, trus cetak. Ini bikin data kompleks tetap terorganisir, cocok buat laporan BioMac, kayak nyanyi lagu dengan lirik yang punya sub-bagian! 🌿😎
Logika Query: Logikanya kayak bikin kotak dengan laci-laci. Dictionary luar nyimpen info utama (acara
), dan dictionary dalam (detail
) nyimpen info tambahan. json.dumps()
otomatis ngatur struktur bersarang dengan indentasi, bikin JSON gampang dibaca. Kita cetak biar lihat hasilnya, tapi JSON ini bisa disimpen atau dikirim ke tim lain. Struktur ini bikin BioMac gampang ngelola data kompleks, kayak nyanyi lagu dengan lirik yang punya bagian chorus dan verse! 🎵📊
Do and Don'ts:
"Data bersarang itu kayak album dengan folder lagu. Teratur dan kece! 🌿💚"
Konsep: JSON bisa nyimpen list dengan banyak dictionary, cocok buat nyimpen banyak data kegiatan BioMac. Kita pake loop untuk olah data sebelum simpen ke JSON.
Cara Import: Butuh modul json
. Jalankan dengan python nama_file.py
.
import json
data = [
{"acara": "Tanam Pohon 1", "pohon": 10, "donasi": 500000},
{"acara": "Tanam Pohon 2", "pohon": 5, "donasi": 300000}
]
for item in data:
item["biaya_per_pohon"] = item["donasi"] / item["pohon"]
json_data = json.dumps(data, indent=2)
print(f"Data dalam JSON:\n{json_data}")
Output:
Data dalam JSON: [ { "acara": "Tanam Pohon 1", "pohon": 10, "donasi": 500000, "biaya_per_pohon": 50000.0 }, { "acara": "Tanam Pohon 2", "pohon": 5, "donasi": 300000, "biaya_per_pohon": 60000.0 } ]
Penjelasan Output: Outputnya nunjukin JSON dengan list dua dictionary. Tiap dictionary punya kunci baru biaya_per_pohon
, dihitung dari donasi dibagi pohon (500000/10 = 50000, 300000/5 = 60000). Indentasi bikin data rapi, kayak playlist dengan detail lagu! 🎶
Penjelasan Query: Bayangin BioMac punya dua acara tanam pohon, dan mereka mau hitung biaya rata-rata per pohon sebelum simpen ke JSON. Kita bikin list data
dengan dua dictionary. Pake loop for
, kita tambah kunci biaya_per_pohon
dengan menghitung donasi/pohon. Terus, ubah ke JSON pake json.dumps(data, indent=2)
dan cetak. Ini bikin data analitik gampang disimpen, cocok buat laporan BioMac, kayak nyanyi lagu sambil hitung nada rata-rata! 📋😎
Logika Query: Logikanya kayak bikin playlist dengan analisis. List nyimpen banyak dictionary, tiap dictionary wakilin satu acara. Loop for
akses tiap dictionary, hitung donasi/pohon
, dan tambah kunci baru. json.dumps()
ubah list ke JSON rapi. Kita cetak biar lihat hasilnya, tapi JSON ini bisa disimpen ke file buat analisis BioMac. Struktur ini efisien, kayak nyanyi lagu dengan playlist yang punya data tambahan! 🎵📊
Do and Don'ts:
biaya_per_pohon
biar JSON lebih informatif. 🌟"List di JSON itu kayak playlist dengan banyak lagu. Analisis bikin makin keren! 📋💚"
Konsep: Kita bisa minta input user untuk bikin data JSON, cocok buat tim BioMac yang input data kegiatan di lapangan.
Cara Import: Butuh modul json
. Jalankan dengan python nama_file.py
.
import json
data = []
for i in range(2):
acara = input(f"Masukkan nama acara ke-{i+1}: ")
donasi = int(input(f"Masukkan donasi untuk {acara} (Rp): "))
pohon = int(input(f"Masukkan jumlah pohon untuk {acara}: "))
data.append({"acara": acara, "donasi": donasi, "pohon": pohon})
json_data = json.dumps(data, indent=2)
print(f"Data dalam JSON:\n{json_data}")
Output (contoh input: "Acara 1", 500000, 10, "Acara 2", 300000, 5):
Masukkan nama acara ke-1: Acara 1 Masukkan donasi untuk Acara 1 (Rp): 500000 Masukkan jumlah pohon untuk Acara 1: 10 Masukkan nama acara ke-2: Acara 2 Masukkan donasi untuk Acara 2 (Rp): 300000 Masukkan jumlah pohon untuk Acara 2: 5 Data dalam JSON: [ { "acara": "Acara 1", "donasi": 500000, "pohon": 10 }, { "acara": "Acara 2", "donasi": 300000, "pohon": 5 } ]
Penjelasan Output: Outputnya nunjukin prompt input, trus JSON dengan list dua dictionary berdasarkan input user. Acara 1 punya 500000 donasi dan 10 pohon, Acara 2 punya 300000 donasi dan 5 pohon. JSON rapi dengan indentasi, kayak playlist yang dibikin dari request penonton! 🎶
Penjelasan Query: Bayangin tim BioMac di lapangan, input data acara tanam pohon langsung ke sistem. Kita bikin list kosong data
, trus loop for
minta input dua acara: nama, donasi, dan pohon. Tiap input disimpen ke dictionary, ditambah ke list pake append()
. Terus, ubah ke JSON pake json.dumps(data, indent=2)
dan cetak. Ini bikin sistem interaktif, cocok buat BioMac, kayak nyanyi lagu berdasarkan request penonton! 💸😎
Logika Query: Logikanya kayak bikin playlist dari input penonton. List data
nyimpen dictionary tiap acara, bikin fleksibel untuk tambah data. Loop for
minta input tiga hal: acara
(string), donasi
(integer), dan pohon
(integer). Dictionary dibikin per input, ditambah ke list. json.dumps()
ubah list ke JSON rapi. Kita cetak biar lihat hasilnya, tapi JSON ini bisa disimpen ke file. Struktur ini bikin BioMac gampang input data, kayak nyanyi lagu dengan lirik dari penonton! 🎵📊
Do and Don'ts:
int
untuk donasi). ❌"Input user ke JSON itu kayak request lagu dari penonton. Bikin sistem hidup, bro! 💸💚"
Konsep: Pake try-except
untuk nangani error saat parsing JSON atau validasi data, bikin sistem BioMac tangguh.
Cara Import: Butuh modul json
. Jalankan dengan python nama_file.py
.
import json
json_data = '{"acara": "Tanam Pohon", "donasi": 500000, "pohon": 10}'
try:
data = json.loads(json_data)
if data["donasi"] < 0:
raise ValueError("Donasi tidak boleh negatif!")
print(f"Data valid: {data}")
except ValueError as e:
print(f"Error: {e}")
except json.JSONDecodeError:
print("Error: Format JSON salah! 🚨")
Output:
Data valid: {'acara': 'Tanam Pohon', 'donasi': 500000, 'pohon': 10}
Penjelasan Output: Outputnya nunjukin dictionary: {'acara': 'Tanam Pohon', 'donasi': 500000, 'pohon': 10}
. JSON valid, donasi ga negatif, jadi json.loads()
sukses dan cetak data. Kalo JSON salah (misalnya kurang kurung kurawal) atau donasi negatif, muncul pesan error, kayak detektif yang cek kualitas lagu! 🎶
Penjelasan Query: Bayangin BioMac dapet JSON dari server, tapi mereka harus pastiin JSON-nya valid dan donasinya ga negatif. Kita bikin string JSON json_data
. Dalam try
, kita ubah ke dictionary pake json.loads()
, cek donasi pake if
, dan lempar ValueError
kalo negatif. except ValueError
nangani error donasi, except json.JSONDecodeError
nangani JSON salah. Ini bikin sistem tangguh, cocok buat BioMac, kayak nyanyi lagu sambil cek nada fals! 🚨😎
Logika Query: Logikanya kayak detektif kualitas. json.loads()
coba ubah JSON ke dictionary, tapi kalo JSON salah (misalnya kurang koma), JSONDecodeError
muncul dan ditangkap. Kalo JSON valid, cek donasi < 0
pake if
, lempar ValueError
kalo negatif. Dua except
nangani error berbeda, kasih pesan jelas. Kalo semua beres, cetak dictionary. Struktur ini bikin BioMac yakin data valid, kayak nyanyi lagu dengan nada yang selalu pas! 🎵📊
Do and Don'ts:
try-except
untuk nangani error JSON dan validasi data. ✅except json.JSONDecodeError
untuk JSON salah. 🚨"Error handling di JSON itu kayak jaring pengaman. Bikin sistem tank, bro! 🚨💚"
Konsep: Gabungin JSON dengan OOP (Chapter 13-14) untuk bikin kelas yang ngelola data konservasi BioMac, kayak robot penyimpan data.
Cara Import: Butuh modul json
. Jalankan dengan python nama_file.py
.
import json
class KonservasiMangrove:
def __init__(self, acara, donasi, pohon):
self.acara = acara
self.donasi = donasi
self.pohon = pohon
def to_json(self):
data = {
"acara": self.acara,
"donasi": self.donasi,
"pohon": self.pohon,
"biaya_per_pohon": self.donasi / self.pohon
}
return json.dumps(data, indent=2)
kegiatan = KonservasiMangrove("Tanam Pohon", 500000, 10)
json_data = kegiatan.to_json()
print(f"Data dalam JSON:\n{json_data}")
Output:
Data dalam JSON: { "acara": "Tanam Pohon", "donasi": 500000, "pohon": 10, "biaya_per_pohon": 50000.0 }
Penjelasan Output: Outputnya nunjukin JSON dari objek KonservasiMangrove
. JSON punya kunci biaya_per_pohon
(500000/10 = 50000), dihitung di metode to_json
. Indentasi bikin rapi, kayak buka album lagu dengan analisis! 🎶
Penjelasan Query: Bayangin BioMac punya robot yang nyimpen data acara tanam pohon dan hitung biaya per pohon otomatis. Kita bikin kelas KonservasiMangrove
dengan atribut acara
, donasi
, dan pohon
. Metode to_json
bikin dictionary, tambah kunci biaya_per_pohon
, trus ubah ke JSON pake json.dumps()
. Ini bikin data terstruktur, cocok buat BioMac, kayak nyanyi lagu sambil pake robot penyanyi! 🏗️😎
Logika Query: Logikanya kayak bikin robot penyimpan. Kelas KonservasiMangrove
nyimpen data di atribut pake self
. Metode to_json
bikin dictionary dari atribut, hitung donasi/pohon
, trus ubah ke JSON rapi. Kita bikin objek, panggil to_json
, dan cetak. Struktur ini bikin data gampang dikelola, kayak nyanyi lagu dengan robot yang nyanyi bareng! 🎵📊
Do and Don'ts:
self
di metode kelas, nanti error. ❌biaya_per_pohon
di JSON. 🌟"OOP dan JSON itu kayak robot penyanyi. Data rapi, hasil maksimal! 🏗️💚"
Konsep: Gabungin JSON dengan logging (Chapter 18) dan datetime (Chapter 17) untuk nyatet proses dan simpen data kegiatan BioMac dengan waktu.
Cara Import: Butuh modul json
, logging
, datetime
. Jalankan dengan python nama_file.py
.
import json
import logging
from datetime import datetime
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger("BioMac")
data = {
"acara": "Tanam Pohon",
"donasi": 500000,
"pohon": 10,
"waktu": datetime.now().strftime("%d-%m-%Y %H:%M:%S")
}
logger.info(f"Menyiapkan data: {data}")
json_data = json.dumps(data, indent=2)
logger.info(f"Data dalam JSON:\n{json_data}")
Output:
2025-05-16 07:59:00,123 - BioMac - INFO - Menyiapkan data: {'acara': 'Tanam Pohon', 'donasi': 500000, 'pohon': 10, 'waktu': '16-05-2025 07:59:00'} 2025-05-16 07:59:00,124 - BioMac - INFO - Data dalam JSON: { "acara": "Tanam Pohon", "donasi": 500000, "pohon": 10, "waktu": "16-05-2025 07:59:00" }
Penjelasan Output: Outputnya nunjukin dua log: pertama, nyatet dictionary dengan waktu; kedua, nyatet JSON rapi. Timestamp (16 Mei 2025, 07:59:00) ditambah otomatis oleh logging
. JSON punya kunci waktu
dari datetime
, bikin laporan BioMac transparan, kayak buku harian digital! 🎶
Penjelasan Query: Bayangin BioMac mau laporan yang nyatet kapan data kegiatan dibikin, lengkap dengan waktu. Kita set logging dengan format kustom biar ada timestamp. Bikin dictionary data
dengan kunci waktu
dari datetime.now()
. Logger nyatet dictionary dan JSON hasil json.dumps()
. Ini bikin laporan terdokumentasi, cocok buat BioMac, kayak nyanyi lagu sambil catat waktu nadanya! 📝😎
Logika Query: Logikanya kayak bikin buku harian digital. logging.basicConfig
set format log dengan timestamp. Dictionary data
nyimpen info kegiatan, termasuk waktu dari datetime.now().strftime()
. logger.info
nyatet dictionary dan JSON. json.dumps()
bikin JSON rapi. Struktur ini bikin BioMac punya jejak proses dan data terstruktur, kayak nyanyi lagu dengan catatan waktu yang rapi! 🎵📊
Do and Don'ts:
datetime
biar laporan akurat. 🌟"Logging dan JSON itu kayak buku harian digital. Transparan dan kece! 📝💚"
Konsep: Gabungin JSON, OOP, logging, datetime, dan regex (Chapter 16-19) untuk bikin sistem laporan kegiatan BioMac yang super canggih, kayak robot detektif penyimpan data.
Cara Import: Butuh modul json
, logging
, datetime
, re
. Jalankan dengan python nama_file.py
.
import json
import logging
import re
from datetime import datetime
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
class PengelolaKegiatan:
def __init__(self):
self.data = []
self.logger = logging.getLogger("BioMac")
self.logger.info("Pengelola kegiatan dibuat ✅")
def tambah_kegiatan(self, acara, donasi, pohon, lokasi):
try:
if donasi < 0 or pohon < 0:
raise ValueError("Donasi atau pohon tidak boleh negatif!")
if not re.match(r"^[A-Za-z\s]+$", lokasi):
raise ValueError("Lokasi hanya boleh huruf dan spasi!")
kegiatan = {
"acara": acara,
"donasi": donasi,
"pohon": pohon,
"lokasi": lokasi,
"waktu": datetime.now().strftime("%d-%m-%Y %H:%M:%S")
}
self.data.append(kegiatan)
self.logger.info(f"Kegiatan {acara} ditambahkan ✅")
except ValueError as e:
self.logger.error(f"Error: {e} 🚨")
def to_json(self):
return json.dumps(self.data, indent=2)
pengelola = PengelolaKegiatan()
try:
pengelola.tambah_kegiatan("Tanam Pohon 1", 500000, 10, "Pantai")
pengelola.tambah_kegiatan("Tanam Pohon 2", -300000, 5, "Muara")
except:
pengelola.logger.error("Error saat input data! 🚨")
print(f"Laporan kegiatan:\n{pengelola.to_json()}")
Output:
2025-05-16 07:59:00,123 - BioMac - INFO - Pengelola kegiatan dibuat ✅ 2025-05-16 07:59:00,124 - BioMac - INFO - Kegiatan Tanam Pohon 1 ditambahkan ✅ 2025-05-16 07:59:00,125 - BioMac - ERROR - Error: Donasi atau pohon tidak boleh negatif! 🚨 Laporan kegiatan: [ { "acara": "Tanam Pohon 1", "donasi": 500000, "pohon": 10, "lokasi": "Pantai", "waktu": "16-05-2025 07:59:00" } ]
Penjelasan Output: Outputnya nunjukin tiga log: pembuatan PengelolaKegiatan
, penambahan Tanam Pohon 1, dan error karena donasi negatif di Tanam Pohon 2. JSON akhir cuma punya satu kegiatan (Tanam Pohon 1), karena kegiatan kedua gagal divalidasi. JSON rapi dengan waktu dan data lengkap, kayak buku harian digital yang super canggih! 🎶
Penjelasan Query: Bayangin BioMac punya robot detektif yang input data kegiatan, validasi lokasi pake regex, cek donasi, catat waktu, dan simpen ke JSON dengan log proses. Kita bikin kelas PengelolaKegiatan
dengan list data
dan logger. Metode tambah_kegiatan
validasi donasi dan lokasi, tambah waktu, dan simpen ke list. Metode to_json
ubah list ke JSON. Logging nyatet setiap langkah. Ini bikin sistem canggih, cocok buat BioMac, kayak nyanyi symphony dengan robot detektif! 🔥😎
Logika Query: Logikanya kayak bikin robot detektif penyimpan. Kelas PengelolaKegiatan
nyimpen data di list, logger nyatet proses. tambah_kegiatan
cek donasi/pohon pake if
, validasi lokasi pake regex ^[A-Za-z\s]+$
, tambah waktu pake datetime
, dan simpen ke list. try-except
nangani error, logger nyatet sukses atau gagal. to_json
ubah list ke JSON rapi. Struktur ini bikin BioMac punya sistem tangguh, kayak nyanyi symphony dengan lirik, waktu, dan catatan rapi! 🎵📊
Do and Don'ts:
"Sistem JSON canggih itu kayak symphony yang bikin bumi tersenyum. Ngegas, bro! 🔥💚"
Yo, bro, JSON Crash Courses ini bukti bahwa data terstruktur bisa bikin dunia lebih hijau! 🌍 Bersama Mas Azmi, Mas Arry Hutomo, dan ECC Team, kita udah jelajahi JSON dari yang gampang sampe canggih, bikin sistem yang bantu konservasi mangrove dan komunitas. Terus semangat belajar Python, dan bikin solusi yang bikin bumi tersenyum! 😊🚀
Naskah ini dibuat dari Arry Hutomo dan ECC Team untuk Bangsaku yang Kucintai, Indonesia tercinta. 🇮🇩💖