Anda di halaman 1dari 8

PENJELASAN PROGRAM SOAL KEDUA

const int nilBit[] = {0, 1, 2, 3, 4, 5, 6, 7}; // pin led


const int bitCount = sizeof(nilBit) / sizeof(int); // jumlah bit
int Inp = A0;
int dtInp = 0;
void setup() {
for (int i = 0; i < bitCount; i++) { // loop untuk setiap led
pinMode(nilBit[i], OUTPUT); // konfigurasi pin sebagai output
}
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < bitCount; i++) { // loop untuk setiap bit
digitalWrite(nilBit[i], HIGH); // hidupkan pin logika
dtInp = analogRead(Inp);
dtInp = map(dtInp, 0, 1018, 0, 256);
Serial.println(dtInp);
delay (1000);
}

}
const int nilBit[] = {0, 1, 2, 3, 4, 5, 6, 7}; // pin led
const int bitCount = sizeof(nilBit) / sizeof(int); //
jumlah bit

Program ini adalah deklarasi dua variabel konstan bertipe integer. Variabel pertama

bernama nilBit berisi larik (array) dengan 8 elemen bertipe integer yang nilainya adalah 0, 1,

2, 3, 4, 5, 6, dan 7.

Variabel kedua bernama bitCount adalah variabel konstan yang nilainya dihitung

berdasarkan jumlah elemen pada larik nilBit. Nilai variabel bitCount akan dihasilkan dengan

membagi ukuran total larik nilBit dengan ukuran (jumlah byte) dari tipe data integer. Dalam

hal ini, karena tipe data integer membutuhkan 2 byte atau 16 bit, dan jumlah elemen pada nilBit

adalah 8, maka bitCount akan memiliki nilai 4.

Dalam konteks tertentu, variabel nilBit dan bitCount mungkin digunakan untuk mengontrol

LED yang terhubung ke pin-pin tertentu pada mikrokontroler. Nilai pada nilBit dapat

digunakan sebagai nomor pin output untuk mengontrol LED, sedangkan bitCount dapat

digunakan sebagai jumlah LED yang perlu diatur. Namun, tanpa melihat bagian program

