Dasar Golang

Bahasa go menjadi sangat populer di kalangan backend, selain mudahnya mempelejari go juga menjamin performa yang signifikan dibaging bahasa lainnya.

nah untuk pertmakali kita harus menginstall go dan bisa di lihat pada dokumen resminya yaitu golang.org

untuk membuat project pertama kali kita harus mendefinisikan package yang akan kita gunakan yaitu

package main

import (
	"fmt"
)

untuk menjalan kannya kalian bia menggunakan perintah go run namafile.go

untuk pertama kita belajar tipe data yaitu variable, hampir sama dengan bahasa pemrograman lain variable dapat di definisikan sebagai var

var pelajaran = "DART"
func main(){
	fmt.Println("Hallo devindo..."+ pelajaran + " " + pelajaran2);
}

yap untuk menjalankannya kita butuh fungsi main di setiap runnernya. nah enaknya lagi kita bisa mendefinisikan variable ini di dalam satu line contoh

var namadepan, namabelakang = "fiaz","luthfi"

nah di go juga kita bisa menganti var dengan := tapi ini hanya bisa kita gunakan di dalam fungsi contoh

func main(){
    kampus := "Binus"
	fmt.Println("Hallo devindo..."+ kampus);
}

selain variable string seperti di atas ada juga numerik yaitu int atau integer, ada juga float yang bisanya di deteksi langsung ketika penulisannya menggunakan koma koma

func main(){
    kampus := "Binus"
    tanggal := 8
    berat := 55.5
	fmt.Println("Hallo devindo..."+ kampus);
	fmt.Println("Tanggal ", tanggal);
}

Kalo ngeformat integer ke string dan sebaliknya gimana?

import (
	"strconv"
)

func main(){
    tanggal := 8
    total := "10"
	fmt.Println("Tanggal " + strconv.itoa(tanggal));
	fmt.Println("Tanggal ",  strconv.itoa(total));
}

Kita mainan lebih dalam di fungsi ini, untuk pertama mengenai return

contoh

func printNumber() int{
    return 10
}

func main(){
    fmt.Println("Fungsi ini balikannya", printNumber())
}

selanjutnya biar mudah dan rapi kita bikin folder routes di folder lib dan bikin file namanya routing_a.dart

isinkan standar stateless seperti ini

import 'package:flutter/material.dart';

class RouteA extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("Welcome to Route A"),
          ],
        ),
      ),
    );
  }
}

Setelah itu kita balik lagi ke main.dart dan bikin button untuk kita navigasiin ke Route A

FlatButton(
    onPressed: () {},
    child: Text('Bawa Ke Halaman A'),
)

Nah kita sekarang implementasi untuk routingnya, di taruh di onpress, di situ kita bisa menggunakan push maupun pushNamed bedanya kalo push kita harus mendefinisikan routenya, kalo pushNamed tinggal kita panggil nama yang udah di definisiin. oke langsung kita coba aja definisiin routingA ini ke main.dart pada MaterialApp

    return MaterialApp(
      title: 'Flutter Routing',
      routes: {
        'routeA':(context) => RouteA()
      },
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Routing dan Navigasi'),
    );

Implementasinya

RaisedButton(
    onPressed: () {
        Navigator.of(context).pushNamed('routeA');
    },
    child: Text('Bawa Ke Halaman A'),
)

Nah kalo push aja gimana caranya hampir sama, kita contohin seperti di atas, kita bikin dulu file baru dengan nama routing_b.dart dengan isi standar juga dan definisikan button di halaman main.dart

RaisedButton(
    onPressed: () {
        Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => RouteB(),
            ),
        );
    },
    child: Text('Bawa Ke Halaman B'),
)

Nah selanjutnya kita masuk pada pembahasan pop dan popUntil, sederhananya pop adalah balik ke halaman sebelumnya

Ini sangat sederhana, kita masuk ke file routing_a.dart dan bikin standar flat button dan definisikan navigator pop seperti ini

RaisedButton(
    child: Text("Back to home"),
    onPressed: () {
        Navigator.pop(context);
    },
),

nah selanjutnya popUntil kapan digunakan, ketika kita ingin balik ke halaman semula atau halaman yang awal banget contoh kita dari route a ke b, kalo pake pop dari b pasti balik ke a tp kalo pake popUntil kita bisa balik ke halaman awal nah kita contohin aja, tp sebelum itu sekalian kita bikin button di route a biar ga bolak balik

RaisedButton(
    child: Text("route B from A"),
    onPressed: () {
        Navigator.push(
            context,
            MaterialPageRoute(builder: (context) => RouteB()),
        );
    },
)

cara pakainya kita bikin button di halaman b kayak gini

RaisedButton(
    child: Text("Go back all the way to home"),
    onPressed: () {
        Navigator.popUntil(context, ModalRoute.withName(Navigator.defaultRouteName));
    },
)

taraaa udah beres sangat mudah bukan, sourcodenya bisa dilihat di github saya yah, nah sebagai penutup kita definisin juga ketika ga nemuin routingnya caranya

return MaterialApp(
      title: 'Flutter Demo',
      onUnknownRoute: (RouteSettings setting) {
        return new MaterialPageRoute(
                    builder: (context) => NotFoundPage()
        );
      },
....
..

Kalo masih kurang jelas silahkan tonton video youtube saya ya devindo

Semoga bermanfaat

Share on Twitter | Discuss on Twitter