void setup() {
// Fungsi setup() adalah fungsi khusus dalam Arduino yang dijalankan sekali
// saat perangkat pertama kali dihidupkan atau di-reset.
// Digunakan untuk inisialisasi, seperti mengatur mode pin.
pinMode(33, OUTPUT);
// pinMode adalah fungsi untuk mengatur mode operasi sebuah pin.
// Parameter pertama: 33 (nomor pin GPIO yang diatur), bertipe uint8_t (unsigned 8-bit integer).
// Parameter kedua: OUTPUT, konstanta integer yang menunjukkan pin akan digunakan sebagai keluaran.
// OUTPUT memungkinkan pin memberikan sinyal listrik (HIGH = logika tinggi, LOW = logika rendah).
pinMode(32, OUTPUT);
pinMode(25, OUTPUT);
}
void loop() {
// Fungsi loop() dijalankan secara berulang kali selama perangkat aktif.
digitalWrite(33,HIGH);
digitalWrite(32,LOW);
digitalWrite(25,LOW);
delay(500);
digitalWrite(33,LOW);
digitalWrite(32,HIGH);
digitalWrite(25,LOW);
delay(500);
digitalWrite(33,LOW);
digitalWrite(32,LOW);
digitalWrite(25,HIGH);
delay(500);
}
/*
Variabel adalah tempat untuk menyimpan data
Tipe data adalah jenis datanya
Contoh: Gelas air hanya boleh diisi oleh air
- gelasAir = Variabel
- Air adalah tipe datanya
Jenis-jenis tipe data:
Tipe data Logika
- Boolean : bool --> 0 atau 1 / HIGH atau LOW
Tipe data Numerik
- Integer : int --> Bilangan Bulat
- float : float --> Bilangan Bulat
Tipe data Non-Numerik
- char : character --> 1 Karakter (Bisa terdiri dari susunan huruf, angkat, simbol, spasi)
- String : string --> Gabungan dari 2 karakter atau lebih
*/
/*
Variabel dan Tipe Data dalam Pemrograman
**Variabel** adalah tempat untuk menyimpan data yang digunakan dalam program.
**Tipe Data** adalah jenis data yang dapat disimpan dalam suatu variabel,
yang menentukan ukuran memori yang digunakan serta operasi yang dapat dilakukan.
Contoh Analogi:
- Gelas air hanya boleh diisi oleh air.
- `gelasAir` = Variabel
- Air = Tipe Data
**Jenis-Jenis Tipe Data dalam Pemrograman C/C++:**
1. **Tipe Data Logika**
- `bool` (Boolean)
Hanya memiliki dua nilai: `true` (1) atau `false` (0).
Digunakan untuk menyimpan data logika atau hasil perbandingan.
Contoh:
```c
bool isOn = true; // Menyimpan nilai logika
```
2. **Tipe Data Numerik**
a. **Bilangan Bulat (Integer):**
- `int` --> Menyimpan bilangan bulat (positif, negatif, atau nol).
- `short` --> Menyimpan bilangan bulat dalam ukuran lebih kecil.
- `long` --> Menyimpan bilangan bulat dalam ukuran lebih besar.
- `unsigned int` --> Menyimpan bilangan bulat positif saja (tanpa tanda).
Contoh:
```c
int age = 25; // Menyimpan bilangan bulat
unsigned int count = 100; // Menyimpan bilangan bulat positif
```
b. **Bilangan Desimal (Floating Point):**
- `float` --> Menyimpan bilangan desimal (presisi hingga 6-7 digit).
- `double` --> Menyimpan bilangan desimal dengan presisi lebih tinggi (hingga 15-16 digit).
Contoh:
```c
float pi = 3.14; // Menyimpan bilangan desimal
double gravity = 9.81; // Menyimpan bilangan desimal dengan presisi tinggi
```
3. **Tipe Data Non-Numerik**
- `char` (Character)
Menyimpan satu karakter dalam bentuk huruf, angka, simbol, atau spasi.
Ukuran memori: 1 byte.
Contoh:
```c
char grade = 'A'; // Menyimpan satu karakter
```
- `String` (String - hanya tersedia di C++)
Menyimpan kumpulan karakter atau teks.
Contoh:
```c
String name = "John Doe"; // Menyimpan teks
```
- `char[]` (Array of Characters - digunakan di C)
Alternatif untuk menyimpan teks dalam bahasa C.
Contoh:
```c
char name[] = "John Doe"; // Menyimpan teks
```
4. **Tipe Data Void**
- `void`
Tipe data khusus yang menunjukkan "tidak ada nilai".
Biasanya digunakan pada fungsi yang tidak mengembalikan nilai.
Contoh:
```c
void sayHello() {
printf("Hello, World!");
}
```
5. **Tipe Data Khusus (Advanced)**
- `enum` (Enumerasi)
Digunakan untuk mendefinisikan kumpulan nilai konstan yang diberi nama.
Contoh:
```c
enum Days { Monday, Tuesday, Wednesday, Thursday, Friday };
Days today = Monday;
```
- `struct` (Struktur)
Digunakan untuk mengelompokkan beberapa variabel ke dalam satu unit.
Contoh:
```c
struct Student {
int id;
char name[50];
float score;
};
Student s1 = {1, "John Doe", 95.5};
```
- `union` (Unifikasi)
Mirip dengan `struct`, tetapi semua anggotanya berbagi lokasi memori yang sama.
Contoh:
```c
union Data {
int i;
float f;
char str[20];
};
```
6. **Tipe Data Pointer**
- Pointer menyimpan alamat memori dari variabel lain.
Contoh:
```c
int x = 10;
int* p = &x; // Menyimpan alamat variabel x
```
**Catatan Tambahan:**
- Pemilihan tipe data yang tepat sangat penting untuk menghemat memori dan meningkatkan efisiensi.
- Tipe data dapat dikombinasikan dengan modifier seperti `signed`, `unsigned`, `short`, dan `long` untuk menyesuaikan ukuran atau cakupan nilainya.
- Ukuran Memori: Setiap tipe data memiliki ukuran memori yang berbeda, misalnya int biasanya 4 byte, sedangkan float juga 4 byte tetapi menyimpan data desimal. Ini tergantung pada platform atau arsitektur.
- Kompatibilitas: Beberapa tipe data seperti String hanya tersedia di C++.
- Best Practices: Gunakan const atau enum untuk data yang tidak berubah, gunakan struct untuk mengelompokkan data yang terkait.
*/