Setiap program komputer — dari yang sederhana hingga yang kompleks — bekerja dengan cara yang sama: menerima data, memprosesnya, dan menghasilkan keluaran. Kenali fondasi ini sebelum kita mulai memprogram Arduino.
Di Pertemuan 2, kita belajar membuat algoritma — serangkaian langkah terstruktur untuk memecahkan masalah. Sekarang, bayangkan jika ada seseorang yang bisa mengeksekusi algoritma kita dengan kecepatan jutaan instruksi per detik, tanpa bosan, tanpa salah hitung, tanpa perlu istirahat. Itulah yang bisa dilakukan komputer — termasuk Arduino.
Tapi komputer tidak bisa membaca pseudocode atau flowchart kita. Komputer hanya mengerti bahasa yang sangat spesifik: bahasa pemrograman. Dan cara kita berkomunikasi dengan komputer menggunakan bahasa tersebut disebut program.
Program komputer adalah kumpulan instruksi yang ditulis dalam bahasa pemrograman yang dapat dipahami dan dieksekusi oleh komputer untuk menyelesaikan tugas tertentu.
Analogi yang tepat: Jika algoritma adalah naskah teater, maka program komputer adalah pertunjukan teatrnya. Naskah (algoritma) tidak bergerak sendiri — dibutuhkan para aktor (komputer) dan panggung (hardware) untuk mempertunjukkannya.
Setiap program — dari aplikasi ChatGPT yang kompleks hingga kode Arduino sederhana yang menyalakan LED — bekerja dengan pola yang sama:
Program tidak bisa bekerja tanpa data. Data adalah informasi mentah yang diolah oleh program — angka suhu dari sensor, status tombol yang ditekan, atau nama pengguna yang diketik. Tanpa data, program tidak punya bahan untuk diproses.
Bayangkan sebuah pabrik roti. Bahan baku (tepung, telur, gula) adalah data. Mesin pembuat roti adalah program. Roti yang dihasilkan adalah output. Jika tidak ada tepung, tidak ada roti — sama seperti tanpa data, tidak ada hasil program.
Pertanyaannya adalah: di mana data disimpan saat program sedang berjalan?Jawabannya adalah di memori (RAM) komputer atau mikrokontroler. Dan cara kita "memesan tempat" di memori untuk menyimpan data adalah dengan menggunakan variabel.
Variabel adalah salah satu konsep paling mendasar dalam pemrograman. Hampir setiap baris kode yang bermakna akan menggunakan variabel.
Analogi terbaik: bayangkan kamu sedang merapikan gudang. Kamu memiliki banyak kotak penyimpanan. Agar tidak bingung isi masing-masing kotak, kamu menempelkan labeldi setiap kotaknya: "Baju Musim Dingin", "Peralatan Masak", "Mainan Masa Kecil".
Variabel adalah kotak berlabel itu. Label-nya adalah nama variabel. Isi kotaknya adalah nilai data yang disimpan. Dan rak gudang-nya adalah memoriArduino.
Label unik yang kita buat untuk mengidentifikasi kotak tersebut
suhu, lampuOn, nilaiSensorJenis isi kotak — apakah bilangan bulat, desimal, teks, atau benar/salah
int, float, String, boolData aktual yang disimpan di dalam kotak — bisa berubah sewaktu-waktu
36, true, 'Budi', 3.14Variabel adalah komunikasi — antara kamu dan komputer, dan antara kamu saat ini dengan kamu 6 bulan lagi yang harus membaca ulang kode ini. Nama variabel yang baik membuat kode menjadi "cerita" yang mudah dibaca.
Nama variabel harus menjelaskan isinya dengan jelas. suhuRuangan jauh lebih baik daripada sr atau x.
Mulai dengan huruf kecil, setiap kata baru dimulai dengan huruf kapital. Contoh: nilaiSensor, lampuMenyala, hitungDetik.
Arduino tidak mengizinkan nama variabel yang diawali angka. 2sensor ❌, sensor2 ✅.
Gunakan underscore jika perlu pemisah. suhu_luar ✅, suhu luar ❌, suhu-luar ❌.
suhu, Suhu, dan SUHU adalah tiga variabel yang berbeda! Konsisten dalam penggunaan huruf.
Arduino menggunakan bahasa pemrograman yang berbasis C++. Tidak seperti Python yang bisa menebak tipe data secara otomatis, C++ (dan Arduino) membutuhkan kita untuk mendeklarasikan tipe data secara eksplisit saat membuat variabel.
Ini seperti saat kamu memesan kotak penyimpanan — kamu harus memberi tahu penjual: apakah kamu butuh kotak kecil untuk baju, kotak besar untuk furnitur, atau laci khusus untuk dokumen penting. Ukuran kotak yang tepat menghemat ruang dan mencegah kecelakaan.
| Tipe Data | Ukuran | Rentang Nilai | Digunakan untuk | Contoh |
|---|---|---|---|---|
int | 2 byte | -32,768 hingga 32,767 | Bilangan bulat umum | int suhu = 28; |
long | 4 byte | ±2,1 Miliar | Bilangan bulat besar (waktu millis) | long waktu = 123456789; |
float | 4 byte | ±3.4 × 10³⁸ | Bilangan desimal (sensor analog) | float voltase = 3.14; |
bool | 1 byte | true / false | Status on/off, kondisi | bool lampuOn = true; |
char | 1 byte | -128 hingga 127 | Satu karakter teks | char huruf = 'A'; |
String | Dinamis | Teks apapun | Kalimat, nama, teks tampilan | String nama = "Arduino"; |
float untuk semua angka terlihat aman, tapi Arduino Uno hanya punya 2KB RAM. Jika kamu menyimpan 100 variabel float (masing-masing 4 byte), kamu sudah menghabiskan 400 byte dari 2048 byte RAM yang tersedia. Pilih int untuk bilangan bulat dan float hanya saat memang butuh desimal.Saatnya kita menulis kode Arduino yang sungguhan — pertama kalinya! Kita akan membuat program sederhana yang mendeklarasikan beberapa variabel dan menampilkan nilainya ke Serial Monitor (konsol teks Arduino IDE).
Jangan khawatir jika ada bagian yang belum kamu pahami sepenuhnya — misalnya setup() dan loop(). Kita akan mempelajarinya secara mendalam di Pertemuan 10. Untuk sekarang, fokus pada bagian deklarasi dan penggunaan variabel.
Solusi:Pastikan kamu mengetik Serial dengan huruf S kapital. C++ bersifat case-sensitive — serial ≠ Serial.
Solusi:Cek baud rate di pojok kanan bawah Serial Monitor — harus sama dengan angka di Serial.begin(9600). Pastikan pilih 9600 baud.
Solusi:Kamu mungkin menulis char kelasKode = "A" (tanda kutip ganda). Gunakan tanda kutip TUNGGAL untuk char: char kelasKode = 'A'
Solusi:Pastikan kamu mendeklarasikannya sebagai float, bukan int. Juga pastikan nilai yang dimasukkan menggunakan titik desimal: 87.5 bukan 87.
Di akhir Semester 1, kita akan membangun Smart Gate System (sistem palang pintu otomatis). Berlatih merancang variabelnya mulai dari sekarang!
statusPintutipeData namaVariabel = nilaiAwal;Bonus: Jelaskan mengapa kamu memilih tipe data tertentu untuk setiap variabel. Apa konsekuensinya jika kamu memilih tipe yang salah?
Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.
Apa yang paling mengejutkan atau menarik hari ini?
Apa yang paling mengejutkan tentang bagaimana komputer menyimpan data? Apakah analoginya (kotak berlabel di gudang) benar-benar membantu kamu memahaminya?
Apa yang masih membingungkan atau ingin kamu pahami lebih dalam?
Bagian mana dari konsep variabel yang masih membingungkan — apakah perbedaan tipe data, aturan penamaan, atau cara menulis deklarasi dalam kode Arduino?
Apa yang ingin kamu coba atau pelajari minggu depan?
Jika kamu harus menjelaskan konsep variabel kepada teman yang belum pernah belajar pemrograman, analogi apa yang akan kamu gunakan? Mengapa kamu memilih analogi tersebut?
Refleksi tidak dinilai — ini adalah ruang jujurmu untuk berpikir.