Cara Membuat Auto Login atau Remember Me di Basic4Android (B4A)
|Coba bayangkan, serta rasakan, bagaimana jika setiap aplikasi yang kita jalankan selalu mengharuskan kita untuk mengetik data user, seperti username dan password untuk melakukan login. Iya kalau data usernya menggunakan username dan password yang simple, kalau tidak? Ya kasihan jempol kita š
Maka dari itu, hampir setiap aplikasi yang memiliki halaman login, terdapat fitur remember me. Adalah sebuah pilihan untuk user apakah saat user ingin membuka aplikasi ini lagi akan selalu login atau login otomatis? Nah, sekarang saya akan sharing bagaimana cara membuat fitur auto login atau remember me tersebut.
Skenarionya begini, kita akan membuat semacam login session, yang mana login session ini akan diset saat login berhasil. Kita akan memberi nama āis_loginā pada login session ini, dan akan disimpan di Shared Preferences. Dan value-nya berupa boolean, True atau False. Setiap membuka aplikasi, akan mengecek login session (is_login). Jika isinya True, maka akan auto login dan langsung menuju ke halaman Menu. Jika isinya False, maka akan berhadapan dulu dengan halaman login.
Oke, langsung saja…
- Buat project baru, lalu save dengan nama: MyAutoLogin.
- Lalu aktifkan library AHPreferenceActivity.
- Buka jendela Designer dengan mengklik menu Designer.
- Buat layout baru dengan nama login.
- Tambahkan 2 Label, 2 EditText, 1 CheckBox, dan 1 Button. Lalu susun seperti gambar berikut:
- Pada properties, atur object-object tersebut seperti berikut:
Object | Name | Text |
Label1 | Label1 | Username |
Label2 | Label2 | Password |
EditText1 | edtUsername | – |
EditText2 | edtPassword | – |
CheckBox1 | cbRememberMe | Remember Me |
Button1 | btnLogin | Login |
- Deklarasikan masing-masing object tadi. Kecuali Label1 dan Label2.
- Tambahkan event Click pada btnLogin.
- Setelah itu save layout login tadi, dan kembali lagi ke code editor.
- Pada Process_Globals buat variabel untuk PreferenceManager dengan nama: manager.
1 2 3 4 5 |
Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. Dim manager As AHPreferenceManager End Sub |
- Pada Sub Globals, tambahkan dua variabel string dengan nama: username dan password. Variabel-variabel tersebut fungsinya untuk menyimpan data username dan password.
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Globals 'These global variables will be redeclared each time the activity is created. 'These variables can only be accessed from this module. Private edtUsername As EditText Private edtPassword As EditText Private cbRememberMe As CheckBox Private btnLogin As Button Private username As String Private password As String End Sub |
- Pada event Activity_Create tambahkan code berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub Activity_Create(FirstTime As Boolean) 'Cek login session CheckLoginSession 'Panggil layout yg akan digunakan pada activity ini Activity.LoadLayout("login") 'Set judul untuk activity ini Activity.Title = "Login" 'Set value untuk Username dan Password username = "heru" password = "heru" End Sub |
- Kemudian buat fungsi baru dengan nama: CheckLoginSession. Fungsi ini digunakan untuk melakukan pengecekan pada saat aplikasi dijalankan, apakah auto login atau tidak. Jika auto login, maka skip atau lewati Activity Main (Halaman Login) dan langsung membuka Activity Menu. Jika tidak auto login, maka akan menuju Halaman Login.
1 2 3 4 5 6 7 8 9 |
Sub CheckLoginSession() Dim isLogin As Boolean isLogin = manager.GetBoolean("is_login") If isLogin Then StartActivity(Menu) Activity.Finish End If End Sub |
- Buat satu activity lagi, beri nama Menu.
- Kembali lagi ke activity Main.Ā Lalu buat fungsi baru dengan nama: SetLoginSession. Fungsi ini digunakan untuk mengeset/mengisi nilai dari is_login. Yang mana is_login ini adalah boolean value yang nanti akan disimpan di Shared Preferences.
1 2 3 4 5 6 7 |
Sub SetLoginSession(Checked As Boolean) If Checked Then manager.SetBoolean("is_login", True) Else manager.SetBoolean("is_login", False) End If End Sub |
- Pada fungsi BtnLogin_Click tambahkan code berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Sub btnLogin_Click 'Cek apakah username dan password yg dimasukkan 'sama dengan value pada variabel username dan password 'Jika sama, maka login sukses, dan buka activity Menu 'Jika tidak sama, maka login gagal If edtUsername.Text = username And edtPassword.Text = password Then Msgbox("Hai, " & edtUsername.Text & CRLF & _ "Selamat datang di My AutoLogin.", "Login Sukses") 'Set login session If cbRememberMe.Checked Then SetLoginSession(True) Else SetLoginSession(False) End If StartActivity(Menu) Activity.Finish Else Msgbox("Username atau Password salah.", "Login Gagal") End If End Sub |
- Pada code di atas, saat login sukses, kita akan mengeset/mengisi nilai dari is_login sesuai dengan CheckBox Remember Me. Jika Remember Me dicentang, maka set is_login dengan True. Jika tidak dicentang, maka set is_login dengan False.
- Kemudian kita beralih ke activity Menu, pada event Activity_Create tambahkan code berikut:
1 2 3 4 5 6 7 8 9 10 |
Sub Activity_Create(FirstTime As Boolean) 'Do not forget to load the layout file created with the visual designer. For example: 'Activity.LoadLayout("Layout1") 'Set judul untuk activity ini Activity.Title = "Menu" 'Buat menu Logout Activity.AddMenuItem("Logout", "Logout") End Sub |
- Buat event Click untuk object menu Logout. Lalu set nilai is_login menjadi False.
1 2 3 4 5 6 7 8 9 10 |
Sub Logout_Click() 'Set is_login ke false Main.manager.SetBoolean("is_login", False) 'Buka activity Main (Halaman Login) StartActivity(Main) Activity.Finish ToastMessageShow("Logout berhasil", False) End Sub |
- Save, kemudian Run/Compile project ini dalam versi Release.
- Kemudian lihat, apa yang terjadi…
Oke, demikian cara membuat auto login atau remember meĀ di B4A. Semoga bermanfaat. Jika masih ada kesulitan atau problem jangan ragu untuk bertanya di form komentar. Dan… Tetap nantikan juga tutorial-tutorial menarik lainnya seputar Basic4Android.
Happy Coding! š
Silakan download source code lengkapnya di sini.
gan saya buat RDC mysql notification listener,misal mencari data pada database status masih angka 0,saat angka nol notification muncul.program saat dijalankan bisa jalan.tapi saat program di background tidak jalan saya menggunkan StartServiceAt muncul sending message to waiting queue (CallSubDelayed – JobDone).RDC tetap jalan yaitu Command: query: select_pesan2, took 6ms, client=192.168.43.112,ada solusi gak makasih
gan saya buat RDC mysql notification listener,misal mencari data pada database status masih angka 0,saat angka nol notification muncul.program saat dijalankan bisa jalan.tapi saat program di background tidak jalan saya menggunkan StartServiceAt muncul sending message to waiting queue (CallSubDelayed – JobDone).RDC tetap jalan yaitu Command: query: select_pesan2, took 6ms, client=192.168.43.112,mohon bantuan solusinya makasih
Min cara supaya passwordnya jadi titik2 gimana
Di layout-nya centang pilihan Password.
Setup Password Text itu dimana ya min gambarnya rusak soalnya
Sudah saya update gambarnya.
gan coba bikin tutorial buat play video dong di basic4android ini, atau bikin gambar yang bisa pakai timer, saya rencana mau bikin aplikasi android untuk tutorial berolahraga
Gan, saya mau cara membuat aplikasi berita mengunakan B4A kaya gimana sich, saya kurang paham
link mati gan
Sudah saya perbaiki. Silakan dicoba lagi.
Om, kalo bikin auto login menggunakan php mysql query nya gimana
Ngapain?
AHPreferenceActivity linknya mana?
Coba ini :
https://drive.google.com/file/d/1tdXdw9jvRXbPy4y2lfrcqgs3fDa0UjVF/view?usp=sharing
Terimakasih banyak Mas. Terus berkarya, biar ilmunya terus ada dan bahan buat bisa dibagikan kekita-kita yg msh belajar. Entah hal-hal luar biasa ataupun yg sesederhana dan semoga bermanfaat. Tetap selalu On…. mski mngkin dengan cara atau media tempat yg beda atau baru. Selalu cantumkan media apa sj skrg Mas geluti atau tempat sharing ilmu… suksessss….