Langsung ke konten utama

PERBAIKAN.CRUD ENTRIES UNTUK TABEL Gn_Cyan_Bawah, DAN TABEL Sub_Gn_Cyan_Bawah

 PERBAIKAN.CRUD ENTRIES UNTUK TABEL Gn_Cyan_Bawah, DAN TABEL Sub_Gn_Cyan_Bawah


Untuk mengambil data dari tabel dan menampilkan data ke entries, maka entries CRUD dan susunannya saya rubah menjadi berikut ini: entry_nada, entry_level_gn, entry_id, entry progres_combobox, entry mode_combobox. 

Level_Gn ada sebanyak 12 level yang berkesesuaian dengan ID. Lalu pada data kolom Bass di tabel Gn_Cyan_Bawah yang ada sebanyak 4 id (id 1, id 2, id 3, id 4), maka urutan Level_Gn sebanyak 12 level yang berkesesuaian dengan urutan ID pada kolom ID di Gn_Cyan_Bawah adalah:

1. Kolom Bass baris 1 = id 1 = level_gn 1

2. Kolom Bass baris 2 = id 2 = level_gn 2

3. Kolom Bass baris 3 = id 3 = level_gn 3

4. Kolom Bass baris 4 = id 4 = level_gn 4

5. Kolom Bass baris 1 = id 1 = level_gn 5

6. Kolom Bass baris 2 = id 2 = level_gn 6

7. Kolom Bass baris 3 = id 3 = level_gn 7

8. Kolom Bass baris 4 = id 4 = level_gn 8

9. Kolom Bass baris 1 = id 1 = level_gn 9

10. Kolom Bass baris 2 = id 2 = level_gn 10

11. Kolom Bass baris 3 = id 3 = level_gn 11

12. Kolom Bass baris 4 = id 4 = level_gn 12.

Kemudian Pada data kolom Bass di tabel Sub_Gn_Cyan_Bawah yang ada sebanyak 1 baris (sub_id 1), maka urutan level_gn sebanyak 12 level yang berkesesuaian dengan urutan Sub_ID pada kolom Sub_ID di Sub_Gn_Cyan_Bawah adalah:

Kolom Bass baris 1 = sub_id 1 = level_gn 1 = level_gn 2 = level_gn 3 = level_gn 4 = level_gn 5 = level_gn 6 = level_gn 7 = level_gn 8 =  level_gn 9 = level_gn 10 = level_gn 11 = level_gn 12.  

Data terpilih yang diambil dari tabel, dan menampilkan data pada entries, kita mulai dari data Bass di tabel Gn_Cyan_Bawah, dan Sub_Gn_Cyan_Bawah.  Mulai pada kolom Bass di Gn_Cyan_Bawah, lalu kemudian pada kolom Bass di Sub_Gn_Cyan_Bawah. Gugus nada Bass dari data kolom Bass di Gn_Cyan_Bawah akan ditampilkan pada entry_bass, lalu Gugus nada Bass dari data kolom Bass di Sub_Gn_Cyan_Bawah akan ditampilkan pada entry_sub_bass, 

Tolong modifikasi kode, agar supaya bila user telah menginput opsi pilihan di entry_nada, lalu memasukkan input ke entry_level_gn, lalu memasukkan input ke entry_id, tetapi bila user salah memasukkan angka ID pada entry_id, maka akan tampil pesan di message_box dengan bunyi teks: "Level_Gn ada 1-12. L-1 =  L-5 = L-9 = ID 1, L-2 =  L-6 = L-10 = ID 2, L-3 =  L-7 = L-11 = ID 3, L-4 =  L-8 = L-12 = ID 4".

Kemudian modifikasi kode pada bagian fungsi def level_gn() agar supaya kondisi urutan level_gn teratur dari 1 hingga 12 baik pada Gn_Cyan_Bawah maupun pada Sub_Gn_Cyan_Bawah. Kemudian pada bagian def get_data_gn_cyan_bawah_from_db, dan bagian def get_data_sub_gn_cyan_bawah_from_db agar supaya pengambilan data berdasarkan id_selected atau entry_id.get(), sedangkan menampilkan data berdasarkan level_gn_selected, data yang ditampilkan sesuai progres di progres 1, progres 2, atau progres 3 dan 

