diff --git a/Basic/01_introduction/hello_world.zig b/Basic/01_introduction/helloWorld.zig similarity index 100% rename from Basic/01_introduction/hello_world.zig rename to Basic/01_introduction/helloWorld.zig diff --git a/Basic/02_tipe_data/README.md b/Basic/02_tipe_data/README.md new file mode 100644 index 0000000..96aab76 --- /dev/null +++ b/Basic/02_tipe_data/README.md @@ -0,0 +1,77 @@ +# Pendahuluan + +Tipe data adalah klasifikasi data. Tipe data menentukan jenis sebuah variabel. Variabel sendiri adalah sebuah wadah untuk menyimpan data. pada zig terdapat banyak tipe data dan ukuran dari sebuah tipe data itu sendiri, antara lain: + +- **integer** + ini adalah tipe data yang digunakan untuk menyimpan bilangan bulat, baik yang positif maupun negatif, tipe data ini tidak memiliki komponen pecahan, dalam bahasa pemograman zig, tipe data integer direpresentasikan dengan huruf `i` diikuti dengan ukurannya, misalnya tipe data dengan ukuran 32 bit bisa direpresentasikan dengan `i32` (rentang nilai dari `i8` sampai i128), contoh + + ```zig + const std = @import("std"); + + pub fn main() void { + // tipe data integer 8 bit + const angka8: i8 = 12; + // memanggil variable `angka8` + std.debug.print("angka dari variable `angka8` dengan rentang 8 bit: {:} ", .{angka8}); + } + ``` + contoh bisa dilihat [disini](tipeDataInteger.zig) untuk panjang dari tipe data integer. + + zig juga memberikan model tipe data lainnya yaitu unsigned yang direpresentasikan dengan `u`, tipe data ini adalah tipe data integer yang hanya menyimpan nilai positif, tipe data ini tidak akan menyimpan nilai negatif (`nilai kurang dari 0`), rentang nilai yang dapat disimpan oleh tiep adata unsigned ini juga bergantung pada ukurannya. contoh + + ```zig + const std = @import("std"); + + pub fn main() void { + // tipe data integer 8 bit + const angkaU8: u8 = 30; + // memanggil variable `angkaU8` + std.debug.print("angka dari variable `angkaU8` dengan rentang 8 bit: {:} ", .{angkaU8}); + } + ``` + contoh bisa dilihat [disini](tipeDataInteger.zig) untuk panjang tipe data unsigned integer + +- **bool** + bool adalah tipe data hanya dapat menyimpan dua nilai, yaitu ``true`` dan ``false``, tipe data ini juga sering digunakan untuk menyimpan nilai logika, seperti benar atau salah, aktif atau tidak aktif, contoh + + ```zig + const std = @import("std"); + + pub fn main() void { + // tipe data bool + const hujan: bool = false; + // memanggil variable `hujan` + std.debug.print("apakah hujan harini ini?, jawabannya adalah {:} ", .{hujan}); + } + ``` + contoh bisa dilihat [disini](tipeDataBool.zig) untuk mengetahui contoh kode dari tipe data bool + +- **float** + float adalah tipe data yang digunakan untuk menyimpan bilangan pecahan, tipe data ini memiliki model pecehan yang dapat menyimpan nilai yang sangat kecil atau sangat besar, rentang nilai yang dapat disimpan float bergantung pada ukurannya, dalam zig, tipe data float direpresentasikan dengan `f` diikuti dengan ukurannya, dimulai pada `f32` hingga `f128` (terdapat juga `f80` yaitu ukuran 80 bit untuk standar presisi nilai float), contoh + + ```zig + const std = @import("std"); + + pub fn main() void { + // contoh nilai float 32 bit + const nilai_ipk: f32 = 123.0E+77; + // memanggil variable `nilai_ipk` + std.debug.print("nilai ipk dari pace adalah {:} ", .{nilai_ipk}); + } + ``` + contoh bisa dilihat [disini](tipeDataFloat.zig) untuk mengetahui contoh dari tipe data float + +- **char** + `char` adalah tipe data yang digunakan untuk menyimpan karakter tunggal, karakter bisa berupa huruf, angka, simbol, tanda baca, spasi. tipe data `char` direpresentasikan dengan kata kunci `c_char` + + ```zig + const std = @import("std"); + + pub fn main() void { + // membuat tipe data char + const huruf = 'B'; + std.debug.print("setelah huruf A maka keluar huruf: {c}\n", .{huruf}); + } + ``` + contoh bisa dilihat [disini](tipeDataChar.zig) untuk mengetahui contoh dari tipe data char + diff --git a/Basic/02_tipe_data/tipeDataBool.zig b/Basic/02_tipe_data/tipeDataBool.zig new file mode 100644 index 0000000..0d35200 --- /dev/null +++ b/Basic/02_tipe_data/tipeDataBool.zig @@ -0,0 +1,8 @@ +const std = @import("std"); + +pub fn main() void { + // tipe data integer 8 bit + const hujan: bool = true; + // memanggil variable `angka8` + std.debug.print("apakah hujan hari ini?, jawabannya adalah: {:}\n", .{hujan}); +} diff --git a/Basic/02_tipe_data/tipeDataChar.zig b/Basic/02_tipe_data/tipeDataChar.zig new file mode 100644 index 0000000..67c7405 --- /dev/null +++ b/Basic/02_tipe_data/tipeDataChar.zig @@ -0,0 +1,10 @@ +const std = @import("std"); + +pub fn main() void { + // membuat tipe data char + const huruf = 'B'; + const nilai_heksadesimal = '\x65'; + // memanggil variable + std.debug.print("setelah huruf A maka keluar huruf: {c}\n", .{huruf}); + std.debug.print("nilai heksadesimal dari 0x65 adalah {c}\n", .{nilai_heksadesimal}); +} diff --git a/Basic/02_tipe_data/tipeDataFloat.zig b/Basic/02_tipe_data/tipeDataFloat.zig new file mode 100644 index 0000000..fab285f --- /dev/null +++ b/Basic/02_tipe_data/tipeDataFloat.zig @@ -0,0 +1,17 @@ +const std = @import("std"); + +pub fn main() void { + // membuat nilai flaot dengan panjang 16 bit hingga 128 bit + const nilai_ipk: f16 = 132.0E+11; + const nilai_pelajaran: f32 = 332.2731233; + const nilai_sosial: f64 = 452.92472781; + const nilai_olahraga: f80 = 763.23344; + const nilai_pi: f128 = 3.14159265358979323846; + + // memanggil variabel + std.debug.print("nilai ipk pace adalah: {:}\n", .{nilai_ipk}); + std.debug.print("nilai pelajaran pace adalah: {:}\n", .{nilai_pelajaran}); + std.debug.print("nilai pelajaran sosial pace adalah: {:}\n", .{nilai_sosial}); + std.debug.print("nilai pelajaran olahraga pace: {:}\n", .{nilai_olahraga}); + std.debug.print("nilai pi adalah: {:}\n", .{nilai_pi}); +} diff --git a/Basic/02_tipe_data/tipeDataInteger.zig b/Basic/02_tipe_data/tipeDataInteger.zig new file mode 100644 index 0000000..a12ba8e --- /dev/null +++ b/Basic/02_tipe_data/tipeDataInteger.zig @@ -0,0 +1,28 @@ +const std = @import("std"); + +pub fn main() void { + // tipe data integer 8 bit hingga 128 bit + var angka8: i8 = 12; + var angka16: i16 = 120; + var angka32: i32 = 12000; + var angka64: i64 = 1122000; + var angka128: i128 = 1172636251523211232; + + std.debug.print("angka dari variable `angka8` dengan rentang 8 bit: {:}\n", .{angka8}); + std.debug.print("angka dari variable `angka16` dengan rentang 16 bit: {:}\n", .{angka16}); + std.debug.print("angka dari variable `angka32` dengan rentang 32 bit: {:}\n", .{angka32}); + std.debug.print("angka dari variable `angka64` dengan rentang 64 bit: {:}\n", .{angka64}); + std.debug.print("angka dari variable `angka128` dengan rentang 128 bit: {:}\n\n", .{angka128}); + + // tipe data unsigned dari 8 bit hingga 128 bit + var angkaU8: u8 = 20; + var angkaU16: u16 = 500; + var angkaU32: u32 = 1726417242; + var angkaU64: u64 = 164512859282755234; + var angkaU128: u128 = 928756266578699928456116; + std.debug.print("angka dari variable `angkaU8` dengan rentang 8 bit: {:}\n", .{angkaU8}); + std.debug.print("angka dari variable `angkaU16` dengan rentang 16 bit: {:}\n", .{angkaU16}); + std.debug.print("angka dari variable `angkaU32` dengan rentang 32 bit: {:}\n", .{angkaU32}); + std.debug.print("angka dari variable `angkaU64` dengan rentang 64 bit: {:}\n", .{angkaU64}); + std.debug.print("angka dari variable `angkaU128` dengan rentang 128 bit: {:}\n", .{angkaU128}); +} diff --git a/README.md b/README.md index 2dfee42..b23fa6c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ WPU Community is the fastest growing software developer forum initiated by Mr. Sandhika Galih and Mr. Faqihza Mukhlish

-Repositori ini berisi kumpulan berbagai macam _source code_ strutur data, algorithm, analisis matematika, serta tutorial yang diimplementasikan dengan menggunakan bahasa pemograman Zig +Repositori ini berisi kumpulan berbagai macam _source code_ struktur data, algorithm, analisis matematika, serta tutorial yang diimplementasikan dengan menggunakan bahasa pemograman Zig ### Baru Belajar? Mulai dari [sini](Basic) 🌟