Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions Chapter01/C/1204076/1204076.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package main

import (
"fmt"
"log"

"gorgonia.org/gorgonia"
)

func main() {
g := gorgonia.NewGraph()

var x, y, z *gorgonia.Node
var err error

// define the expression
x = gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("x"))
y = gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("y"))
if z, err = gorgonia.Add(x, y); err != nil {
log.Fatal(err)
}

// create a VM to run the program on
machine := gorgonia.NewTapeMachine(g)
defer machine.Close()

// set initial values then run
gorgonia.Let(x, 2.0)
gorgonia.Let(y, 2.5)
if err = machine.RunAll(); err != nil {
log.Fatal(err)
}

fmt.Printf("%v", z.Value())
}
1 change: 1 addition & 0 deletions Chapter01/C/1204076/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Kelas C
49 changes: 49 additions & 0 deletions Chapter01/C/1204076/elips.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package main

import (
"fmt"

"gorgonia.org/gorgonia"
)

func main() {
g := gorgonia.NewGraph()

// definisi konstanta-konstanta
a := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("a"))
b := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("b"))

// definisi variabel x dan y
x := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("x"))
y := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("y"))

// persamaan elips
eq1 := gorgonia.Must(gorgonia.Pow(x, gorgonia.NewConstant(2.0)))
eq2 := gorgonia.Must(gorgonia.Pow(y, gorgonia.NewConstant(2.0)))
eq3 := gorgonia.Must(gorgonia.Pow(a, gorgonia.NewConstant(2.0)))
eq4 := gorgonia.Must(gorgonia.Pow(b, gorgonia.NewConstant(2.0)))
eq5 := gorgonia.Must(gorgonia.Div(eq1, eq3))
eq6 := gorgonia.Must(gorgonia.Div(eq2, eq4))
eq7 := gorgonia.Must(gorgonia.Add(eq5, eq6))
eq8 := gorgonia.Must(gorgonia.Sub(gorgonia.NewConstant(1.0), eq7))

// kompilasi dan eksekusi graph
machine := gorgonia.NewTapeMachine(g)
defer machine.Close()

// assign nilai konstanta-konstanta
gorgonia.Let(a, 2.0)
gorgonia.Let(b, 3.0)

// assign nilai variabel x dan y
gorgonia.Let(x, 1.0)
gorgonia.Let(y, 2.0)

// jalankan perhitungan
if err := machine.RunAll(); err != nil {
fmt.Println(err)
}

// tampilkan hasil
fmt.Printf("nilai persamaan elips: %v", eq8.Value())
}
26 changes: 26 additions & 0 deletions Chapter01/C/1204076/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
module bukped.com

go 1.19

require (
github.com/apache/arrow/go/arrow v0.0.0-20210105145422-88aaea5262db // indirect
github.com/awalterschulze/gographviz v0.0.0-20190221210632-1e9ccb565bca // indirect
github.com/chewxy/hm v1.0.0 // indirect
github.com/chewxy/math32 v1.0.7-0.20210223031236-a3549c8cb6a9 // indirect
github.com/gogo/protobuf v1.3.1 // indirect
github.com/golang/protobuf v1.4.3 // indirect
github.com/google/flatbuffers v1.12.0 // indirect
github.com/leesper/go_rng v0.0.0-20171009123644-5344a9259b21 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/xtgo/set v1.0.0 // indirect
go4.org/unsafe/assume-no-moving-gc v0.0.0-20201222180813-1025295fd063 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
gonum.org/v1/gonum v0.8.2 // indirect
google.golang.org/protobuf v1.25.0 // indirect
gorgonia.org/cu v0.9.3 // indirect
gorgonia.org/dawson v1.2.0 // indirect
gorgonia.org/gorgonia v0.9.17 // indirect
gorgonia.org/tensor v0.9.17 // indirect
gorgonia.org/vecf32 v0.9.0 // indirect
gorgonia.org/vecf64 v0.9.0 // indirect
)
201 changes: 201 additions & 0 deletions Chapter01/C/1204076/go.sum

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions Chapter01/C/1204076/parabola.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package main

import (
"fmt"

"gorgonia.org/gorgonia"
)

func main() {
g := gorgonia.NewGraph()

// definisi konstanta-konstanta
a := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("a"))
b := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("b"))
c := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("c"))

// definisi variabel x
x := gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("x"))

