Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "os"
- "os/exec"
- "runtime"
- )
- const N = 99999
- type data struct {
- id int
- sekul string
- kls string
- pel string
- smt string
- silb string
- mat string
- }
- var tab [N]data
- var i , tot, id int
- var clear map[string]func() //create a map for storing clear funcs
- func init() {
- clear = make(map[string]func()) //Initialize it
- clear["linux"] = func() {
- cmd := exec.Command("clear") //Linux example, its tested
- cmd.Stdout = os.Stdout
- cmd.Run()
- }
- clear["windows"] = func() {
- cmd := exec.Command("cmd", "/c", "cls") //Windows example, its tested
- cmd.Stdout = os.Stdout
- cmd.Run()
- }
- }
- func CallClear() {
- value, ok := clear[runtime.GOOS] //runtime.GOOS -> linux, windows, darwin etc.
- if ok { //if we defined a clear func for that platform:
- value() //we execute it
- } else { //unsupported platform
- panic("Your platform is unsupported! I can't clear terminal screen :(")
- }
- }
- var key string
- // Function Main
- func main() {
- var c string
- CallClear()
- fmt.Println(".::Selamat Datang di aplikasi DARING 1::.")
- fmt.Println("==========================================\n")
- fmt.Print("Ketik 'yes' jika ingin lanjut : ")
- fmt.Scan(&c)
- if c == "yes" {
- CallClear()
- menuUtama()
- } else {
- fmt.Println()
- fmt.Println("==========================================\n")
- fmt.Print("Terima Kasih :)")
- }
- }
- // End
- func menuUtama() {
- var x int
- fmt.Println(".::::::::::::::::::::::::::::::::::::::::::.")
- fmt.Print("(1. Insert) (2. View) (0. Exit)\n")
- fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\nPilih : ")
- fmt.Scan(&x)
- CallClear()
- if x == 1 {
- insert()
- menuUtama()
- } else if x == 2 {
- fmt.Print(".::::::::::::::::::::::::::::::::::::::::::::::::::::::::.\n")
- fmt.Print("(1. Edit) (2. Delete) (3. Cari) (4. Sorting) (0. Exit)\n")
- fmt.Print("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\nPilih : ")
- fmt.Scan(&x)
- CallClear()
- if x == 1 {
- menuEdit()
- menuUtama()
- } else if x == 2 {
- menuDelete()
- menuUtama()
- } else if x == 3 {
- menuCari()
- menuUtama()
- } else if x == 4 {
- menuSort()
- //}else if x==0{
- // menuUtama()
- } else if x == 0 {
- menuUtama()
- }
- } else if x == 0 {
- main()
- }
- }
- func insert() {
- var confirm string
- i = 0
- tot = 0
- fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
- fmt.Print("Apakah Ingin Input : ")
- fmt.Scan(&confirm)
- fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
- for (confirm != "no") && (i < N) {
- id++
- tab[i].id = id
- fmt.Print("Sekolah : ")
- fmt.Scan(&tab[i].sekul)
- fmt.Print("Kelas : ")
- fmt.Scan(&tab[i].kls)
- fmt.Print("Pelajaran : ")
- fmt.Scan(&tab[i].pel)
- fmt.Print("Semester : ")
- fmt.Scan(&tab[i].smt)
- fmt.Print("Silabus : ")
- fmt.Scan(&tab[i].silb)
- fmt.Print("Materi : ")
- fmt.Scan(&tab[i].mat)
- CallClear()
- i++
- tot++
- fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
- fmt.Print("Apakah anda ingin input lagi : ")
- fmt.Scan(&confirm)
- fmt.Print("::::::::::::::::::::::::::::::::::::::::::::\n")
- }
- CallClear()
- }
- func menuCari() {
- var x,sum int
- var s string
- i = 0
- fmt.Println(".::::::::::::::::::::::::::::::::::.")
- fmt.Print("(1. Pelajaran) (2. Kelas) (0. Exit)\n")
- fmt.Print("====================================\nCari Berdasarkan : ")
- fmt.Scan(&x)
- if (x == 1) {
- fmt.Print("Pelajaran : ")
- fmt.Scan(&s)
- } else if (x == 2) {
- fmt.Print("Kelas : ")
- fmt.Scan(&s)
- } else if (x == 0) {
- CallClear()
- menuUtama()
- } else {
- menuCari()
- }
- for (i < tot) {
- if (s == tab[i].pel || s == tab[i].kls) {
- fmt.Println(".::::::::::::::::::::::::::::::::::::.")
- fmt.Println("ID : ",tab[i].id)
- fmt.Println("Sekolah : ",tab[i].sekul)
- fmt.Println("Kelas : ",tab[i].kls)
- fmt.Println("Pelajaran : ",tab[i].pel)
- fmt.Println("Semester : ",tab[i].smt)
- fmt.Println("Silabus : ",tab[i].silb)
- fmt.Println("Materi : ",tab[i].mat)
- fmt.Println("::::::::::::::::::::::::::::::::::::::")
- sum++
- }
- i++
- }
- return
- if sum <= 0 {
- fmt.Println("Data Tidak Ditemukan")
- }
- fmt.Print("Ketik '0' jika ingin Exit : ")
- fmt.Scan(&x)
- if x == 0 {
- CallClear()
- menuUtama()
- } else {
- menuCari()
- }
- }
- func menuDelete() {
- var x int
- var found bool
- i = 0
- found = false
- fmt.Print("Input ID data yang ingin di hapus : ")
- fmt.Scan(&x)
- for (i < tot) && (found == false) {
- if tab[i].id == x {
- found = true
- tab[i].sekul = ""
- tab[i].kls = ""
- tab[i].pel = ""
- tab[i].smt = ""
- tab[i].silb = ""
- tab[i].mat = ""
- }
- i++
- }
- if found == true {
- fmt.Println("Data Berhasil Dihapus")
- }
- fmt.Print("Ketik '0' jika ingin Exit : ")
- fmt.Scan(&x)
- if x == 0 {
- CallClear()
- menuUtama()
- } else {
- menuDelete()
- }
- }
- // Procedure Edit
- func menuEdit(){
- var x int
- var c string
- var found bool
- i = 0
- found = false
- c = "no"
- for c != "yes" {
- fmt.Print("Input ID data yang ingin di Edit : ")
- fmt.Scan(&x)
- for (i < tot) && (found == false) {
- if tab[i].id == x {
- found = true
- fmt.Println(".::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.")
- fmt.Print("(1. Sekolah) (2. Kelas) (3. Pelajaran) (4. Semester) (5. Silabus) (6. Materi) (0. Exit)\n")
- fmt.Print("Pilih yang akan di Edit : ")
- fmt.Scan(&x)
- switch x {
- case 1:
- fmt.Print("Input Sekolah : ")
- fmt.Scan(&tab[i].sekul)
- case 2:
- fmt.Print("Input Kelas : ")
- fmt.Scan(&tab[i].kls)
- case 3:
- fmt.Print("Input Pelajaran : ")
- fmt.Scan(&tab[i].pel)
- case 4:
- fmt.Print("Input Semester : ")
- fmt.Scan(&tab[i].smt)
- case 5:
- fmt.Print("Input Silabus : ")
- fmt.Scan(&tab[i].silb)
- case 6:
- fmt.Print("Input Materi : ")
- fmt.Scan(&tab[i].mat)
- default :
- menuUtama()
- }
- }
- i++
- }
- fmt.Println("Sudah Selesai Edit ")
- fmt.Scan(&c)
- }
- if found == true {
- fmt.Println("Data Berhasil Diedit")
- }
- fmt.Print("Ketik '0' jika ingin Exit : ")
- fmt.Scan(&x)
- if x == 0 {
- CallClear()
- menuUtama()
- } else {
- menuEdit()
- }
- }
- func menuSort(){
- var a,b int
- //var y string
- fmt.Println("Sorting \n1.Ascending \n2.Descending")
- fmt.Scan(&a)
- if a==1{
- fmt.Println("Berdasarkan : \n1.Sekolah \n2.Materi")
- fmt.Scan(&b)
- if b==1{
- //SELECTION SORT ASCENDING
- for i := 1; i < tot; i++ {
- j := i
- for j > 0 && tab[j].sekul < tab[j-1].sekul && tab[j].id!=0 && tab[j-1].id!=0{
- tab[j], tab[j-1] = tab[j-1], tab[j]
- j -= 1
- }
- }
- hasilSort()
- }else if b==2{
- //SELECTION SORT DESCENDING
- for i := 1; i < tot; i++ {
- j := i
- for j > 0 && tab[j].mat <tab[j-1].mat && tab[j].id!=0 && tab[j-1].id!=0{
- tab[j], tab[j-1] = tab[j-1], tab[j]
- j -= 1
- }
- }
- hasilSort()
- }
- }else if a==2{
- fmt.Println("Berdasarkan : \n1.Sekolah \n2.Materi")
- fmt.Scan(&b)
- if b==1{
- //INSERTION SORT DESCENDING
- for j := 0; j < tot; j++ {
- minPos := j
- for i := j + 1; i < tot; i++ {
- if tab[i].sekul > tab[minPos].sekul && tab[i].id!=0 && tab[minPos].id!=0{
- minPos = i
- }
- }
- tab[j], tab[minPos] = tab[minPos], tab[j]
- }
- hasilSort()
- }else if b==2{
- for j := 0; j < tot; j++ {
- minPos := j
- for i := j + 1; i < tot; i++ {
- if tab[i].mat > tab[minPos].mat && tab[i].id!=0 && tab[minPos].id!=0 {
- minPos = i
- }
- }
- tab[j], tab[minPos] = tab[minPos], tab[j]
- }
- hasilSort()
- }
- }
- menuUtama()
- }
- func hasilSort(){
- for i:=0; i<tot; i++{
- fmt.Print(tab[i], " ")
- }
- fmt.Print("\n")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement