MEMPERBAIKI FUNGSI level_gn UNTUK DATA TABEL Gn_Cyan_Bawah DAN Sub_Gn_Cyan_Bawah
Memperbaiki fungsi level_gn untuk Gn_Cyan_Bawah, berikut logikanya: level_gn 1 = id 1, level_gn 2 = id 2, level_gn 3 = id 3, level_gn 4 = id 4, level_gn 5 = id 1 yang setiap karakter angka datanya dikurang 1, level_gn 6 = id 2 yang setiap karakter angka datanya dikurang 1, level_gn 7 = id 3 yang setiap karakter angka datanya dikurang 1, level_gn 8 = id 4 yang setiap karakter angka datanya dikurang 1, , level_gn 9 = id 1 yang setiap karakter angka datanya dikurang 2, level_gn 10 = id 2 yang setiap karakter angka datanya dikurang 2, level_gn 11 = id 3 yang setiap karakter angka datanya dikurang 2, level_gn 12 = id 4 yang setiap karakter angka datanya dikurang 2.
Dan untuk Sub_Gn_Cyan_Bawah, berikut logikanya: level_gn 1 = sub_id 1, level_gn 2 = sub_id 1 yang setiap karakter angka datanya dikurang 1, level_gn 3 = sub_id 1 yang setiap karakter angka datanya dikurang 2, level_gn 4 = sub_id 1 yang setiap karakter angka datanya dikurang 3, level_gn 5 = sub_id 1 yang setiap karakter angka datanya dikurang 4, level_gn 6 = sub_id 1 yang setiap karakter angka datanya dikurang 5, level_gn 7 = sub_id 1 yang setiap karakter angka datanya dikurang 6, level_gn 8 = sub_id 1 yang setiap karakter angka datanya dikurang 7, level_gn 9 = sub_id 1 yang setiap karakter angka datanya dikurang 8, level_gn 10 = sub_id 1 yang setiap karakter angka datanya dikurang 9,, level_gn 11 = sub_id 1 yang setiap karakter angka datanya dikurang 10, dan level_gn 12 = sub_id 1 yang setiap karakter angka datanya dikurang 11, Tolong buatkan kodenya pada fungsi level_gn
Berikut adalah kode fungsi `level_gn` yang sudah dimodifikasi sesuai dengan logika yang Anda berikan untuk tabel `Gn_Cyan_Bawah` dan `Sub_Gn_Cyan_Bawah`:
```python
def level_gn(table_name):
try:
level_gn_selected = int(entry_level_gn.get()) # Mendapatkan Level_Gn dari input
# Variabel awal untuk ID, Sub_ID, kolom, dan modifikasi angka
id_selected = None
sub_id_selected = None
modifikasi_angka = 0 # Default 0, tidak ada pengurangan
if table_name == 'Gn_Cyan_Bawah':
# Logika untuk tabel Gn_Cyan_Bawah
if level_gn_selected in [1, 5, 9]:
id_selected = 1
modifikasi_angka = (level_gn_selected - 1) // 4 # 0, 1, atau 2
elif level_gn_selected in [2, 6, 10]:
id_selected = 2
modifikasi_angka = (level_gn_selected - 2) // 4 # 0, 1, atau 2
elif level_gn_selected in [3, 7, 11]:
id_selected = 3
modifikasi_angka = (level_gn_selected - 3) // 4 # 0, 1, atau 2
elif level_gn_selected in [4, 8, 12]:
id_selected = 4
modifikasi_angka = (level_gn_selected - 4) // 4 # 0, 1, atau 2
else:
messagebox.showerror("Error", "Level_Gn harus antara 1 hingga 12.")
return None, None, None
elif table_name == 'Sub_Gn_Cyan_Bawah':
# Logika untuk tabel Sub_Gn_Cyan_Bawah
sub_id_selected = 1
modifikasi_angka = level_gn_selected - 1 # Modifikasi angka dari 0 hingga 11 berdasarkan level_gn
else:
messagebox.showerror("Error", "Nama tabel tidak valid!")
return None, None, None
# Menyisipkan ID atau Sub_ID dan kolom yang dipilih ke dalam entry box
entry_id.delete(0, 'end')
if table_name == 'Gn_Cyan_Bawah':
entry_id.insert(0, str(id_selected))
elif table_name == 'Sub_Gn_Cyan_Bawah':
entry_id.insert(0, str(sub_id_selected))
# Hanya untuk pengisian Entry jika menggunakan tkinter, tidak untuk pengembalian nilai logika
entry_modifikasi_angka.delete(0, 'end')
entry_modifikasi_angka.insert(0, str(modifikasi_angka))
if table_name == 'Gn_Cyan_Bawah':
return id_selected, modifikasi_angka
elif table_name == 'Sub_Gn_Cyan_Bawah':
return sub_id_selected, modifikasi_angka
except ValueError:
messagebox.showerror("Error", "Masukkan nilai Level_Gn yang valid!")
return None, None, None
```
### Penjelasan:
1. **Parameter `table_name`:**
- Fungsi ini menerima parameter `table_name` untuk menentukan apakah fungsi bekerja dengan `Gn_Cyan_Bawah` atau `Sub_Gn_Cyan_Bawah`.
2. **Logika untuk `Gn_Cyan_Bawah`:**
- Jika `Level_Gn` adalah 1, 5, atau 9, maka ID yang dipilih adalah 1 dengan modifikasi angka sesuai dengan level yang diatur (`0` untuk level 1, `1` untuk level 5, dan `2` untuk level 9).
- Logika serupa diterapkan untuk `Level_Gn` lainnya (2, 6, 10 untuk ID 2; 3, 7, 11 untuk ID 3; dan 4, 8, 12 untuk ID 4).
3. **Logika untuk `Sub_Gn_Cyan_Bawah`:**
- Untuk tabel ini, `Sub_ID` selalu 1, dan modifikasi angka adalah `Level_Gn - 1`, yang berarti pengurangan angka dilakukan bertahap dari 0 hingga 11.
4. **Pengembalian Nilai:**
- Fungsi mengembalikan `id_selected` atau `sub_id_selected` bersama dengan `modifikasi_angka`.
Fungsi ini telah disesuaikan untuk menangani kedua tabel dengan logika yang berbeda namun terintegrasi dalam satu fungsi. Apakah ini sudah sesuai dengan kebutuhan Anda?
Komentar
Posting Komentar
This Message