Skip to content

Commit

Permalink
feat: menambahkan materi terbaru zig
Browse files Browse the repository at this point in the history
Signed-off-by: slowy07 <slowy.arfy@gmail.com>
  • Loading branch information
slowy07 committed Nov 30, 2023
1 parent 8df8e13 commit 6a1680c
Show file tree
Hide file tree
Showing 4 changed files with 131 additions and 0 deletions.
25 changes: 25 additions & 0 deletions Basic/03_var_vs_const/README.md
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.
20 changes: 20 additions & 0 deletions Basic/03_var_vs_const/varConst.zig
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});
}
69 changes: 69 additions & 0 deletions Basic/04_latihan/README.md
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} );
}
```
17 changes: 17 additions & 0 deletions Basic/04_latihan/exerciseAge.zig
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 });
}

0 comments on commit 6a1680c

Please sign in to comment.