Anda di halaman 1dari 5

Danu Adi Nugroho IPPL B

202410103058 UTS

1.
a. Login 1
2. class Login:
3. error = None
4. def __init__(self, uid, passw):
5. self.uid = "admin"
6. self.passw = "admin"
7. Login.error = "Maaf anda belum bisa login"
8. def authenticate(self):
9. if(self.uid == logid and self.passw == logpass):
10. print("Login berhasil")
11. else:
12. print(Login.error)
13. log = Login("", "")
14. logid = input("Masukkan ID: ")
15. logpass = input("Masukkan password: ")
16. log.authenticate()
17.
Perbaikan Code

- 1
Line 5 dan 6 sebaiknya diganti dengan uid dan passw, lalu dalam parameter pada
line 4 ditambah nilai default ex uid=”admin”, passw=”admin” agar pada saat
membuat sebuah class Login uid dan passw dapat diubah sesuai kebutuhan.

- 2
Penambahan parameter logid dan logpassw pada fungsi auth sehingga tidak
menggunakan global variable.

Probabilitas Error

- 1
Input : admin, admin
Expected : Login berhasil
Output : Maaf anda belum bisa login
Error : Kesalahan penggunaan operator pada line 9, menggunakan = bukan ==

- 2
Input : admin, admin
Expected : Login berhasil
Output : Maaf anda belum bisa login
Error : Penggunaan global variable logid dan logpass jika berbeda dengan di
fungsi maka akan error, seharusnya dijadikan parameter dalam fungsi
auth
Danu Adi Nugroho IPPL B
202410103058 UTS

b. Login 2
1. print("Selamat Datang...")
2. welcome = input("Apakah anda memiliki akun? y/t: ")
3. if welcome == "t":
4. while True:
5. username = input("Masukkan username:")
6. password = input("Masukkan password:")
7. password1 = input("Konfirmasi password:")
8. if password == password1:
9. file = open(username+".txt", "w")
10. file.write(username+":"+password)
11. file.close()
12. welcome = "y"
13. break
14. print("Password anda salah!")
15.
16. if welcome == "y":
17. while True:
18. login1 = input("Login:")
19. login2 = input("Password:")
20. file = open(login1+".txt", "r")
21. data = file.readline()
22. file.close()
23. if data == login1+":"+login2:
24. print("Selamat Datang")
25. break
26. print("username atau password anda salah.")
Perbaikan Code

- 1
Penambahan kondisi if pada line 27 agar menampilkan pesan jika input user selain y
atau t

Probabilitas Error

- 1
Input : y, admin, admin
Expected : Selamat Datang
Output : Error, file not found
Error : File txt yang menyimpan data username dan password masih belum
ada
Danu Adi Nugroho IPPL B
202410103058 UTS

c. Login 3
1. import time
2. from getpass import getpass
3.
4. def reg():
5. print("register!")
6. time.sleep(1)
7. global user
8. global psw
9. user = str(input("New Username: "))
10. psw = getpass("New Password: ")
11. time.sleep(1)
12. print("Password and Username has been set successfully! continue.")
13. print("\x1B[2J")
14.
15. def login():
16. print("Login with Username and Password!")
17. login_username = str(input("Username: "))
18. login_password = getpass("Password: ")
19. if(login_username != user or login_password != psw):
20. print("\x1B[2J")
21. print("username or password is incorrect please try again!")
22. login()
23. else:
24. print("Success!")
25. time.sleep(1)
26. print("\x1B[2J")
27.
28. def result():
29. print("You now have access to the secerts...")
30. print("the first secert --> "+ str(secret1))
31. print("the second secret --> "+ str(secret2))
32.
33. def run():
34. reg()
35. login()
36. result()
37.
38.
39. global secret1
40. global secret2
41. secret1 = input("A secret: ")
42. secret2 = input("Another secret: ")
43. print("\x1B[2J")
44. run()
Danu Adi Nugroho IPPL B
202410103058 UTS

Perbaikan Code

- Tidak ada

Probabilitas Error

- Tidak ada

Perbedaan antara Login 1, Login 2 dan Login 3

Login 1 merupakan system login sederhana dengan data id dan password yang disimpan dalam
sebuah variable didalam class, sedangkan pada login 2 data id dan password disimpan dalam file
txt, dan pada login 3 data id dan password disimpan dalam variable global.

2.
a. Simple Test
Program ini adalah sebuah unit test simple yang hanya mengecek apakah nilainya
bernilai true atau tidak menggunakan fungsi assertTrue. Jika true maka akan
menampilkan OK, dan jika false maka akan menampilkan FAILED.

b. Exception Test
Program ini adalah sebuah unit test yang melakukan ValueError untuk dapat ditangkap
secara lokal dalam try except dalam test trap_locally. Jika berhasil membuat ValueError
dan dapat di tangkap dalam try except maka akan menampilkan OK, dan jika tidak maka
akan menampilkan FAILED.

c. Fail with Message Test


Program ini mirip seperti simple test hanya saja terdapat tambahan pesan jika terjadi
FAILED.

d. Fixture Test
Program ini adalah sebuah unit test yang mengecek apakah nilai variable fixture sama
atau tidak dengan kondisi yang diinginkan menggunakan assertEqual. Jika sama maka
akan menampilkan OK, dan jika beda maka akan menampilkan FAILED.

e. Not Equal Test


Program ini adalah sebuah unit test yang mengecek apakah nilai dalam kedua
parameter sama atau tidak dengan kondisi yang diinginkan menggunakan assertEqual
dan assertNotEqual. Jika keduanya benar (Equal untuk 1 = 3-2 dan not Equal untuk 2 = 3-
2) maka akan menampilkan OK, dan jika salah satunya salah maka akan menampilkan
FAILED.
Danu Adi Nugroho IPPL B
202410103058 UTS

f. Outcomes Test
Program ini adalah sebuah unit test yang mengecek apakah nilai kondisinya sesuai atau
tidak. Terdapat 3 case yaitu pass dengan menggunakan assertTrue, fail dengan
menggunakan assertFalse dan error dengan menggunakan RuntimeError. Jika ketiganya
sesuai maka akan menampilkan OK, dan jika salah satunya tidak sesuai maka akan
menampilkan FAILED.

g. Truth Test
Program ini adalah sebuah unit test yang mengecek apakah nilainya sesuai atau tidak.
Terdapat 2 case yaitu true dengan menggunakan assertTrue, dan false dengan
menggunakan assertFalse. Jika keduanya sesuai maka akan menampilkan OK, dan jika
salah satunya tidak sesuai maka akan menampilkan FAILED.

Anda mungkin juga menyukai