|
| 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` | |
0 commit comments