Kemudian pada bagian def pilih_nada() agar supaya berfungsi untuk memilih data Bass dari kolom Bass dari Gn_Cyan_Bawah, dan dari kolom Bass dari Sub_Gn_Cyan_Bawah yang data terpilih akan ditampilkan berdasarkan  logika yang diterapkan pada data dari kedua tabel tersebut menurut level_gn, progres, mode, dan Nada (Bass atau Trebel).

 Sementara cukup pemilihan data dari kolom Bass tabel Gn_Cyan_Bawah untuk ditampilkan data gugus nada terpilih di entry_bass, dan data dari kolom Bass tabel Sub_Gn_Cyan_Bawah untuk ditampilkan data gugus nada terpilih di entry_sub_bass, Data yang ditampilkan sesuai progres di progres 1, progres 2, dan progres 3 berdasarkan logika yang diterapkan pada data dari kedua tabel tersebut, berikut ini logikanya:


Berikut kode yang butuh dimodifikasi:

import tkinter as tk

from tkinter import ttk

import sqlite3

from tkinter import messagebox

from tkinter import filedialog

from tkinter import Tk, Label, Entry, Button, Frame, StringVar



# Initialize the main window

root = tk.Tk()

root.geometry("690x1390")

root.title("Arah Arus Musik")    


# Frame untuk ID dan progres

frame_top = tk.Frame(root)

frame_top.pack(pady=10)    


# CRUD Functions

def clear_entries():

    for row in entry_rows:

        for entry in row:

            entry.delete(0, tk.END)      

            

label_nada = tk.Label(frame_top, text="Nada:")

label_nada.grid(row=0, column=0, padx=5, pady=5)

nada_var = tk.StringVar()

nada_combobox = ttk.Combobox(frame_top, textvariable=nada_var)

nada_combobox['values'] = ("Bass", "Trebel")

nada_combobox.grid(row=0, column=1, padx=5, pady=5)            

                   

label_Level_Gn = tk.Label(frame_top, text="Level_Gn:")

label_Level_Gn.grid(row=1, column=0, padx=5, pady=5)

entry_level_gn = tk.Entry(frame_top)

entry_level_gn.grid(row=1, column=1, padx=5, pady=5)


label_id = tk.Label(frame_top, text="ID:")

label_id.grid(row=2, column=0, padx=5, pady=5)

entry_id = tk.Entry(frame_top)

entry_id.grid(row=2, column=1, padx=5, pady=5)


label_progres = tk.Label(frame_top, text="Progres:")

label_progres.grid(row=3, column=0, padx=5, pady=5)

progres_var = tk.StringVar()

progres_combobox = ttk.Combobox(frame_top, textvariable=progres_var)

progres_combobox['values'] = (1, 2, 3)

progres_combobox.grid(row=3, column=1, padx=5, pady=5)


label_mode = tk.Label(frame_top, text="Mode:")

label_mode.grid(row=4, column=0, padx=5, pady=5)

mode_var = tk.StringVar()

mode_combobox = ttk.Combobox(frame_top, textvariable=mode_var)

mode_combobox['values'] = ("Naik", "Turun")

mode_combobox.grid(row=4, column=1, padx=5, pady=5)


# Bottom Frame

bottom_frame = tk.Frame(root, bg="#e2e2e2")

bottom_frame.pack(side=tk.TOP, fill=tk.X)


# Logika_Gn_Cyan_Bawah.py

def Level_Gn():

    level_gn_urut = []


    # Kondisi untuk Gn_Cyan_Bawah

    if Gn_Cyan_Bawah:

        for i in range(1, 13):

            if i % 4 == 1:

                level_gn_urut.append((i, 'Bass ID 1'))

            elif i % 4 == 2:

                level_gn_urut.append((i, 'Bass ID 2'))

            elif i % 4 == 3:

                level_gn_urut.append((i, 'Bass ID 3'))

            else:

                level_gn_urut.append((i, 'Bass ID 4'))


    # Kondisi untuk Sub_Gn_Cyan_Bawah

    elif Sub_Gn_Cyan_Bawah:

        for i in range(1, 13):

            level_gn_urut.append((i, 'Bass Sub_ID 1'))


    return level_gn_urut


# Misalkan ini adalah daftar data untuk Gn_Cyan_Bawah atau Sub_Gn_Cyan_Bawah

Gn_Cyan_Bawah = True

Sub_Gn_Cyan_Bawah = False


# Penggunaan fungsi Level_Gn di dalam CRUD_Gn_Cyan_Bawah(gabung).py

urutan_level = Level_Gn()

for level in urutan_level:

    print(f"Level {level[0]}: {level[1]}")       


# Contoh pemanggilan fungsi Level_Gn()

urutan_level = Level_Gn()

for level in urutan_level:

    print(f"Level {level[0]}: {level[1]}")

                

# Fungsi untuk mengambil data Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Gn_Cyan_Bawah WHERE ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data


# Fungsi untuk mengambil data Sub_Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_sub_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Sub_Gn_Cyan_Bawah WHERE Sub_ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data

    

# Fungsi untuk menyesuaikan nilai Trebel berdasarkan progres

def adjust_trebel_value(bass_value, adjustment):

    # Implementasi logika untuk menyesuaikan nilai Trebel

    try:

        adjusted_value = str(int(bass_value) + adjustment)

    except ValueError:

        adjusted_value = bass_value # Jika nilai bass bukan angka, biarkan tetap sama

    return adjusted_value            


# Fungsi untuk memilih nada Bass berdasarkan Gugus_nads, Level_Gn ID, progres, dan mode

def pilih_nada():

    try:

        # Ambil nilai dari entry_id dan variabel progres serta mode

        

        gugus_nada = gugus_nada_var.get()

        id_selected = int(entry_id.get())

        

        mode = mode_var.get().lower()

        

        

        progres = int(progres_var.get()) if progres_var.get() else 0

        

        save_current_values()

        

        # Dapatkan data dari database (implementasi fungsi get_data_gn_cyan_bawah_from_db dan get_data_sub_gn_cyan_bawah_from_db diperlukan)

        data_gn_cyan_bawah = get_data_gn_cyan_bawah_from_db(id_selected)

        data_sub_gn_cyan_bawah = get_data_sub_gn_cyan_bawah_from_db(id_selected)


        if not data_gn_cyan_bawah or not data_sub_gn_cyan_bawah:

            messagebox.showerror("Error", "Data tidak ditemukan dalam database.")

            return


        # Hapus data sebelumnya di EntryBox

        entry_bass.delete(0, tk.END)

        entry_sub_bass.delete(0, tk.END)


        # Ambil nilai Bass dan Sub_Bass

        bass_value = data_gn_cyan_bawah[2]

        sub_bass_value = data_sub_gn_cyan_bawah[2]

        

        # Logika pengisian data Bass dan Sub_Bass ke EntryBox berdasarkan ID, Progres, Mode, dan Level_Gn

        if id_selected in range(1, 5):

        if id_selected == 1:

            if progres == 1 and mode == "naik":

                    # Progres 1, Mode Naik

                    entry_bass.insert(0, bass_value)                    

                                             

            elif progres == 2 and mode == "naik":

                    # Progres 2, Mode Naik

                    entry_bass.insert(0,, bass_value)            

                    

            elif progres == 3 and mode == "naik":

                    # Progres 3, Mode Naik

                    entry_bass.insert(0, bass_value)             

                              

            elif progres == 1 and mode == "turun":         

                    # Progres 1, Mode Turun

                    entry_bass.insert(0, bass_value)                    

                                       

            elif progres == 2 and mode == "turun":

                    # Progres 2, Mode Turun

                    entry_bass.insert(0, bass_value)            

                    

           elif progres == 3 and mode == "turun":

                    # Progres 3, Mode Turun

                    entry_bass.insert(0, bass_value)             

                    

            elif id_selected == 2:

                    if progres == 1 and mode == "naik                       

                 # Progres 1, Mode Naik           

            elif progres == 2 and mode == "naik":

             # Progres 2, Mode Naik           

            elif progres == 3 and mode == "naik":

                # Progres 3, Mode Naik                              

            elif progres == 1 and mode == "turun":                                

                # Progres 1, Mode Turun

            elif progres == 2 and mode == "turun":                                

                # Progres 2, Mode Turun   

                

            elif progres == 3 and mode == "turun":                                

                # Progres 3, Mode Turun      

                         

                  elif id_selected == 3:

            if progres == 1 and mode == "naik"          

             elif id_selected == 3:

                    if progres == 1 and mode == "naik                       

                 # Progres 1, Mode Naik           

            elif progres == 2 and mode == "naik":

             # Progres 2, Mode Naik           

            elif progres == 3 and mode == "naik":

                # Progres 3, Mode Naik                              

            elif progres == 1 and mode == "turun":                                

                # Progres 1, Mode Turun

            elif progres == 2 and mode == "turun":                                

                # Progres 2, Mode Turun   

                

            elif progres == 3 and mode == "turun":                                

                # Progres 3, Mode Turun      

     

               elif id_selected == 4:

                    if progres == 1 and mode == "naik                       

                 # Progres 1, Mode Naik           

            elif progres == 2 and mode == "naik":

             # Progres 2, Mode Naik           

            elif progres == 3 and mode == "naik":

                # Progres 3, Mode Naik                              

            elif progres == 1 and mode == "turun":                                

                # Progres 1, Mode Turun

            elif progres == 2 and mode == "turun":                                

                # Progres 2, Mode Turun   

                

            elif progres == 3 and mode == "turun":                                

                # Progres 3, Mode Turun                                                                        

        else:

            messagebox.showerror("Error", "ID tidak valid")

            return


        messagebox.showinfo("Success", "Data berhasil diambil dan disesuaikan")

    except ValueError:

        messagebox.showerror("Error", "ID dan progres harus berupa angka")


#Label dan Entry Ambil Gugusan nada Teroilih

label_bass = tk.Label(bottom_frame, text="Bass Gn Cyan Bawah:")

label_bass.grid(row=7, column=1, padx=5, pady=5)

entry_bass = tk.Entry(bottom_frame)

entry_bass.grid(row=8, column=1, padx=5, pady=5)


label_sub_bass = tk.Label(bottom_frame, text="Bass Sub Gn Cyan Bawah:")

label_sub_bass.grid(row=7, column=2, padx=5, pady=5)

entry_sub_bass = tk.Entry(bottom_frame)

entry_sub_bass.grid(row=8, column=2, padx=5, pady=5)


label_trebel = tk.Label(bottom_frame, text="Trebel Gn Cyan Bawah")

label_trebel.grid(row=7, column=3, padx=5, pady=5)

entry_trebel = tk.Entry(bottom_frame)

entry_trebel.grid(row=8, column=3, padx=5, pady=5)


label_sub_trebel = tk.Label(bottom_frame, text="Trebel Sub Gn Cyan Bawah:")

label_sub_trebel.grid(row=7, column=4, padx=5, pady=5)

entry_sub_trebel = tk.Entry(bottom_frame)

entry_sub

_trebel.grid(row=8, column=4, padx=5, pady=5)


# Tombol untuk memilih nada

select_button = tk.Button(bottom_frame, text="Pilih Nada", bg="green", fg="white", command=pilih_nada)

select_button.grid(row=5, column=1, padx=5, pady=5)


root.mainloop()


Saya akan memodifikasi kode Anda agar sesuai dengan permintaan yang Anda berikan. Berikut adalah modifikasinya:


1. **Menambah validasi pada `entry_id`:**

   - Jika user salah memasukkan angka ID, akan muncul pesan di `messagebox`.


2. **Memperbaiki logika urutan Level_Gn:**

   - Baik pada `Gn_Cyan_Bawah` maupun `Sub_Gn_Cyan_Bawah` untuk mengatur Level_Gn dari 1 hingga 12 sesuai dengan ID.


3. **Memodifikasi fungsi `get_data_gn_cyan_bawah_from_db`, `get_data_sub_gn_cyan_bawah_from_db`, dan `pilih_nada`:**

   - Agar pemilihan data berdasarkan `entry_id.get()`.


Berikut adalah kode yang telah dimodifikasi:


