-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: menambahkan materi terbaru zig
Signed-off-by: slowy07 <slowy.arfy@gmail.com>
- Loading branch information
Showing
4 changed files
with
131 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Var VS Const | ||
|
||
``var`` dan ``const`` adalah dua keyword yang digunakan untuk mendeklarasikan variable pada bahasa pemograman zig, ``var`` digunakan untuk mendklarasikan variable yang nilainya dapat dirubah, sedangkan const digunakan untuk mendklarasikan variable yang nilainya yang tidak dapat diubah ubah | ||
|
||
contoh | ||
|
||
```zig | ||
// variable tersebut untuk memanggil lib `standard` dan diharuskan tidak berubah | ||
const std = @import("std"); | ||
pub fn main() void { | ||
var angka: i32 = 30; | ||
const pi: f32 = 3.141592; | ||
std.debug.print("nilai dari variable angka adalah: {:}", .{angka}); | ||
std.debug.print("nilai dari variable const pi adalah: {f}", .{pi}); | ||
} | ||
``` | ||
|
||
contoh dari kode bisa kamu lihat [disini](varConst.zig) | ||
|
||
keyword ``const`` dapat membantu mencegah kesalah program yang disebabkan oleh perubahan nilai variable yang tidak diinginkan. contohnya, jika sebuah variable digunakan untuk menghitung jumlah deting yang telah berlalu, maka variable tersebut seharusnya tidak dapat diubah nilainya, dengan menggunakan keyword `const`, untuk mendeklarasikan variable tersebut, dapat memastikan baha variable tersebut tidak akan berubah dan perhitungan yang berlalu tetap akurat. | ||
|
||
``const`` juga dapat meningkatkan performa program, misalnya jika sebuah variable digunakan sebagai indeks array, maka variable tidak dapat diubah nilainyam dengan menggunakan keyword tersebut, dapat memungkinkan kompilator melakukan optimasi tertentu yang dapat meningkatkan performa program | ||
|
||
sedangkan ``var`` memiliki sintaks yang mudah dipahami serta fleksibel, dan efisien, efisien sehingga kompilator dapat melakukan optimasi tertentu yang dapat meningkatkan performa program. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
// variable tersebut untuk memanggil lib `standard` dan diharuskan tidak berubah | ||
const std = @import("std"); | ||
|
||
pub fn main() void { | ||
// inisialisasi variable dan tipe data | ||
var angka: i32 = 30; | ||
const pi: f64 = 3.14; | ||
|
||
// memanggil variable yang sudah dibuat | ||
std.debug.print("nilai dari variable angka adalah: {} ini merupakan nilai awal\n", .{angka}); | ||
std.debug.print("nilai dari variable const pi adalah: {}\n", .{pi}); | ||
|
||
// mengganti value dari variable angka | ||
angka = 50; | ||
std.debug.print("nilai variable angka yang dirubah adalah: {:}\n", .{angka}); | ||
|
||
// jika kode ini tidak di comment maka akan menyebabkan error | ||
// pi = 22.3; | ||
// std.debug.print("nilai pi yang dirubah adalah {}\n", .{pi}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Latihan | ||
|
||
Di bagian ini kita membuat contoh program sederhana untuk menghitung jarak umur keluarga, dengan menggunakan operator matematika, operator matematika terdapat pada zig antara lain adalah, ``+``, ``-``, ``/`` dan``*``. | ||
|
||
pertama kita inisialisasi terlebih dahulu variable-variable yang dibutuhkan | ||
|
||
```zig | ||
const std = @import("std"); | ||
pub fn main() void { | ||
const nama_kamu = "james"; | ||
const nama_kakak = "anne"; | ||
const nama_adik = "jonas"; | ||
var umur_kamu: i32 = 18; | ||
var umur_kakak: i32 = 24; | ||
var umur_adik: i32 = 12; | ||
} | ||
``` | ||
|
||
setelah dibuat maka kita lakukan operasi pengurangan untuk mengetahui jarak umur | ||
|
||
```zig | ||
var jarak_umur_kamu_kakak = umur_kakak - umur_kamu; | ||
var jarak_umur_kamu_adik = umur_kamu - umur_adik; | ||
``` | ||
|
||
```zig | ||
const std = @import("std"); | ||
pub fn main() void { | ||
const nama_kamu = "james"; | ||
const nama_kakak = "anne"; | ||
const nama_adik = "jonas"; | ||
var umur_kamu: i32 = 18; | ||
var umur_kakak: i32 = 24; | ||
var umur_adik: i32 = 12; | ||
var jarak_umur_kamu_kakak = umur_kakak - umur_kamu; | ||
var jarak_umur_kamu_adik = umur_kamu - umur_adik; | ||
} | ||
``` | ||
|
||
kemudian lakukan tampilkan hasil | ||
```zig | ||
std.debug.print("james, jarak kamu dengan kakak adalah {} tahun\n", .{jarak_umur_kamu_kakak}); | ||
std.debug.print("sedangkan jarak umur kamu dengan adik kamu adalah {} tahun\n", .{jarak_umur_kamu_adik} ); | ||
``` | ||
|
||
```zig | ||
const std = @import("std"); | ||
pub fn main() void { | ||
const nama_kamu = "james"; | ||
const nama_kakak = "anne"; | ||
const nama_adik = "jonas"; | ||
var umur_kamu: i32 = 18; | ||
var umur_kakak: i32 = 24; | ||
var umur_adik: i32 = 12; | ||
var jarak_umur_kamu_kakak = umur_kakak - umur_kamu; | ||
var jarak_umur_kamu_adik = umur_kamu - umur_adik; | ||
std.debug.print("james, jarak kamu dengan kakak adalah {} tahun\n", .{jarak_umur_kamu_kakak}); | ||
std.debug.print("sedangkan jarak umur kamu dengan adik kamu adalah {} tahun\n", .{jarak_umur_kamu_adik} ); | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
const std = @import("std"); | ||
|
||
pub fn main() void { | ||
const nama_kamu = "james"; | ||
const nama_kakak = "anne"; | ||
const nama_adik = "jonas"; | ||
|
||
var umur_kamu: i32 = 18; | ||
var umur_kakak: i32 = 24; | ||
var umur_adik: i32 = 13; | ||
|
||
var jarak_umur_kamu_kakak = umur_kakak - umur_kamu; | ||
var jarak_umur_kamu_adik = umur_kamu - umur_adik; | ||
|
||
std.debug.print("{s}, jarak kamu dengan {s} adalah {} tahun\n", .{ nama_kamu, nama_kakak, jarak_umur_kamu_kakak }); | ||
std.debug.print("sedangkan jarak umur kamu dengan {s} kamu adalah {} tahun\n", .{ nama_adik, jarak_umur_kamu_adik }); | ||
} |