lainnya, tidak dapat dipastikan penggunaan yang tepat dari kedua variabel konstan ini.
int Inp = A0;
int dtInp = 0;
void setup() {

Program tersebut merupakan kode untuk platform mikrokontroler Arduino, dimana terdapat

fungsi-fungsi untuk menginisialisasi dan mempersiapkan board sebelum program berjalan

secara utuh.Pada baris pertama, terdapat deklarasi variabel Inp yang diinisialisasi dengan nilai

A0. Variabel Inp akan digunakan untuk menentukan pin input yang akan digunakan pada board

Arduino.

Selanjutnya pada baris kedua, variabel dtInp diinisialisasi dengan nilai 0. Variabel ini akan

digunakan untuk menyimpan nilai bacaan analog dari pin input yang telah

ditentukan.Kemudian pada baris-baris selanjutnya, terdapat fungsi setup() yang digunakan

untuk melakukan inisialisasi terhadap board Arduino sebelum program utama dijalankan.

Fungsi setup() merupakan fungsi bawaan yang dimiliki oleh platform mikrokontroler

Arduino dan akan dijalankan secara otomatis pada saat board Arduino dinyalakan atau di-reset.

Pada program ini, fungsi setup() kosong tanpa adanya instruksi apapun. Artinya, tidak ada

kode program yang dijalankan di dalam fungsi setup(). Namun, fungsi setup() harus selalu ada

pada setiap program Arduino sebagai bagian dari aturan dasar yang harus dipatuhi.
for (int i = 0; i < bitCount; i++) { // loop untuk setiap led
pinMode(nilBit[i], OUTPUT); // konfigurasi pin sebagai output
}

Program tersebut merupakan kode untuk platform mikrokontroler Arduino, dimana terdapat

fungsi-fungsi untuk menginisialisasi dan mempersiapkan board sebelum program berjalan

secara utuh.

Pada program tersebut, terdapat sebuah perulangan for yang digunakan untuk mengatur pin

LED. Perulangan tersebut berjalan sebanyak bitCount, dimana nilai bitCount diinisialisasi

dengan nilai jumlah elemen dalam array nilBit dibagi dengan ukuran tipe data int.

Dalam setiap iterasi perulangan, dilakukan konfigurasi pin sebagai output dengan

menggunakan fungsi pinMode(nilBit[i], OUTPUT). Fungsi pinMode digunakan untuk

mengatur mode sebuah pin pada board Arduino, apakah digunakan sebagai input atau output.

Pada program ini, semua pin pada array nilBit diatur sebagai output karena akan digunakan

untuk mengendalikan LED.


Serial.begin(9600);
}
void loop() {

Program tersebut merupakan kode untuk platform mikrokontroler Arduino, dimana terdapat

fungsi-fungsi untuk mengakses dan mengontrol board secara interaktif melalui komunikasi

serial.

Pada baris pertama program, terdapat fungsi Serial.begin(9600) yang digunakan untuk

membuka koneksi serial antara board Arduino dengan perangkat luar (misalnya komputer).

Fungsi ini dijalankan hanya sekali di dalam fungsi setup() dan digunakan untuk mengatur

kecepatan transfer data serial pada 9600 bits per detik.

Selanjutnya, pada baris kedua program, terdapat fungsi loop(). Fungsi ini merupakan fungsi

bawaan pada platform mikrokontroler Arduino yang akan dijalankan secara terus-menerus

selama board Arduino dinyalakan.

Isi dari fungsi loop() tergantung pada kebutuhan pengguna, dimana di dalam fungsi loop()

biasanya terdapat instruksi-instruksi program yang perlu dijalankan secara berulang-ulang.

Pada program ini, fungsi loop() kosong tanpa adanya instruksi apapun. Namun, fungsi loop()

harus selalu ada pada setiap program Arduino sebagai bagian dari aturan dasar yang harus

dipatuhi.
for (int i = 0; i < bitCount; i++) { // loop untuk setiap
bit
digitalWrite(nilBit[i], HIGH); // hidupkan pin logika

Program tersebut merupakan kode untuk platform mikrokontroler Arduino, dimana terdapat
fungsi-fungsi untuk mengakses dan mengontrol board secara interaktif.

Pada program tersebut, terdapat perulangan `for` yang berjalan sebanyak `bitCount` kali.
Variabel `i` akan berjalan dari 0 hingga kurang dari `bitCount`, dan akan melakukan instruksi
yang ada di dalam blok perulangan.

Di dalam blok perulangan tersebut, terdapat instruksi `digitalWrite(nilBit[i], HIGH)`.


Instruksi tersebut berfungsi untuk menghidupkan (menyalakan) pin digital pada board
Arduino. `nilBit[i]` merupakan indeks dari array yang digunakan untuk menyimpan nomor pin
digital pada board Arduino, sedangkan `HIGH` merupakan nilai logika untuk menyalakan pin
digital.

Dengan melakukan perulangan tersebut, setiap pin digital yang ada di dalam array `nilBit`
akan diaktifkan (dinyalakan) secara bergantian. Hal ini dapat digunakan sebagai contoh
penggunaan LED pada board Arduino, dimana setiap LED yang terhubung pada pin digital
akan menyala secara bergantian.
dtInp = analogRead(Inp);
dtInp = map(dtInp, 0, 1018, 0, 256);

Program tersebut merupakan kode untuk platform mikrokontroler Arduino, dimana terdapat

fungsi-fungsi untuk mengakses dan mengontrol board secara interaktif.

Pada program tersebut, terdapat dua instruksi yaitu `analogRead` dan `map`.

Instruksi `analogRead(Inp)`

Berfungsi untuk membaca nilai analog dari pin yang ditentukan (dalam hal ini adalah `Inp`).
Nilai yang dibaca oleh fungsi ini berkisar antara 0 hingga 1023, sesuai dengan resolusi ADC
(analog to digital converter) pada board Arduino.

Sedangkan instruksi `map(dtInp, 0, 1018, 0, 256)`

berfungsi untuk memetakan nilai yang dibaca oleh `analogRead` ke dalam rentang nilai
yang diinginkan. Pada kasus ini, nilai yang dibaca oleh `analogRead` yang awalnya berkisar
antara 0 hingga 1023 akan diubah menjadi nilai antara 0 hingga 256.

Untuk melakukan hal tersebut, fungsi `map` akan melakukan konversi linier dengan

menghitung persentase dari nilai yang dibaca, kemudian memetakan persentase tersebut ke

dalam rentang nilai yang diinginkan. Sebagai contoh, jika nilai yang dibaca oleh `analogRead`

adalah 511, maka nilai yang dihasilkan oleh `map` akan menjadi sekitar 127 (karena 511

merupakan persentase 50% dari 1023, dan 127 merupakan persentase 50% dari 256).
Serial.println(dtInp);
delay (1000);
}

Program tersebut merupakan implementasi dari pembacaan nilai analog dari sensor yang

terhubung ke pin A0 pada mikrokontroler Arduino. Setelah nilai sensor dibaca menggunakan

fungsi `analogRead()`, nilai tersebut akan diubah dengan menggunakan fungsi `map()` untuk

disesuaikan dengan rentang nilai yang dibutuhkan dalam program. Selanjutnya, nilai yang telah

diubah tersebut akan diprint pada monitor serial menggunakan `Serial.println()`. Setelah itu,

terdapat delay selama 1 detik sebelum program kembali ke awal loop untuk membaca nilai

sensor kembali. Dengan demikian, program tersebut akan terus membaca dan menampilkan

nilai sensor pada monitor serial dengan interval 1 detik.

Anda mungkin juga menyukai