Simple Authentication Menggunakan GO dan Mysql Part #1

Rizal Yogi Pratama
UNIKOM Codelabs
Published in
3 min readJan 3, 2018

Yo what’s up guys? masih semangatkah buat ngoding ?

Kali ini saya akan membagikan sebuah tutorial mengenai Authentication/Login sederhana menggunakan Golang dan Mysql.

Sekilas tentang Golang, Golang merupakan sebuah bahasa pemrograman dengan bahasa dasarnya yaitu bahasa C, Golang Sendiri dibuat oleh perusahaan raksasa yaitu Google.

Oke Langsung Cekidot, btw jangan lupa install Go terlebih dahulu jika kalian belum install :)

Seperti judul artikel kali ini, pertama kalian buat sebuah Database dengan nama go_db dan membuat table bernama users atau kalian bisa melakukan copy-paste dari kode di bawah ini

CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`first_name` varchar(200) NOT NULL,
`last_name` varchar(200) NOT NULL,
`password` varchar(120) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Langkah selanjutnya yaitu langsung menuju ke project sederhana yang akan kita buat dan ikuti langkah-langkah di bawah ini ..

  1. Buat struktur project sesuai dengan gambar di bawah ini
Struktur Project

2. Buat halaman register pada file register.html

3. Install library terlebih dahulu dan jalan perintah di bawah ini mengguna cmd satu per satu

go get database/sql

go get golang.org/x/crypto/bcrypt

go get github.com/go-sql-driver/mysql
go get github.com/kataras/go-sessions

4. Sekarang kalian buka file main.go dan kita akan melakukan setting up project

Penjelasan kode di atas yaitu , kita melakukan import library yang dibutuhkan terlebih dahulu, kemudian kita melakukan inisialisai variabel untuk fungsi database dan error yang akan kita gunakan nanti.

Kemudian dilanjutkan dengan membuat model yang berisi ID, Username, FirstName, LastName dan Password.

Terakhir kita membuat fungsi connect_db dimana fumgsi ini digunakan untuk menghubungkan project kita ke mysql dengan username “root” pada alamat local yaitu 127.0.0.1 dan menggunkan database go_db dan dilanjutkan dengan error handle seperti yang tertera pada kode di atas

5. Membuat routes, fungsi utama

Kode diatas merupakan lanjutan dari kode sebelumnya, dimana ada fungsi routes dan fungsi main. Pada fungsi routes http.handleFunc digunakan untuk membuat alamat url “/register” dengan memanggil fungsi register yang akan kita buat nanti.

fungsi main merupakan fungsi utama yang akan dijalankan saat program dijalankan dimana fungsi tersebut berisi connect_db, routes dan listen port dari program yang akan dijalankan pada port 8000.

6. Membuat Fungsi QueryUser

Fungsi diatas akan kita gunakan untuk mengambil data pengguna berdasarkan username.

7. Membuat fungsi register

Kode di atas adalah lanjutan dari kode sebelumnya, penjelasan kodenya yaitu ,

Dimulai dari kondisi r.Method != “POST” , dimana kode ini digunakan untuk melakukan validasi apabila method yang digunakan bukan POST maka akan menampilkan halaman registrasi yang ada pada folder views/register.html sedangkan jika method post maka data username, first_nama, last_name dan password dari form input akan di ambil dan disimpan pada suatu variabel.

Kemudian kita mengecek data berdasarkan username yang dikirimkan melalui form, apakah data tersebut ada atau tidak, jika tidak ada maka akan lanjut ke proses penyimpanan data ke database. Caranya sama seperti mysql pada umumnya hanya bedanya setiap value akan diganti dengan tanda tanya (?) dan tanda (?) akan diganti ketika perintah tersebut dieksekusi dimana value-nya akan diganti dengan varibel yang ada tanda (&) dimana urutan datanya tergantung dengan posisi (?) yang telah ditulis sebelumnya.

Setelah ekeskusi selesai maka akan terdirek secara otomatis ke halaman login.

8. Jalankan Program

Setelah kalian menulis semua kode diatas sekrang saatnya menguji apakah program yang telah dibuat berjalan dengan baik atau tidak.

Yaps, langsung saja jalankan perintah di bawah ini pada cmd di direktori project.

go run main.go

maka akan muncul console log seperti

Kemudian langsung masuk ke halaman localhost:8000/register

Jika berhasil maka akan muncul tampilan seperti ini

Tampilan Register

Setelah itu kalian coba apakah berhasil masuk ke database atau tidak :)

untuk login ada di part 2 ya :D

Terima Kasih

--

--

Rizal Yogi Pratama
UNIKOM Codelabs

Backend Developer & Fulltime Superheroes. Living the day by Writing Code, Photography, Chocolates, and Fighting the Super Villain.