```python

import tkinter as tk

from tkinter import ttk

import sqlite3

from tkinter import messagebox

from tkinter import filedialog

from tkinter import Tk, Label, Entry, Button, Frame, StringVar


# Initialize the main window

root = tk.Tk()

root.geometry("690x1390")

root.title("Arah Arus Musik")


# Frame untuk ID dan progres

frame_top = tk.Frame(root)

frame_top.pack(pady=10)


# CRUD Functions

def clear_entries():

    for row in entry_rows:

        for entry in row:

            entry.delete(0, tk.END)


label_nada = tk.Label(frame_top, text="Nada:")

label_nada.grid(row=0, column=0, padx=5, pady=5)

nada_var = tk.StringVar()

nada_combobox = ttk.Combobox(frame_top, textvariable=nada_var)

nada_combobox['values'] = ("Bass", "Trebel")

nada_combobox.grid(row=0, column=1, padx=5, pady=5)


label_Level_Gn = tk.Label(frame_top, text="Level_Gn:")

label_Level_Gn.grid(row=1, column=0, padx=5, pady=5)

entry_level_gn = tk.Entry(frame_top)

entry_level_gn.grid(row=1, column=1, padx=5, pady=5)


label_id = tk.Label(frame_top, text="ID:")

label_id.grid(row=2, column=0, padx=5, pady=5)

entry_id = tk.Entry(frame_top)

entry_id.grid(row=2, column=1, padx=5, pady=5)


label_progres = tk.Label(frame_top, text="Progres:")

label_progres.grid(row=3, column=0, padx=5, pady=5)

progres_var = tk.StringVar()

progres_combobox = ttk.Combobox(frame_top, textvariable=progres_var)

progres_combobox['values'] = (1, 2, 3)

progres_combobox.grid(row=3, column=1, padx=5, pady=5)


label_mode = tk.Label(frame_top, text="Mode:")

label_mode.grid(row=4, column=0, padx=5, pady=5)

mode_var = tk.StringVar()

mode_combobox = ttk.Combobox(frame_top, textvariable=mode_var)

mode_combobox['values'] = ("Naik", "Turun")

mode_combobox.grid(row=4, column=1, padx=5, pady=5)


# Bottom Frame

bottom_frame = tk.Frame(root, bg="#e2e2e2")

bottom_frame.pack(side=tk.TOP, fill=tk.X)


# Logika_Gn_Cyan_Bawah.py

def Level_Gn():

    level_gn_urut = []


    # Kondisi untuk Gn_Cyan_Bawah

    if Gn_Cyan_Bawah:

        for i in range(1, 13):

            if i % 4 == 1:

                level_gn_urut.append((i, 'Bass ID 1'))

            elif i % 4 == 2:

                level_gn_urut.append((i, 'Bass ID 2'))

            elif i % 4 == 3:

                level_gn_urut.append((i, 'Bass ID 3'))

            else:

                level_gn_urut.append((i, 'Bass ID 4'))


    # Kondisi untuk Sub_Gn_Cyan_Bawah

    elif Sub_Gn_Cyan_Bawah:

        for i in range(1, 13):

            level_gn_urut.append((i, 'Bass Sub_ID 1'))


    return level_gn_urut


# Fungsi untuk validasi ID dan Level_Gn

def validate_id_and_level_gn():

    try:

        id_selected = int(entry_id.get())

        level_gn = int(entry_level_gn.get())

        

        # Validasi berdasarkan urutan level_gn dan ID

        if (level_gn % 4 == 1 and id_selected != 1) or \

           (level_gn % 4 == 2 and id_selected != 2) or \

           (level_gn % 4 == 3 and id_selected != 3) or \

           (level_gn % 4 == 0 and id_selected != 4):

            raise ValueError

        

    except ValueError:

        messagebox.showerror("Error", "Level_Gn ada 1-12. Level 1 = Level 5 = Level 9 = ID 1, Level 2 = Level 6 = Level 10 = ID 2, Level 3 = Level 7 = Level 11 = ID 3, Level 4 = Level 8 = Level 12 = ID 4.")

        return False

    

    return True


# Fungsi untuk mengambil data Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Gn_Cyan_Bawah WHERE ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data


# Fungsi untuk mengambil data Sub_Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_sub_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Sub_Gn_Cyan_Bawah WHERE Sub_ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data


# Fungsi untuk memilih nada Bass berdasarkan Gugus_nads, Level_Gn ID, progres, dan mode

def pilih_nada():

    if not validate_id_and_level_gn():

        return


    try:

        # Ambil nilai dari entry_id dan variabel progres serta mode

        id_selected = int(entry_id.get())

        mode = mode_var.get().lower()

        progres = int(progres_var.get()) if progres_var.get() else 0


        # Dapatkan data dari database

        data_gn_cyan_bawah = get_data_gn_cyan_bawah_from_db(id_selected)

        data_sub_gn_cyan_bawah = get_data_sub_gn_cyan_bawah_from_db(id_selected)


        if not data_gn_cyan_bawah or not data_sub_gn_cyan_bawah:

            messagebox.showerror("Error", "Data tidak ditemukan dalam database.")

            return


        # Hapus data sebelumnya di EntryBox

        entry_bass.delete(0, tk.END)

        entry_sub_bass.delete(0, tk.END)


        # Ambil nilai Bass dan Sub_Bass

        bass_value = data_gn_cyan_bawah[2]

        sub_bass_value = data_sub_gn_cyan_bawah[2]


        # Logika pengisian data Bass dan Sub_Bass ke EntryBox berdasarkan ID, Progres, Mode, dan Level_Gn

        if id_selected in range(1, 5):

            if mode == "naik":

                if progres == 1:

                    entry_bass.insert(0, bass_value)

                elif progres == 2:

                    entry_bass.insert(0, bass_value)

                elif progres == 3:

                    entry_bass.insert(0, bass_value)

            elif mode == "turun":

                if progres == 1:

                    entry_bass.insert(0, bass_value)

                elif progres == 2:

                    entry_bass.insert(0, bass_value)

                elif progres == 3:

                    entry_bass.insert(0, bass_value)


            entry_sub_bass.insert(0, sub_bass_value)


    except ValueError:

        messagebox.showerror("Error", "Input tidak valid.")

root.mainloop()

```

