From 6a1680c35fd50818b558712e2e0b855a3657ce62 Mon Sep 17 00:00:00 2001 From: slowy07 Date: Thu, 30 Nov 2023 17:01:04 +0700 Subject: [PATCH] feat: menambahkan materi terbaru zig Signed-off-by: slowy07 --- Basic/03_var_vs_const/README.md | 25 +++++++++++ Basic/03_var_vs_const/varConst.zig | 20 +++++++++ Basic/04_latihan/README.md | 69 ++++++++++++++++++++++++++++++ Basic/04_latihan/exerciseAge.zig | 17 ++++++++ 4 files changed, 131 insertions(+) create mode 100644 Basic/03_var_vs_const/README.md create mode 100644 Basic/03_var_vs_const/varConst.zig create mode 100644 Basic/04_latihan/README.md create mode 100644 Basic/04_latihan/exerciseAge.zig diff --git a/Basic/03_var_vs_const/README.md b/Basic/03_var_vs_const/README.md new file mode 100644 index 0000000..d3b022d --- /dev/null +++ b/Basic/03_var_vs_const/README.md @@ -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. \ No newline at end of file diff --git a/Basic/03_var_vs_const/varConst.zig b/Basic/03_var_vs_const/varConst.zig new file mode 100644 index 0000000..5b9a8b2 --- /dev/null +++ b/Basic/03_var_vs_const/varConst.zig @@ -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}); +} diff --git a/Basic/04_latihan/README.md b/Basic/04_latihan/README.md new file mode 100644 index 0000000..5d8dc4b --- /dev/null +++ b/Basic/04_latihan/README.md @@ -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} ); +} +``` \ No newline at end of file diff --git a/Basic/04_latihan/exerciseAge.zig b/Basic/04_latihan/exerciseAge.zig new file mode 100644 index 0000000..36ecaa6 --- /dev/null +++ b/Basic/04_latihan/exerciseAge.zig @@ -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 }); +}