Skip to content

Commit

Permalink
chore: menambahkan materi tipe data (#2)
Browse files Browse the repository at this point in the history
* chore: update tutorial zig

- menambah tutorial tentang tipe data
- memperbaiki nama hello_world hello_world

Signed-off-by: slowy07 <slowy.arfy@gmail.com>

* fix: menghapus

Signed-off-by: slowy07 <slowy.arfy@gmail.com>

---------

Signed-off-by: slowy07 <slowy.arfy@gmail.com>
  • Loading branch information
slowy07 authored Nov 28, 2023
1 parent 10c0e2f commit 108f780
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 1 deletion.
File renamed without changes.
77 changes: 77 additions & 0 deletions Basic/02_tipe_data/README.md
Original file line number Diff line number Diff line change
@@ -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
8 changes: 8 additions & 0 deletions Basic/02_tipe_data/tipeDataBool.zig
Original file line number Diff line number Diff line change
@@ -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});
}
10 changes: 10 additions & 0 deletions Basic/02_tipe_data/tipeDataChar.zig
Original file line number Diff line number Diff line change
@@ -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});
}
17 changes: 17 additions & 0 deletions Basic/02_tipe_data/tipeDataFloat.zig
Original file line number Diff line number Diff line change
@@ -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});
}
28 changes: 28 additions & 0 deletions Basic/02_tipe_data/tipeDataInteger.zig
Original file line number Diff line number Diff line change
@@ -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});
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
WPU Community is the fastest growing software developer forum initiated by <a href="https://www.youtube.com/c/WebProgrammingUNPAS"> Mr. Sandhika Galih</a> and <a href="https://github.com/faqihza"> Mr. Faqihza Mukhlish <br>
</p>

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) 🌟
Expand Down

0 comments on commit 108f780

Please sign in to comment.