Langsung ke konten utama

Membuat Aplikasi Android dengan Python dan Kivy | Halaman Profil Member untuk Update Data

Halo, para pejuang bug dan error! 😄
Kali ini kita bakal ngulik gimana caranya bikin halaman profil member di aplikasi Android, tapi bukan pake Java yang bikin kepala ngebul—kita pakai Python + Kivy yang lebih santuy dan ringan.

Di sini, pengguna bisa lihat dan update data mereka sendiri, biar aplikasi kamu makin interaktif dan kelihatan profesional. Gak cuma buat belajar, tapi siapa tahu jadi jalan ninja jadi developer beneran, kan?

Langsung saja. 

tambahkan baris kode di main.py yang berada di BlajarKivy - main.py berikut kodenya

from kivymd.app import MDApp
from kivymd.uix.screenmanager import ScreenManager
from kivy.core.text import LabelBase
from kivy.core.window import Window

Window.size = (500, 650)

from screens.screens import *

class WindowManager(ScreenManager):
	pass

class LapakNgoding(MDApp):
	def build(self):
		self.logged_user = None
		
		self.wm = WindowManager()
		screens =[
			Hallog(name="hallog"),
			Daftar(name="daftar"),
			Hallogadmin(name="hallogadmin"),
			Beranda(name='beranda'),
			Profil(name='profil'), #tambahkan ini
		]
		for screen in screens:
			self.wm.add_widget(screen)
		return self.wm
	
	def logout(self):
		self.wm.current = "hallog"
		
	def profil(self):
		self.wm.current = "profil" #tambahkan ini

if __name__ == '__main__':
	LabelBase.register(name="Atma", fn_regular="kv/assets/fonts/Atma-Bold.ttf")
	LabelBase.register(name="Tagline", fn_regular="kv/assets/fonts/Ubuntu-LI.ttf")
	LabelBase.register(name="Line", fn_regular="kv/assets/fonts/Ubuntu-M.ttf")
	LapakNgoding().run()

 dan jangan lupa tambahkan juga baris kode import di screens.py yang berada di BelajarKivy - screens - screens.py berikut kodenya

from screens.hallog import Hallog
from screens.daftar import Daftar
from screens.daftaradm import DaftarAdm
from screens.beranda import Beranda
from screens.hallogadmin import Hallogadmin
from screens.profil import Profil #tambahkan ini

lalu buat 2 buah file

1. profil.py berada di folder  BelajarKivy - screens - profil.py

from kivy.app import App
from kivy.uix.label import Label
from kivy.lang import Builder
from kivymd.uix.dialog import MDDialog
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.label import MDLabel
import sqlite3
import bcrypt
import os

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DB_PATH = os.path.join(BASE_DIR, '..', 'LapakNgoding.db')

from screens.screens import *

class Profil(MDScreen):
    def __init__(self, **kwargs):
        Builder.load_file("kv/profil.kv")
        super().__init__(**kwargs)

    def on_pre_enter(self):
        app = MDApp.get_running_app()
        username = app.logged_user or ""
        self.ids.welcome_label.text = f"Hi {username}, mohon diperhatikan untuk perubahan data!"

        try:
            conn = sqlite3.connect(DB_PATH)
            c = conn.cursor()
            c.execute("SELECT nama, email, nohp, alamat FROM member WHERE username = ?", (username,))
            result = c.fetchone()
            conn.close()
            
            print("Data dari DB:", result)

            if result:
                self.ids.nama.text = str(result[0])
                self.ids.email.text = str(result[1])
                self.ids.nohp.text = str(result[2])
                self.ids.alamat.text = str(result[3])
        except Exception as e:
            print("Error:", e)

    def update_profil(self):
        nama = self.ids.nama.text.strip()
        email = self.ids.email.text.strip()
        nohp = self.ids.nohp.text.strip()
        alamat = self.ids.alamat.text.strip()
        username = MDApp.get_running_app().logged_user

        try:
            conn = sqlite3.connect(DB_PATH)
            c = conn.cursor()
            c.execute("""UPDATE member SET nama=?, email=?, nohp=?, alamat=? WHERE username=?""",
                      (nama, email, nohp, alamat, username))
            conn.commit()
            conn.close()

            self.dialog = MDDialog(text="Data berhasil diperbarui!", radius=[20, 7, 20, 7])
            self.dialog.open()
        except Exception as e:
            print("Error update:", e)
            self.dialog = MDDialog(
				text="Gagal memperbarui data!",
				radius=[20, 7, 20, 7]
			)
            self.dialog.open()

 2. profil.kv  berada di folder  BelajarKivy - kv - profil.kv

