Skip to content

Commit df5375e

Browse files
authored
chore: menambahkan tipe data byte (#48)
1 parent 5717018 commit df5375e

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Byte Golang
2+
3+
Dalam bahasa Go, **`byte`** adalah tipe data yang sangat penting untuk menangani **data biner** dan **karakter berbasis ASCII**. `byte` merupakan **alias dari `uint8`**, yang artinya ia adalah **bilangan bulat 8-bit tanpa tanda**, dengan nilai dari **0 hingga 255**.
4+
`byte` biasa digunakan dalam pengolahan teks ASCII, buffer data, komunikasi jaringan, encoding, serta pembacaan/penulisan file.
5+
6+
---
7+
8+
## **Byte Literal (Karakter ASCII)**
9+
10+
```go
11+
package main
12+
13+
import (
14+
"fmt"
15+
"reflect"
16+
)
17+
18+
func main() {
19+
var b byte = 'A' // Karakter ASCII untuk A = 65
20+
21+
// menampilkan byte dan tipe nya
22+
fmt.Printf("byte: %c; nilai: %d; tipe: %s\n", b, b, reflect.TypeOf(b))
23+
}
24+
```
25+
26+
## **Byte Literal**
27+
28+
- Literal `byte` dapat didefinisikan dari:
29+
- **Angka**: `var b byte = 65`
30+
- **Karakter ASCII**: `var b byte = 'A'`
31+
- Tipe data byte **tidak bisa menggunakan Unicode kompleks atau emoji** seperti `'你'` atau `'😊'` karena nilainya di luar jangkauan `byte`.
32+
33+
---
34+
35+
## **Byte dalam Slice (`[]byte`)**
36+
37+
Go menggunakan slice of bytes (`[]byte`) untuk representasi data teks dan file:
38+
39+
```go
40+
package main
41+
42+
import "fmt"
43+
44+
func main() {
45+
data := []byte("Hello") // Konversi string ke byte slice
46+
fmt.Println(data) // Output: [72 101 108 108 111]
47+
}
48+
```
49+
50+
---
51+
52+
## **Byte vs Rune**
53+
54+
| Aspek | `byte` (`uint8`) | `rune` (`int32`) |
55+
| ------------- | --------------------------- | ------------------------------- |
56+
| Ukuran | 8-bit | 32-bit |
57+
| Rentang Nilai | 0 – 255 | -2.1 miliar – +2.1 miliar |
58+
| Representasi | Karakter ASCII / Data biner | Karakter Unicode |
59+
| Kegunaan Umum | File, jaringan, ASCII | Teks multibahasa, simbol, emoji |
60+
| Slice Umum | `[]byte` | `[]rune` |
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"reflect"
6+
)
7+
8+
func main() {
9+
// membuat byte
10+
var b byte
11+
b = 200
12+
fmt.Printf("byte: %c; nilai: %d; tipe: %s\n", b, b, reflect.TypeOf(b))
13+
var b2 byte
14+
b2 = 'C'
15+
fmt.Printf("byte: %c; nilai: %d; tipe: %s\n", b2, b2, reflect.TypeOf(b2))
16+
17+
// membuat bytes (sekumpulan data byte)
18+
var bs []byte
19+
bs = []byte{72, 101, 108, 108, 111}
20+
fmt.Println("bytes", reflect.TypeOf(bs))
21+
fmt.Println("bytes menjadi string ->", string(bs))
22+
}

0 commit comments

Comments
 (0)