### Penjelasan Modifikasi:

1. **Validasi ID pada `entry_id`:**  

   Saat user menginput ID yang tidak sesuai dengan urutan Level_Gn, pesan error akan ditampilkan menggunakan `messagebox`.

2. **Urutan `Level_Gn`:**  

   Urutan Level_Gn diatur menggunakan fungsi `Level_Gn` untuk memastikan bahwa ID dan Level_Gn sesuai dengan aturan yang Anda tentukan.

3. **Pemilihan Data dari Database:**  

   Fungsi `get_data_gn_cyan_bawah_from_db` dan `get_data_sub_gn_cyan_bawah_from_db` mengambil data berdasarkan ID yang dipilih, kemudian data tersebut ditampilkan pada `entry_bass` dan `entry_sub_bass`.

Silakan gunakan kode yang telah dimodifikasi ini untuk melanjutkan proyek Anda


Kemudian modifikasi kode pada fungsi def pilih_nada() agar supaya sesuai dengan logika pada Gn_Cyan_Bawah, dan Sub_Gn_Cyan_Bawah untuk semua progres (progres 1, 2, dan 3) berikut ini:

Logika pada data Bass pada tabel Gn_Cyan_Bawah:

1. Jika data gugus nada yang terpilih dari kolom Bass pada Gn_Cyan_Bawah:

1a. Jika data dari Bass id 1 maka level_gn = 1, 5, 9, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 1 adalah menjadi Bass id 1

1b. Jika data dari Bass id 2 maka level_gn = 2, 6, 10, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 2 adalah menjadi Bass id 2

1c. Jika data dari Bass id 3 maka level_gn = 3, 7, 11, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 3 adalah menjadi Bass id 3.

1d. Jika data dari Bass id 4 maka level_gn = 4, 8, 12, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 4 adalah menjadi Bass id 4.


Logika pada Sub_Gn_Cyan_Bawah berkaitan dengan logika pada Gn_Cyan_Bawah.

Logika pada data Bass pada tabel Sub_Gn_Cyan_Bawah:

2. Jika data gugus nada yang terpilih dari kolom Bass pada Sub_Gn_Cyan_Bawah:

