-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathF02.py
52 lines (45 loc) · 1.85 KB
/
F02.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# F02 - Register
import B01
def register(data_user):
# Registrasi akun user baru ke dalam data
# I.S. admin memasukkan data user baru
# F.S. data user baru disimpan dan dimunculkan pesan
# KAMUS
# function username_valid(username: string) -> bool
# function username_exist(username: string) -> bool
# data_user : array of User
# line : User
# u, id, nama, username, password : string
# char : char
# a : int
# Realisasi fungsi
def username_valid(u):
# validasi username
# Username hanya dapat mengandung alfabet A-Z, a-z, underscore “_”, strip “-”, dan angka 0-9
for char in u:
a = ord(char)
if not (64 < a < 91 or 96 < a < 123 or 47 < a < 58 or a == 45 or a == 95):
return False
return True
def username_exist(u):
# validasi apakah ada username yang sama
for line in data_user:
if line[1] == u: return True
return False
# ALGORITMA UTAMA
# input data user baru
id = str(int(data_user[-1][0]) + 1)
nama = input('Masukkan nama: ')
username = input('Masukkan username: ')
password = input('Masukkan password: ')
# validasi data user baru
if not username_valid(username):
print('\nUsername', username, 'tidak valid.')
print('Username hanya dapat mengandung alfabet A-Z, a-z, underscore “_”, strip “-”, dan angka 0-9.')
elif username_exist(username):
print('\nUsername', username, 'sudah terpakai, silakan menggunakan username lain.')
else:
data_user += [[id, username, nama, B01.encrypt(password, 'daspro'), 'user', 0]]
print('\nUsername', username, 'telah berhasil register ke dalam “Binomo”.')
# mengembalikan data_user yang sudah diupdate
return data_user