// persamaan parabola
y := gorgonia.Must(gorgonia.Add(gorgonia.Must(gorgonia.Mul(a, gorgonia.Must(gorgonia.Pow(x, gorgonia.NewConstant(2.0))))), gorgonia.Must(gorgonia.Add(gorgonia.Must(gorgonia.Mul(b, x)), c))))

// kompilasi dan eksekusi graph
machine := gorgonia.NewTapeMachine(g)
defer machine.Close()

// assign nilai konstanta-konstanta
gorgonia.Let(a, 2.0)
gorgonia.Let(b, 3.0)
gorgonia.Let(c, 4.0)

// assign nilai variabel x
gorgonia.Let(x, 5.0)

// jalankan perhitungan
if err := machine.RunAll(); err != nil {
fmt.Println(err)
}

// tampilkan hasil
fmt.Printf("y = %v", y.Value())
}
35 changes: 35 additions & 0 deletions Chapter01/C/1204076/program1.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package main_1

import (
"fmt"
"log"

"gorgonia.org/gorgonia"
)

func main_1() {
g := gorgonia.NewGraph()

var a, b, c *gorgonia.Node
var err error

// define the expression
a = gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("a"))
b = gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("b"))
if c, err = gorgonia.Add(a, b); err != nil {
log.Fatal(err)
}

// create a VM to run the program on
machine := gorgonia.NewTapeMachine(g)
defer machine.Close()

// set initial values then run
gorgonia.Let(a, 1.0)
gorgonia.Let(b, 2.0)
if err = machine.RunAll(); err != nil {
log.Fatal(err)
}

fmt.Printf("%v", c.Value())
}
48 changes: 48 additions & 0 deletions Chapter01/C/1204076/program2.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package main_2

import (
"fmt"
"io/ioutil"
"log"

G "gorgonia.org/gorgonia"
"gorgonia.org/tensor"
)

func main_2() {
g := G.NewGraph()

var z *G.Node
var err error

// define the expression
//deklarasi W, dengan bobot inisiasi matB
matB := []float64{0.9, 0.7, 0.4, 0.2}
matT := tensor.New(tensor.WithBacking(matB), tensor.WithShape(2, 2))
mat := G.NewMatrix(g, tensor.Float64, G.WithName("W"), G.WithShape(2, 2), G.WithValue(matT))

// deklarasi x dengan inisiasi bobot vecB
vecB := []float64{5, 7}

vecT := tensor.New(tensor.WithBacking(vecB), tensor.WithShape(2))

vec := G.NewVector(g,
tensor.Float64,
G.WithName("x"),
G.WithShape(2),
G.WithValue(vecT),
)
if z, err = G.Mul(mat, vec); err != nil {
log.Fatal(err)
}

// create a VM to run the program on
machine := G.NewTapeMachine(g)
defer machine.Close()

machine.RunAll()
//melihat hasil output
fmt.Println(z.Value().Data())

ioutil.WriteFile("simple_graph.dot", []byte(g.ToDot()), 0644)
}
44 changes: 44 additions & 0 deletions Chapter01/C/1204076/program3.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package main_3

import (
"fmt"
"log"

G "gorgonia.org/gorgonia"
"gorgonia.org/tensor"
)

func main_3() {
g := G.NewGraph()

var a, z *G.Node
var err error

//deklarasi W, dengan bobot inisiasi matB
matB := []float64{0.9, 0.7, 0.4, 0.2}
matT := tensor.New(tensor.WithBacking(matB), tensor.WithShape(2, 2))
mat := G.NewMatrix(g, tensor.Float64, G.WithName("W"), G.WithShape(2, 2), G.WithValue(matT))

// deklarasi x dengan inisiasi bobot vecB
vecB := []float64{5, 7}

vecT := tensor.New(tensor.WithBacking(vecB), tensor.WithShape(2))

vec := G.NewVector(g, tensor.Float64, G.WithName("x"), G.WithShape(2), G.WithValue(vecT))

//tambah deklarasi b
b := G.NewScalar(g, tensor.Float64, G.WithName("b"), G.WithValue(3.0))

if a, err = G.Mul(mat, vec); err != nil {
log.Fatal(err)
}
if z, err = G.Add(a, b); err != nil {
log.Fatal(err)
}

machine := G.NewTapeMachine(g)

machine.RunAll()
//melihat hasil output
fmt.Println(z.Value().Data())
}
Loading