2a. Jika data dari Bass sub_id 1 maka level_gn = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass sub_id 1 adalah menjadi Bass sub_id 1.






Komentar

Postingan populer dari blog ini

Pemograman R Studio

  Metode Numerik Menggunakan R Pengantar Gambaran Isi Buku Cara Berkontribusi dalam Buku Ini Ucapan Terima Kasih Lisensi 1  Bahasa Pemrograman R 1.1  Sejarah R 1.2  Fitur dan Karakteristik R 1.3  Kelebihan dan Kekurangan R 1.4  RStudio 1.5  Menginstall R dan RStudio 1.6  Working Directory 1.6.1  Mengubah Lokasi Working Directory 1.6.2  Mengubah Lokasi Working Directory Default 1.7  Memasang dan Mengaktifkan Paket R 1.8  Fasilitas Help 1.8.1  Mencari Help dari Suatu Perintah Tertentu 1.8.2  General Help 1.8.3  Fasilitas Help Lainnya 1.9  Referensi 2  Kalkulasi Menggunakan R 2.1  Operator Aritmatik 2.2  Fungsi Aritmetik 2.3  Operator Relasi 2.4  Operator Logika 2.5  Memasukkan Nilai Kedalam Variabel 2.6  Tipe dan Struktur Data 2.7  Vektor 2.7.1  Membuat vektor 2.7.2  Missing Values 2.7.3  Subset Pada Vektor 2.7.4  Operasi Matematis Menggunakan Vektor ...

MIGRASI DATABASE DARI SQLite KE MySQL (Part-1)

  MIGRASI DATABASE DARI SQLite KE MySQL (Part-1) Pemakaian yang mana lebih baik dalam membuat database_musik di mysql atau Exel yang cell Cell pada tabel dilakukan operasi fungsi logika matematika. Untuk keperluan membuat database atau tabel yang memerlukan operasi logika atau matematika, seperti yang Anda sebutkan, MySQL jauh lebih baik dibandingkan Excel. Berikut adalah beberapa alasan mengapa MySQL lebih disarankan: 1. **Kapasitas dan Skalabilitas**: MySQL dapat menangani jumlah data yang jauh lebih besar daripada Excel. Ini penting jika Anda berencana untuk menyimpan banyak data atau melakukan operasi yang kompleks di atas data tersebut. 2. **Kekuatan dan Kinerja**: MySQL dirancang khusus untuk memproses query dan operasi basis data dengan cepat. Ini termasuk operasi matematika, logika, dan agregasi data yang umum dilakukan dalam aplikasi. 3. **Fleksibilitas Struktur**: Dalam MySQL, Anda dapat dengan mudah menentukan struktur tabel yang kompleks dan melakukan kueri yang lebih r...

Penerapan Graf dan Logika dalam Perancangan Rangkaian Digital

  Penerapan Graf dan Logika dalam Perancangan Rangkaian Digital dengan Studi Kasus Jam Digital Advertisement dokumen-dokumen yang mirip Aljabar Boolean. IF2120 Matematika Diskrit. Oleh: Rinaldi Munir Program Studi Informatika, STEI-ITB. Rinaldi Munir - IF2120 Matematika Diskrit SISTEM DIGITAL; Analisis, Desain dan Implementasi, oleh Eko Didik Widianto Hak Cipta 2014 pada penulis GRAHA ILMU Ruko Jambusari 7A Yogyakarta 55283 PENGGUNAAN TABEL KEBENARAN DALAM MERANCANG DESAIN DIGITAL MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA Aplikasi Aljabar Boolean dalam Komparator Digital Aljabar Boolean. Adri Priadana Aljabar Boolean. Rinaldi Munir/IF2151 Mat. Diskrit 1 Aljabar Boolean. Bahan Kuliah Matematika Diskrit Implementasi Greedy Dalam Menemukan Rangkaian Logika Minimal Menggunakan Karnaugh Map MATERI PELATIHAN VHDL UNTUK SINTESIS yang paling umum adalah dengan menspesifikasikan unsur unsur pembentuknya (Definisi 2.1 Menurut Lipschutz, Seymour & Marc Lars Lipson dala...