Advertisement
sabdas4869

tubesBeres

Nov 27th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.64 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "os"
  6. "os/exec"
  7. "runtime"
  8. )
  9.  
  10. const N = 99999
  11.  
  12. type data struct {
  13. id int
  14. sekul string
  15. kls string
  16. pel string
  17. smt string
  18. silb string
  19. mat string
  20. }
  21. var tab [N]data
  22. var i , tot, id int
  23.  
  24. var clear map[string]func() //create a map for storing clear funcs
  25.  
  26. func init() {
  27. clear = make(map[string]func()) //Initialize it
  28. clear["linux"] = func() {
  29. cmd := exec.Command("clear") //Linux example, its tested
  30. cmd.Stdout = os.Stdout
  31. cmd.Run()
  32. }
  33. clear["windows"] = func() {
  34. cmd := exec.Command("cmd", "/c", "cls") //Windows example, its tested
  35. cmd.Stdout = os.Stdout
  36. cmd.Run()
  37. }
  38. }
  39.  
  40. func CallClear() {
  41. value, ok := clear[runtime.GOOS] //runtime.GOOS -> linux, windows, darwin etc.
  42. if ok { //if we defined a clear func for that platform:
  43. value() //we execute it
  44. } else { //unsupported platform
  45. panic("Your platform is unsupported! I can't clear terminal screen :(")
  46. }
  47. }
  48.  
  49. var key string
  50.  
  51. // Function Main
  52. func main() {
  53. var c string
  54.  
  55. CallClear()
  56. fmt.Println(".::Selamat Datang di aplikasi DARING 1::.")
  57. fmt.Println("==========================================\n")
  58. fmt.Print("Ketik 'yes' jika ingin lanjut : ")
  59. fmt.Scan(&c)
  60. if c == "yes" {
  61. CallClear()
  62. menuUtama()
  63. } else {
  64. fmt.Println()
  65. fmt.Println("==========================================\n")
  66. fmt.Print("Terima Kasih :)")
  67. }
  68. }
  69. // End
  70.  
  71.  
  72. func menuUtama() {
  73. var x int
  74. fmt.Println(".::::::::::::::::::::::::::::::::::::::::::.")
  75. fmt.Print("(1. Insert) (2. View) (0. Exit)\n")
  76. fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\nPilih : ")
  77. fmt.Scan(&x)
  78. CallClear()
  79. if x == 1 {
  80. insert()
  81. menuUtama()
  82. } else if x == 2 {
  83. fmt.Print(".::::::::::::::::::::::::::::::::::::::::::::::::::::::::.\n")
  84. fmt.Print("(1. Edit) (2. Delete) (3. Cari) (4. Sorting) (0. Exit)\n")
  85. fmt.Print("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\nPilih : ")
  86. fmt.Scan(&x)
  87. CallClear()
  88. if x == 1 {
  89. menuEdit()
  90. menuUtama()
  91. } else if x == 2 {
  92. menuDelete()
  93. menuUtama()
  94. } else if x == 3 {
  95. menuCari()
  96. menuUtama()
  97. } else if x == 4 {
  98. menuSort()
  99. //}else if x==0{
  100. // menuUtama()
  101. } else if x == 0 {
  102. menuUtama()
  103. }
  104. } else if x == 0 {
  105. main()
  106. }
  107. }
  108.  
  109. func insert() {
  110. var confirm string
  111.  
  112. i = 0
  113. tot = 0
  114. fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
  115. fmt.Print("Apakah Ingin Input : ")
  116. fmt.Scan(&confirm)
  117. fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
  118. for (confirm != "no") && (i < N) {
  119. id++
  120. tab[i].id = id
  121. fmt.Print("Sekolah : ")
  122. fmt.Scan(&tab[i].sekul)
  123. fmt.Print("Kelas : ")
  124. fmt.Scan(&tab[i].kls)
  125. fmt.Print("Pelajaran : ")
  126. fmt.Scan(&tab[i].pel)
  127. fmt.Print("Semester : ")
  128. fmt.Scan(&tab[i].smt)
  129. fmt.Print("Silabus : ")
  130. fmt.Scan(&tab[i].silb)
  131. fmt.Print("Materi : ")
  132. fmt.Scan(&tab[i].mat)
  133. CallClear()
  134. i++
  135. tot++
  136. fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
  137. fmt.Print("Apakah anda ingin input lagi : ")
  138. fmt.Scan(&confirm)
  139. fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
  140. }
  141. CallClear()
  142. }
  143.  
  144. func menuCari() {
  145. var x,sum int
  146. var s string
  147.  
  148. i = 0
  149. fmt.Println(".::::::::::::::::::::::::::::::::::.")
  150. fmt.Print("(1. Pelajaran) (2. Kelas) (0. Exit)\n")
  151. fmt.Print("====================================\nCari Berdasarkan : ")
  152. fmt.Scan(&x)
  153. if (x == 1) {
  154. fmt.Print("Pelajaran : ")
  155. fmt.Scan(&s)
  156. } else if (x == 2) {
  157. fmt.Print("Kelas : ")
  158. fmt.Scan(&s)
  159. } else if (x == 0) {
  160. CallClear()
  161. menuUtama()
  162. } else {
  163. menuCari()
  164. }
  165.  
  166. for (i < tot) {
  167. if (s == tab[i].pel || s == tab[i].kls) {
  168. fmt.Println(".::::::::::::::::::::::::::::::::::::.")
  169. fmt.Println("ID : ",tab[i].id)
  170. fmt.Println("Sekolah : ",tab[i].sekul)
  171. fmt.Println("Kelas : ",tab[i].kls)
  172. fmt.Println("Pelajaran : ",tab[i].pel)
  173. fmt.Println("Semester : ",tab[i].smt)
  174. fmt.Println("Silabus : ",tab[i].silb)
  175. fmt.Println("Materi : ",tab[i].mat)
  176. fmt.Println("::::::::::::::::::::::::::::::::::::::")
  177. sum++
  178. }
  179. i++
  180. }
  181. return
  182. if sum <= 0 {
  183. fmt.Println("Data Tidak Ditemukan")
  184. }
  185. fmt.Print("Ketik '0' jika ingin Exit : ")
  186. fmt.Scan(&x)
  187. if x == 0 {
  188. CallClear()
  189. menuUtama()
  190. } else {
  191. menuCari()
  192. }
  193. }
  194.  
  195. func menuDelete() {
  196. var x int
  197. var found bool
  198.  
  199. i = 0
  200. found = false
  201. fmt.Print("Input ID data yang ingin di hapus : ")
  202. fmt.Scan(&x)
  203.  
  204. for (i < tot) && (found == false) {
  205. if tab[i].id == x {
  206. found = true
  207. tab[i].sekul = ""
  208. tab[i].kls = ""
  209. tab[i].pel = ""
  210. tab[i].smt = ""
  211. tab[i].silb = ""
  212. tab[i].mat = ""
  213. }
  214. i++
  215. }
  216. if found == true {
  217. fmt.Println("Data Berhasil Dihapus")
  218. }
  219.  
  220. fmt.Print("Ketik '0' jika ingin Exit : ")
  221. fmt.Scan(&x)
  222. if x == 0 {
  223. CallClear()
  224. menuUtama()
  225. } else {
  226. menuDelete()
  227. }
  228. }
  229.  
  230. // Procedure Edit
  231. func menuEdit(){
  232. var x int
  233. var c string
  234. var found bool
  235.  
  236. i = 0
  237. found = false
  238. c = "no"
  239.  
  240. for c != "yes" {
  241. fmt.Print("Input ID data yang ingin di Edit : ")
  242. fmt.Scan(&x)
  243.  
  244. for (i < tot) && (found == false) {
  245.  
  246. if tab[i].id == x {
  247. found = true
  248. fmt.Println(".::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.")
  249. fmt.Print("(1. Sekolah) (2. Kelas) (3. Pelajaran) (4. Semester) (5. Silabus) (6. Materi) (0. Exit)\n")
  250. fmt.Print("Pilih yang akan di Edit : ")
  251. fmt.Scan(&x)
  252.  
  253. switch x {
  254. case 1:
  255. fmt.Print("Input Sekolah : ")
  256. fmt.Scan(&tab[i].sekul)
  257. case 2:
  258. fmt.Print("Input Kelas : ")
  259. fmt.Scan(&tab[i].kls)
  260. case 3:
  261. fmt.Print("Input Pelajaran : ")
  262. fmt.Scan(&tab[i].pel)
  263. case 4:
  264. fmt.Print("Input Semester : ")
  265. fmt.Scan(&tab[i].smt)
  266. case 5:
  267. fmt.Print("Input Silabus : ")
  268. fmt.Scan(&tab[i].silb)
  269. case 6:
  270. fmt.Print("Input Materi : ")
  271. fmt.Scan(&tab[i].mat)
  272. default :
  273. menuUtama()
  274. }
  275.  
  276. }
  277.  
  278. i++
  279. }
  280.  
  281. fmt.Println("Sudah Selesai Edit ")
  282. fmt.Scan(&c)
  283. }
  284.  
  285. if found == true {
  286. fmt.Println("Data Berhasil Diedit")
  287. }
  288.  
  289. fmt.Print("Ketik '0' jika ingin Exit : ")
  290. fmt.Scan(&x)
  291. if x == 0 {
  292. CallClear()
  293. menuUtama()
  294. } else {
  295. menuEdit()
  296. }
  297. }
  298.  
  299. func menuSort(){
  300.  
  301. var a,b int
  302. //var y string
  303.  
  304.  
  305. fmt.Println("Sorting \n1.Ascending \n2.Descending")
  306. fmt.Scan(&a)
  307. if a==1{
  308. fmt.Println("Berdasarkan : \n1.Sekolah \n2.Materi")
  309. fmt.Scan(&b)
  310. if b==1{
  311.  
  312. //SELECTION SORT ASCENDING
  313.  
  314. for i := 1; i < tot; i++ {
  315. j := i
  316. for j > 0 && tab[j].sekul < tab[j-1].sekul && tab[j].id!=0 && tab[j-1].id!=0{
  317. tab[j], tab[j-1] = tab[j-1], tab[j]
  318. j -= 1
  319. }
  320.  
  321. }
  322. hasilSort()
  323. }else if b==2{
  324.  
  325. //SELECTION SORT DESCENDING
  326.  
  327. for i := 1; i < tot; i++ {
  328. j := i
  329. for j > 0 && tab[j].mat <tab[j-1].mat && tab[j].id!=0 && tab[j-1].id!=0{
  330. tab[j], tab[j-1] = tab[j-1], tab[j]
  331. j -= 1
  332. }
  333.  
  334. }
  335. hasilSort()
  336. }
  337. }else if a==2{
  338. fmt.Println("Berdasarkan : \n1.Sekolah \n2.Materi")
  339. fmt.Scan(&b)
  340. if b==1{
  341.  
  342. //INSERTION SORT DESCENDING
  343.  
  344. for j := 0; j < tot; j++ {
  345. minPos := j
  346. for i := j + 1; i < tot; i++ {
  347. if tab[i].sekul > tab[minPos].sekul && tab[i].id!=0 && tab[minPos].id!=0{
  348. minPos = i
  349. }
  350. }
  351. tab[j], tab[minPos] = tab[minPos], tab[j]
  352. }
  353. hasilSort()
  354. }else if b==2{
  355.  
  356. for j := 0; j < tot; j++ {
  357. minPos := j
  358. for i := j + 1; i < tot; i++ {
  359. if tab[i].mat > tab[minPos].mat && tab[i].id!=0 && tab[minPos].id!=0 {
  360. minPos = i
  361. }
  362. }
  363. tab[j], tab[minPos] = tab[minPos], tab[j]
  364. }
  365. hasilSort()
  366. }
  367. }
  368. menuUtama()
  369. }
  370. func hasilSort(){
  371. for i:=0; i<tot; i++{
  372. fmt.Print(tab[i], " ")
  373. }
  374. fmt.Print("\n")
  375. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement