Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: menambahkan materi terbaru zig #5

Merged
merged 1 commit into from
Nov 30, 2023
Merged
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
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 });
}