#:kivy 2.1
<profil>:
 MDFloatLayout:
        md_bg_color: ("#d3ede6")

        Image:
            source: "kv/assets/foto/lapakngodingtr.png"
            size_hint: 0.5, 0.5
            pos_hint: {"center_x": 0.70, "center_y": 0.87}

        Image:
            source: "kv/assets/foto/logoLapakngodin9.png"
            size_hint: 0.2, 0.2
            pos_hint: {"center_x": 0.13, "center_y": 0.90}

        MDLabel:
            text: "L a p a k  N g o d i n g"
            halign: "center"
            font_size: "30sp"
            font_name: "Atma"
            pos_hint: {"center_x": 0.60, "center_y": 0.95}

        MDLabel:
            text: "Belajar Ngoding dengan Browsing"
            halign: "center"
            font_size: "16sp"
            font_name: "Tagline"
            pos_hint: {"center_x": 0.60, "center_y": 0.90}
            color: ("#808080")

        MDLabel:
            id: welcome_label
            text: ''
            halign: "center"
            font_size: "18sp"
            font_name: "Tagline"
            pos_hint: {"center_x": 0.50, "center_y": 0.80}
            color: ("#808080")

        MDLabel:
            text: "Profil Saya"
            font_style: "H5"
            halign: "center"
            pos_hint: {"center_y": 0.75}

        MDTextField:
            id: nama
            hint_text: "Nama Lengkap"
            mode: "rectangle"
            icon_left: "account"
            size_hint: 0.70, 0.09
            pos_hint: {"center_x": 0.5, "center_y": 0.69}

        MDTextField:
            id: email
            hint_text: "Email aktif"
            mode: "rectangle"
            icon_left: "email-check-outline"
            size_hint: 0.70, 0.09
            pos_hint: {"center_x": 0.5, "center_y": 0.59}

        MDTextField:
            id: nohp
            hint_text: "No HP"
            mode: "rectangle"
            icon_left: "cellphone-basic"
            size_hint: 0.70, 0.09
            pos_hint: {"center_x": 0.5, "center_y": 0.49}

        MDTextField:
            id: alamat
            hint_text: "Alamat"
            mode: "rectangle"
            icon_left: "city-variant"
            size_hint: 0.70, 0.09
            pos_hint: {"center_x": 0.5, "center_y": 0.39}

        MDTextField:
            id: password
            password: True
            hint_text: "Password"
            mode: "rectangle"
            icon_left: "key-variant"
            size_hint: 0.35, 0.09
            pos_hint: {"center_x": 0.32, "center_y": 0.29}

        MDRaisedButton:
            text: "Simpan"
            font_size: "16sp"
            font_name: "Atma"
            size_hint: 0.30, 0.07
            pos_hint: {"center_x": 0.32, "center_y": 0.19}
            md_bg_color: ("#23a484")
            on_release: root.update_profil()

        MDTopAppBar:
            md_bg_color: ("#23a484")
            use_overflow: True
            left_action_items:
                [["home", lambda x: app.callback(x), "Home", "Home"]]
            right_action_items:
                [["logout", lambda x: app.logout(), "Logout", "Logout"]]

 selesai lalu jalankan. untuk versi videonya menyusul ya.

Terima kasih

Jakarta, saat BMKG bingung menentukan musim cuaca atau gua yang baru tahu istilah Kemarau Basah

Komentar

Postingan populer dari blog ini

Membuat Aplikasi Android dengan Python dan Kivy | Upload dan Ubah Foto di Halaman Profil

 Hai Sobat Ngoding gimana kabarnya? kalau kamu menemukan blog ini berarti tujuan kita sama yaitu Belajar Ngoding dengan Browsing. saya mo lanjutin yang kemarin ya sob yang baru mampir silahkan cek Membuat Aplikasi Android dengan Python dan Kivy | Halaman Profil Member untuk Update Data dan Membuat Aplikasi Android dengan Python dan Kivy | Tutorial Ganti Password .  Sekarang kita bahas lanjutannya yaitu Membuat Aplikasi Android dengan Python dan Kivy | Upload dan Ubah Foto di Halaman Profil dicatatan kali ini saya ga nambah file, cuma menambah fungsi di profil.py, daftar.py, profil.kv serta menambahkan kolom foto di tabel database SQLite. di file profil.py saya menambahkan fungsi untuk menampilkan foto profil, fungsi ubah dan upload foto ke folder yang sudah ditentukan, lalu merubah nama foto berdasarkan username. Berikut susuna kodenya profil.py from kivy.app import App from kivy.uix.label import Label from kivy.lang import Builder from kivymd.uix.dialog import MDDialog fro...

Membuat Aplikasi Android dengan Pyrhon dan Kivy | Halaman Login | Form Pendaftaran serta Autentikasi ke Halaman Member

  Hai, para koder kece !  Pernah kepikiran gak sih bikin aplikasi Android tapi gak mau ribet sama Java atau Kotlin yang bikin pusing? Nah, di artikel ini kita bakal ngulik cara bikin aplikasi Android cuma pakai Python dan Kivy . Tenang aja, kita gak langsung lompat ke yang susah-susah. Kita mulai dari hal dasar dulu: bikin halaman login , form pendaftaran , dan pastinya autentikasi biar bisa masuk ke halaman member kayak aplikasi beneran! Kalau kamu suka ngoding dan pengen nyobain bikin aplikasi sendiri, yuk lanjut baca sampai habis. Siap-siap jadi koder keren berikutnya!  Siap, koder! 🎉 Yuk kita bedah bareng kode Python di atas dengan gaya santai biar makin paham. 🧠 Apa sih kode ini? Kode ini adalah kerangka utama dari aplikasi Android yang kita bangun pakai Python + KivyMD . Di sini udah disiapin struktur buat halaman login, pendaftaran, dan halaman beranda . Pokoknya dasar dari aplikasi yang punya banyak halaman. 🔍 Penjelasan Baris per Baris from kivymd.a...