Advertisement
Guest User

Untitled

a guest
Mar 15th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "strings"
  6. )
  7.  
  8. type product struct {
  9. id int
  10. name string
  11. }
  12.  
  13. func main() {
  14. var products []product
  15. var username string
  16. var password string
  17. var isLogin = false
  18. var input int
  19.  
  20. for {
  21. fmt.Println("You need to login to access this program.")
  22.  
  23. fmt.Println("Username: ")
  24. _, _ = fmt.Scanf("%s", &username)
  25. fmt.Println("Password: ")
  26. _, _ = fmt.Scanf("%s", &password)
  27.  
  28. if login(username, password) {
  29. isLogin = true
  30. break
  31. }
  32. }
  33.  
  34. for isLogin {
  35. fmt.Println("[======================]")
  36. fmt.Println("List menu: ")
  37. fmt.Println("1.] -> Show list product")
  38. fmt.Println("2.] -> Show product by id")
  39. fmt.Println("3.] -> Add product")
  40. fmt.Println("4.] -> Update product")
  41. fmt.Println("5.] -> Delete product")
  42. fmt.Println("0.] -> [[ Exit Program ]]")
  43. fmt.Println("[======================]")
  44.  
  45. _, _ = fmt.Scanf("%d", &input)
  46.  
  47. switch input {
  48. case 0:
  49. fmt.Println("Thank you for using our program! :)")
  50. isLogin = false
  51. break
  52. case 1:
  53. showListProduct(products)
  54. break
  55. case 2:
  56. id := 0
  57. fmt.Println("Masukkan id product:")
  58. _, _ = fmt.Scanf("%d", &id)
  59. showProductById(id, products)
  60. break
  61. case 3:
  62. //Kita akan melakukan perubahan terhadap products dengan menambahkan data produk, sehingga kita perlu menggunakan pointer
  63. //Kirimkan alamat array products (dalam memory dengan &products) kepada method addProduct(_)
  64. addProduct(&products)
  65. break
  66. case 4:
  67. //Kita akan melakukan perubahan terhadap products dengan mengubah data product, sehingga kita perlu menggunakan pointer
  68. //Kirimkan alamat array products (dalam memory dengan &products) kepada method addProduct(_)
  69. id := 0
  70. fmt.Println("Masukkan id product:")
  71. _, _ = fmt.Scanf("%d", &id)
  72. updateProductById(id, &products)
  73. break
  74. case 5:
  75. //Kita akan melakukan perubahan terhadap products dengan menghapus data product dari products, sehingga kita perlu menggunakan pointer
  76. //Kirimkan id product yang ingin dihapus dan alamat array products (dalam memory dengan &products) kepada method addProduct(_)
  77. id := 0
  78. fmt.Println("Masukkan id product:")
  79. _, _ = fmt.Scanf("%d", &id)
  80. deleteProductById(id, &products)
  81. break
  82. default:
  83. fmt.Println("Menu tidak dikenali, coba cek lagi!")
  84. break
  85. }
  86. }
  87. }
  88.  
  89. func deleteProductById(id int, products *[]product) {
  90. for i, p := range *products {
  91. if p.id == id {
  92. *products = append((*products)[:i], (*products)[i+1:]...)
  93. }
  94. }
  95. }
  96.  
  97. func updateProductById(id int, products *[]product) {
  98. newName := ""
  99.  
  100. fmt.Println("Masukkan nama terbaru product")
  101. _, _ = fmt.Scanf("%s", &newName)
  102.  
  103. for i, p := range *products {
  104. if p.id == id {
  105. (*products)[i] = product{id, newName}
  106. }
  107. }
  108. }
  109.  
  110. func addProduct(products *[]product) {
  111. id := 0
  112. name := ""
  113. fmt.Println("Masukkan id product")
  114. _, _ = fmt.Scanf("%d", &id)
  115. fmt.Println("Masukkan nama product")
  116. _, _ = fmt.Scanf("%s", &name)
  117.  
  118. product_ := product{id, name}
  119.  
  120. *products = append(*products, product_)
  121. }
  122.  
  123. func showProductById(id int, products []product) {
  124. for _, p := range products {
  125. if p.id == id {
  126. fmt.Println("ID: ", p.id)
  127. fmt.Println("Name: ", p.name)
  128. fmt.Println()
  129. }
  130. }
  131. }
  132.  
  133. func showListProduct(products []product) {
  134. // Untuk setiap product p dengan index i pada array products
  135. for _, p := range products {
  136. fmt.Println("ID: ", p.id)
  137. fmt.Println("Name: ", p.name)
  138. fmt.Println()
  139. }
  140. }
  141.  
  142. //Username: user; Password: pass
  143. func login(username string, password string) bool {
  144. if strings.Compare(username, "user") == 0 && strings.Compare(password, "pass") == 0 {
  145. return true
  146. }
  147. return false
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement