0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan7 halaman

MODUL 6 - Pemrograman Menggunakan String Dan Array - Zulfikar

Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan7 halaman

MODUL 6 - Pemrograman Menggunakan String Dan Array - Zulfikar

Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

MODUL 6

PEMOGRAMAN MENGGUNAKAN FUNGSI,


STRING DAN ARRAY

A. TUJUAN PRAKTIKUM
1. Memahami penggunaan fungsi, string dan array pada Arduino
2.

B. PERALATAN
1. Arduino Uno 1 buah
2. Protoboard 1 buah
3. LED 5mm 1 buah
4. Resistor 220 ohm 6 buah
5. Kabel Jumper

C. DASAR TEORI
1. String
Text string dapat dituliskan ke dalam dua cara yaitu menggunakan tipe data String yang
merupakan bagian dari dasar versi 0019, atau dapat menggunakan sebuah string luar dari sebuah
array tipe char dan null-terminatenya.

Contoh
char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str4[ ] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";

Beberapa kemungkinan untuk deklarasi string


 deklarasi sebuah array dari chars tanpa inisialisasi seperti dalam Str1
 deklarasi sebuaj array dari chars (dengan satu extra char) dan copiler akan menambah
karakter null seperti dalam Str 2
 menambahkan karakter null secara langsung seperti dalam Str3
 inisial dengan sebuah konstanta string dalam tanda kutipan, compiler akan menghitung
lebar konstanta array untuk panjang konstanta string dan sebuah pengakhiran karakter
null seperti pada Str4
 inisial array degan menuliskan besar dan konstanta string seperti pada Str5
 inisial array dengan memberi ruang ekstra untuk string yang lebih besar seperti pada Str6

1.1. Akhiran Null


Biasanya, banyak string yang diakhiri dengan sebuah karakter null (kode ASCII 0).
Hal ini membolehkan fungsi (seperti Serial.print() ) untuk memanggil diakhir string. Selain
itu, mereka akan melanjutkan pembacaan byte subskuen dari memori yang bukan
merupakan bagian dari string
Hal ini dimaksud saat membutuhkan string yang memiliki ruang untuk karakter yang
lebih banyak dari teks yang diinginkan. Ini kenapa Str2 dan Str5 membutuhkan 8 karakter
sedangkan “arduino” hanya 7, posisi yang terakhir secara otomatis akan ditepati oleh
karakter null. Str4 akan otomatis sebesar 8 karakter, satu dari external null. Dalam Str3,
mempunyai penyertaan karakter null secara explisit (ditulis ‘\0’)

1.2. Menyatukan string yang panjang


Anda dapat menyatukan string yang panjang seperti berikut :

char myString[] = "This is the first line"


" this is the second line"
" etcetera";

1.3. Array dari string


Bagaimana kerja dengan teks yang berjumlah besar, seperti dalam proyek LCD
display untuk membentuk array dari string. Karena string merupakan array, hal ini
sebenarnya sebuah contoh dari array dua dimensi.
Dalam kode ini, tanda bintang setelah tipe data char “char*”, merupakan sebuah
array dari “pointer”. Semua ama array merupakan pointer, jadi ini merupakan array di
dalam array.

Contoh:
char* myStrings[]={"This is string 1", "This is string 2", "This is string 3",
"This is string 4", "This is string 5","This is string 6"};

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

void loop(){
for (int i = 0; i < 6; i++){
Serial.println(myStrings[i]);
delay(500);
}
}

2. Fungsi

2.1. pinMode()
Digunakan untuk mengkonfigurasi pin secara spesifik sebagai sebuah input atau
output.

Syntax
pinMode(pin, mode)
Parameter
pin : set nomor pin mode
mode : Input atau Output

Contoh :
int ledPin = 13; // LED terkoneksi pada digital pin 13

void setup()
{
pinMode(ledPin, OUTPUT); // set digital pin sebagai output
}

void loop()
{
digitalWrite(ledPin, HIGH); // set LED on
delay(1000); // waktu tunggu dalam second
digitalWrite(ledPin, LOW); // set LED off
delay(1000); // waktu tunggu dalam second
}

2.2. digitalWrite()
Menuliskan logika HIGH atau LOW pada pin digital. Jika pin telah dikonfigurasi
sebagai OUTPUT dengan pinMode(), itu berarti arus akan diset dengan nilai 5V (atau
3.3V dalam board) untuk HIGH, 0V (ground) untuk LOW.

Jika pin dikonfigurasi sebagai INPUT, maka penulisan logika HIGH dengan
digitalWrite() akan membutuhkan sebuah resistor pullup internal 20K. penulisan LOW
akan mendisable pullup nya. Pullup resistor cukup untuk menyalakan LED dengan redup,
jadi jika LED bekerja namun samar, makan harus memperbaiki set pin ke output dengan
fungsi pinMode()

Syntax
digitalWrite(pin, value)

Parameters
pin: nomor pin
value: HIGH or LOW

Contoh
int ledPin = 13; // LED connected to digital pin 13

void setup()

int ledPin = 13; // LED connected to digital pin 13

void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}

void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}

2.3. digitalRead()
Membaca nilai dari spesifikasi digital pin yang bernilai HIGH atau LOW

Syntax
digitalRead(pin)

Parameter
pin : nomer dari digital pin yang ingin dibaca (int)

Contoh
int ledPin = 13; // LED terkoneksi pada digital pin 13
int inPin = 7; // pushbutton terkoneksi digital pin 7
int val = 0; // variable to store the read value

void setup()
{
pinMode(ledPin, OUTPUT); // sets digital pin 13 sebagai output
pinMode(inPin, INPUT); // sets digital pin 7 sebagai input
}

void loop()
{
val = digitalRead(inPin); // baca input pin
digitalWrite(ledPin, val); // sets LED untuk nilai pada button
}

Set pin 13 seperti nilai dari ppin 7 yang menjadi inputan.


Jika pin tidak terkoneksi pada digitalRead() maka dapat dikembalikan pada HIGH atau
LOW dan dapat berganti secara acak.
Input pin analog dapat digunakan sebagai digital pin.
3. Array
Array adalah kumpulan dari beberapa variable yang berkaita dengan sebuah nomor indeks.
Dibawah ini adalah membuat sebuah array yang benar .
int myInts[6];
int myPins[] = {2, 4, 8, 3, 6};
int mySensVals[6] = {2, 4, -8, 3, 2};
char message[6] = "hello";

Anda dapat mendeklarasikan array tanpa menginisialisasikannya seperti dalam myInts.

 Mengakses sebuah array


Array merupakan zero indexed yang menunjuk pada array yang telah diinisialisasi
sebelumnya, elemen pertama dari array adalah indeks ke 0

mySensVals[0] == 2, mySensVals[1] == 4,

Seperti halnya array dengan 10 elemen, indeks 9 adalah elemen terakhir.

int myArray[10]={9,3,2,4,3,2,7,8,9,11};
// myArray[9] contains 11
// myArray[10] is invalid and contains random information (other memory
address)

Tidak seperi BASIC atau JAVA, dalam compiler C tidak mengecek untuk mengetahi jika
akses array sudah sesuai batas besaran array yang dideklarasikan sebelumnya.

Sebuah penugasan dalam sebuah array


mySensVals[0] = 10;

Untuk mendapatkan sebuah nilai dari array


x = mySensVals[4];

 Array dan pengulangan FOR


Array dapat dimanipulasikan dalam perulangan for, dimana penghitungan perulangan
digunakan sebagai indeks pada beberapa elemen array. Seperti contoh untuk mencetak
beberapa elemen sebuah array pada serial port seperti contoh berikut :

int i;
for (i = 0; i < 5; i = i + 1) {
Serial.println(myPins[i]);
}
Praktikum

1. Hubungkan kaki-kaki + LED ke pin digital 2,3,4,5,6, dan 7 pada Arduino


2. Hubungkan kaki-kaki – LED ke tiap resistor 220 Ohm
3. Hubungkan tiap resistor ke pin GND Arduino menggunakan kabel jumper
4. Pasangkan board Arduino dengan port USB komputer menggunakan kabel USB
5. Buka IDE Arduino kemudian ketikkan sketch berikut.

int timer = 100;


int ledPins[ ] = { 2, 7, 4, 6, 5, 3};
int jumlahPin = 6;

void setup()
{
for (int thisPin = 0; thisPin < jumlahPin; thisPin++)
{

pinMode(ledPins[thisPin], OUTPUT);

}
}
void loop()
{

for (int thisPin = 0; thisPin < jumlahPin; thisPin++)


{
digitalWrite(ledPins[thisPin], HIGH);

delay(timer);

digitalWrite(ledPins[thisPin], LOW);
}

for (int thisPin = jumlahPin-1; thisPin >= 0; thisPin--)


{
digitalWrite(ledPins[thisPin], HIGH);

delay(timer);

digitalWrite(ledPins[thisPin], LOW);
}
}

6. Jika sudah, compile menggunakan tombol “verify”, cek apakah ada kesalahan pengetikan
sketch. Jika masih ada error coba di perbaiki lagi, mungkin ada kesalahan dalam
pengetikan.
7. Upload ke board Arduino menggunakan tombol “Upload” atau melalui File → Upload

Jika Program yang diupload benar dan tidak ada kesalahan dalam pemasangan rangkaian
elektronikanya maka, LED akan menyala secara bergiliran sesuai dengan urutan indexnya.

Anda mungkin juga menyukai