4.Pembelajaran Dasar Komunikasi Serial dan Asas String

4. Pembelajaran Dasar Komunikasi Serial dan Asas String

Materi:

Pembelajaran Dasar Komunikasi Serial dan Asas String ini menjelaskan cara berkomunikasi antara Arduino dan komputer. Berbagai contoh diberikan untuk memudahkan dalam memahaminya. Selain itu, bab ini mengupas dua jenis string yang dapat digunakan di Arduino.

4.1 Pemanfaatan Komunikasi Serial

Manfaat paling dasar adanya komunikasi serial adalah memungkinkan terjadinya pertukaran informasi antara papan Arduino dan komputer.Hal ini memungkinkan Anda memantau status proyek-proyek yang sedang Anda uji langsung di komputer. Sebagai contoh, Anda bisa menguji sensor gas atau sensor jarak tanpa harus menggunakan LCD display terlebih dahulu. Dengan demikian, fokus Anda cukup pada sensor-sensor tersebut,tanpa perlu bersusah payah merangkai LCD display dan memprogramnya.

Hal yang menarik, komunikasi dapat dilakukan secara dua arah. Artinya, baik komputer maupun papan Arduino dapat saling mengirim maupun menerima informasi.

4.2 Berkomunikasi dengan Papan Arduino

Contoh yang memberikan gambaran mengenai komunikasi antara papan Arduino dan komputer diperlihatkan di sketch berikut:

Sketch:bacakar

// ——————————————–

// Contoh komunikasi antara Arduino dan komputer

// Arduino akan membaca data dari port

// dan akan mengirim balik ke port supaya

// bisa dibaca oleh komputer

//

// Rangkaian tidak diperlukan

// ——————————————–

void setup()

{

1// Atur kecepatan penerimaan dan pengiriman data

Serial.begin(9600);

}

void loop()

while (Serial.available()!= 0)

char data=Serial.read();

Serial.print(data);

delay(20); // Tunda sebentar untuk menyiapkan

// pembacaan data berikutnya

Sketch bacakar digunakan untuk membaca semua karakter yang dikirimkan ke port serial (oleh komputer). Untuk memulai komunikasi,Serial,begin() perlu dipanggil terlebih dahulu,Pada contoh di depan,

serial,begin(9600):

yang terdapat di setup(),ditujukan untuk mengawalikomunikasi.Argumen 9600 menentukan kecepatan data baik untuk keperluan pengiriman maupun penerimaan.

jika diperlukan,komunikasi dapat dibuka dan ditutup dalam waktu yang singkat,Untuk keperluan menutup komunikasi serial,pernyataan berikut perlu dipanggil: Serial.end();

Arduino memantau data yang berada di port serial secara terus-menerus berkat perintah:

while (serial.available()!=0)

{

}

Dalam hal ini, Serial.available () akan menghasilkan nol sekiranya tidak ada data di port serial. Kalau port tersebut mengandung karakter, satu karakter akan dibaca melalui:

char data=Serial.read();

Pernyataan di atas mendeklarasikan variabel data sebagai variabel bertipe char (untuk menampung satu karakter).Variabel ini akan menampung karakter yang dibaca dari port serial.

Pernyataan

Serial.print(data);

digunakan untuk mengirim isi variabel data ke port serial dan implikasinya akan membuat isi data tersebut ditampilkan di penampil informasi port serial di komputer.

Nah,sekarang,persoalannya adalah “Bagaimana menguji sketch bacastring?”.Untuk keperluan ini, ikutilah langkah-langkah berikut.

  1. Klik pada menu Tools di Arduino IDE dan kemudian klik pada Serial Monitor (lihat Gambar 4.1). Sebagai alternatif,Ctrl+Shift+M boleh digunakan. Sebagai hasil langkah ini, akan muncul jendela seperti terlihat di Gambar 4.2.

2. Cobalah untuk mengetikkan string seperti terlihat di Gambar 4.3.

3. Klik pada untuk mengirim string ke port serial. Hasilnya, setelah diproses oleh papan Arduino,akan muncul hasil di jendela seperti terlihat di Gambar 4.4.

Gambar 4.4 Hasil dari papan Arduino

4. Ujilah kembali dengan memasukkan string seperti terlihat di Gambar 4.5 dan kemudian klik kembali pada .Hasil seperti terlihat di Gambar 4.6 akan diperoleh.

Perhatikan bahwa hasil antara string pertama dan kedua tidak dipisahkan oleh baris baru (newline). Hal ini disebabkan memang tidak ada perintah untuk membuat baris baru setelah menampilkan semua karakter yang dibaca dari port serial.

Untuk membuat baris baru, Serial.println() diperlukan.Contoh ditunjukkan di sketch berikut:

Sketch:bacakar2

// ——————————————–

// Contoh penggunaan Serial.println()

// ——————————————–

void setup()

{

// Atur kecepatan penerimaan dan pengiriman data

Serial.begin (9600);

}

void loop()

while (Serial.available() != 0)

{

char data = Serial.read();

Serial.print(data);

Serial.print(“: Nilai ASCII: “);

Serial.println(data, DEC);

delay(20); // Tunda sebentar untuk menyiapkan

//pembacaan data berikutnya

}

}

Sketch bacakar2 sesungguhnya adalah pengembangan dari bacakar, dengan tambahan berupa dua pernyataan berikut setelah Serial.print (data);:

Serial.print(“: Nilai ASCII: “);

Serial.println(data, DEC);

Pernyataan pertama digunakan untuk menampilkan string “: Nilai ASCII: ” tanpa newline.Pernyataan kedua digunakan untuk menampilkan isi variabel data dalam bentuk desimal (yang menyatakan nilai ASCII dari karakter bersangkutan) dan diakhiri dengan newline atau baris baru (untuk berpindah baris).

  • Potongan In pada print1n() sebenarnya berasal dari newline. Dengan perkataan lain, print1n () digunakan untuk menampilkan data dan akan menambahinya dengan newline.
  • Argumen kedua pada print1n() bersifat opsional. Jika diberikan, isinya bisa berupa:
  • oDEC-untuk menampilkan data dalam bentuk desimal (nilai ASCII)
  • HEX-untuk menampilkan data dalam bentuk heksadesimal
  • OCT-untuk menampilkan data dalam bentuk oktal
  • BIN-untuk menampilkan data dalam bentuk biner

Gambar 4.7 memperlihatkan contoh string untuk melakukan pengujian sketch bacakar2:

Gambar 4.7 Pengujian untuk sketch bacakar2

  1. Sekarang ujilah dengan mengklik pada . Hasil yang diperoleh seperti yang terlihat di Gambar 4.9.

Perhatikan bahwa ada tambahan carriage return (ASCII = 13).

4.3 Membaca Data Bertipe Int

Untuk kepentingan membaca data bilangan bulat, objek Serial melengkapi fungsi anggo bernama parseInt (). Nilai baliknya berupa bilangan pertama yang dijumpai di port serial. Contoh dap dilihat di sketch berikut:

Sketch:bacaint

// ——————————————–

// Contoh untuk membaca data bilangan bulat

// ——————————————–

void setup()

{

// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);

}

void loop()

{

while (Serial.available() != 0)

// Baca data bilangan bulat

int bilangan = Serial.parseInt();

// Tampilkan bilangan ke komputer

Serial.print(“Bilangan -> “);

Serial.println(bilangan);

delay(20); // Tunda sebentar untuk menyiapkan

// pembacaan data berikutnya

}

}

Pada sketch di depan, pernyataan

int bilangan = Serial.parseInt();

digunakan untuk mendeklarasikan variabel bilangan sebagai variabel bertipe int dan memberikanG ebuah bilangan bulat yang berada di port serial ke variabel tersebut.

Pernyataan

Serial.print(“Bilangan -> “);

Serial.println(bilangan);

Digunakan untuk menampilkan string “Bilangan -> ” dan isi variabel bilangan.

Gambar 4.10 dan 4.11 memperlihatkan contoh string yang digunakan untuk menguji sketch bacaint.

4.4 Membaca Bilangan Pecahan

ntuk kepentingan membaca data bilangan bulat,objek serial melengkapi fungsi anggota bernama arseInt(). Nilai baliknya berupa bilangan pertama yang dijumpai di port serial. Contoh dapat dilihat dI ketch berikut:

Sketch:bacafloat

// ——————————————–

// Contoh untuk membaca data bilangan pecahan

// ——————————————–

void setup()

{

// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);

}

void loop()

{

while (Serial.available() != 0)

// Baca data bilangan pecahan

float bilangan = Serial.parsefloat();

// Tampilkan bilangan ke komputer

Serial.print(“Bilangan -> “);

Serial.println(bilangan);

delay(20); // Tunda sebentar untuk menyiapkan

// pembacaan data berikutnya

}

}

Pada sketch di depan, pernyataan

float bilangan = Serial.parsefloat();

digunakan untuk mendeklarasikan variabel bilangan sebagai variabel bertipe float dan memberikanG ebuah bilangan bulat yang berada di port serial ke variabel tersebut.

Pernyataan

Serial.print(“Bilangan -> “);

Serial.println(bilangan);

Digunakan untuk menampilkan string “Bilangan -> ” dan isi variabel bilangan.

ambar 4.10 dan 4.11 memperlihatkan contoh string yang digunakan untuk menguji sketch bacafloat.

Gambar 4.12 String untuk menguji pembacaan bilangan pecahan

4.5 Mematikan atau Menghidupkan LED melalui Keyboard

Dengan memanfaatkan komunikasi serial, dimungkinkan untuk mengendalikan LED melalui keyboan Sebagai contoh,angka 1 digunakan untuk menyalakan LED dan angka O dipakai untuk mematikan LED.

Untuk mempraktikkan hal ini, siapkan rangkaian seperti terlihat di Gambar 4.14. Contoh penyusunan rangkaian diperlihatkan di Gambar 4.15.

Gambar 4.14 Rangkaian untuk mematikan/menghidupkan LED melalui keyboard

Gambar 4.15 Contoh penyusunan rangkaian untuk menghidupkan/mematikan LED

Sketch:aturled1

// ——————————————–

// Contoh untuk mengendalikan LED melalui

// perintah dari komputer

//

// Versi 2 – Solusi dengan string berakhiran NULL

// Perintah berupa string

// ON, on, On oN : LED dihidupkan

// Off, OFF, dst: LED dimatikan

// ——————————————–

const int PIN_12=12;

void setup()

{

// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);

// Atur PIN 12 sebagai keluaran

pinMode(PIN 12,OUTPUT);

}

void loop()

{

while (Serial.available()!=0)

{

//Baca data bilangan pecahan

int bilangan=Serial.parseInt();

// Buang sisanya kalau ada

Serial.flush();

// Atur LED

if (bilangan==1)

{

digitalWrite(PIN 12,HIGH);

Serial,printin(“LED dihidupkan”);

}

Else

if (bilangan== 0)

{

digitalWrite(PIN 12,LOW);

Serial,printin(“LED dimatikan”);

}

delay (20); // Tunda sebentar untuk menyiapkan

// pembacaan data berikutnya

}

}

Pada sketch di atas,pernyataan

int bilangan-Serial,parseint():

disunskan untuk mendeklarasikan variabel bilangan sebagal variabel bertipe int dan memberikan sebuah bilangan bulat yang berada di port serial ke variabel tersebut,

Pernyataan1

Serial.flush():

digunakan untuk membuang semua data tersisa di port serial. Adapun pernyataan berikut dipakai untuk mengendalikan LED:

if (bilangan ==1)

{

digitalWrite(PIN 12, HIGH);

Serial.println(“LED dihidupkan”);

}

else

if (bilangan ==0)

{

digitalWrite(PIN_12,LOW);

Serial.println(“LED dimatikan”);

}

Kode di atas akan membuat LED dihidupkan sekiranya bilangan bernilai 1 dan mematikan LED kalau bilangan bernilai 0. Pernyataan di atas juga mengirim informasi ke port serial berupa “LED” dihidupkan” atau “LED” dimatikan”. Untuk bilangan selain 0 atau 1 akan diabaikan.

Gambar 4.16 menunjukkan contoh pemasukan angka 1.Gambar 4.17 memperlihatkan hasil setelah tombol diklik untuk mengirimkan bilangan 1. Gambar 4.18 menunjukkan contoh pemasukan angka 0.

Gambar 4.19 memperlihatkan hasil setelah tombol diklik untuk mengirimkan bilangan 0.

Bagaimana halnya kalau perintah yang dikehendaki adalah suatu string ? Pembahasan mengenai hal ini dapat di lihat di Subbab 4.8.

4.6 Membaca Potensiometer

Potensiometer biasa digunakan untuk mengatur hambatan secara variabel.  Bentuknya terlihat di gambar 4. 20. Nah, nilal yang bersifat variabel inilah yang akan dicoba dipantau dengan mengunakan komputer.

Gambar 4.20 Potensiometer

untuk kepentingan ini buatlah rangkaian seperti terihat di Gambar 4 21.Contoh penyusunan rangkaian diperlihatkan di Gambar 4.22.

Sketch yang digunakan untuk memantau potensiometer seperti berikut:

Sketch:potensio

// ——————————————–

// Contoh untuk memonitor nilai tegangan

// yang diatur oleh potensiometer

// ——————————————–

const int PIN_A0= 0;

int nilaiSebelum = 0;

void setup()

{

// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);

// Atur PIN 12 sebagai keluaran

pinMode(PIN 12,OUTPUT);

}

void loop()

{

int nilaiSekarang = analogRead(PIN A0);

if (abs(nilaiSebelum- nilaiSekarang)> 2)

{

Serial.println(nilaiSekarang);

nilaiSebelum= nilaiSekarang;

}

delay(20);

}

Pada sketch di atas,kode

const int PIN_A0=0;

digunakan untuk mendefinisikan PIN_A0 sebagai pin analog 0.Pin inilah yang digunakan untuk membaca nil yang diatur oleh potensiometer,mengingat pin tengah potensiometer dihubungkan ke pin ini. Adapu pembacaan nilai pin analog 0 dilakukan melalui:

int nilaiSekarang = analogRead(PIN_A0);

Fungsi analogRead() bertindak sebagai pembaca nilai di pin analog 0. Nilai baliknya disimpan di nilaiSekarang.

Pernyataan if digunakan untuk mengatur agar nilai di pin A0 dikirim ke port serial hanya jika selisih nilai yang sama atau hanya berbeda 1 atau 2. antara nilaiSekarang dan nilaiSebelum lebih dari dua. Hal ini untuk menghindari pengiriman nilai yang sam atau hanya berbeda 1 atau 2.

Hasil sketch potensio dapat dilihat di Gambar 4.23.

Gambar 4.23 Hasil pengujian sketch potensio

4.7 Ulasan String

String yang dapat digunakan di sketch dapat dibedakan menjadi dua jenis: 1) string berakhiran karakter NULL dan 2) objek string. Masing-masing akan dibahas.

String Berakhiran Karakter NULL

Kadang kala diperlukan untuk menyimpan string dalam suatu variabel. Untuk keperluan ini, Anda bisa menggunakan array dengan elemen bertipe char. Dalam hal ini,string harus diakhiri dengan karakter NULL. Itulah sebabnya, string semacam ini dinamakan string berakhiran NULL (karakter dengan nilai ASCII sama dengan 0).

Jika array dimaksudkan untuk menampung n karakter, jumlah elemen array harus berupa n+1.Contoh:

char teks[25];

Deklarasi di atas akan membuat teks mampu menampung 24 karakter.

Sejumlah fungsi disediakan untuk melakukan pemanipulasian terhadap string berakhiran NULL. Beberapa fungsi dicantumkan di Tabel 4.1.

Tabel 4.1 Fungsi-fungsi untuk memanipulasi string berakhiran NULL

Fungsi Keterangan
strcpy(target,sumber); Fungsi ini berguna untuk menyalin string sumber ke target
strcat(target,sumber); Fungsi ini berguna untuk menambahkan string sumber ke

akhir string target

strlen(string); Fungsi ini berguna untuk memperoleh jumlah karakter di

string

strcmp(target,sumber); Fungsi ini berguna untuk membandingkan dua string. Nilaibalik berupa:

  • -1 kalau target <sumber
  • 0 kalau target=sumber
  • -1 kalau target> sumber

Pengertian kurang dari, sama dengan, atau lebih darididasarkan pada nilai ASCII setiap karakter pada posisi yangsama. Berdasarkan tabel ASCII, A< B dan A<a

strchr(string, karakter); Fungsi ini berguna untuk memperoleh posisi pertama suatu

karakter di string. Nilai balik berupa pointer yang menunjuk

lokasi karakter yang dicari di string. Kalau karakter yang

dicari tidak ditemukan, nilai balik berupa NULL.

strstr(str_1,str_2); Fungsi ini berguna untuk memperoleh posisi pertama suatustring (str_2) di suatu string (str_2). Nilai balik berupa pointer yang menunjuk lokasi string yang dicari di string str_1.Kalau string yang dicari tidak ditemukan, nilai balikberupa NULL.
strlwr(str); Fungsi ini berguna untuk mengonversi setiap huruf kaptal

di str menjadi huruf kecil.

strupr(str); Fungsi ini berguna untuk mengonversi setiap huruf ke

str menjadi huruf kapital.

Untuk kepentingan pemanipulasian karakter yang digunakan dalam pengolahan string, sejumlah fungsi juga tersedia. Tabel 4.2 memperlihatkan sejumlah fungsi yang terkait dengan karakter.

Tabel 4.2 Fungsi-fungsi untuk memeriksa karakter

Fungsi Keterangan
isalnum(karakter) Fungsi ini memberikan nilai balik berupa true kalau karakter

berupa angka atau huruf atau false kalau tidak.

isalpha(karakter) Fungsi ini memberikan nilai balik berupa true kalau karakter

berupa huruf atau false kalau tidak.

isdigit(karakter) Fungsi ini memberikan nilai balik berupa true kalau karakter

berupa angka atau false kalau tidak.

islower(karakter) Fungsi ini memberikan nilai balik berupa true kalau karakter

berupa huruf kecil atau false kalau tidak.

isupper(karakter) Fungsi ini memberikan nilai balik berupa true kalau karakter

berupa huruf kapital atau false kalau tidak.

isspace(karakter) Fungsi ini memberikan nilai balik berupa true kalau karakter

berupa spasi-putih (spasi, newline, carriage return, tab) atau

false kalau tidak.

isxdigit(karakter) Fungsi ini memberikan nilai balik berupa true kalau karakter

berupa karakter heksadesimal atau false kalau tidak.

toupper(karakter) Fungsi ini memberikan nilai balik berupa huruf kapital kalau

argumen berupa huruf kecil atau karakter yang sama dengan

argumen kalau argumen tidak berupa huruf kecil.

tolower(karakter) Fungsi ini memberikan nilai balik berupa huruf kecil kalau argumen

berupa huruf kapital atau karakter yang sama dengan argumen

kalau argumen tidak berupa huruf kapital.

Sketch:aturled2

// ——————————————–

// Contoh untuk mengendalikan LED melalui

// perintah dari komputer

//

// Versi 2 – Solusi dengan string berakhiran NULL

// Perintah berupa string

// ON, on, On oN : LED dihidupkan

// Off, OFF, dst: LED dimatikan

// ——————————————–

const int PIN_12=12;

void setup()

{

// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);

// Atur PIN 12 sebagai keluaran

pinMode(PIN 12,OUTPUT);

}

void loop()

{

// Deklarasikan string

char perintah[20] = “”; // Awal kosong

char tmp[2];

tmp[1] = 0; // pengakhir string

while (Serial.available() != 0)

{

// Baca satu karakter

char kar = Serial.read();

// Isikan ke kar ke tmp

tmp[0] = kar;

// Tambahkan ist tmp ke perintah

// kalau berupa huruf

if (isalpha(kar))

strcat(perintah,tmp):

delay(20):// Tunda sebentar untuk

// menylapkan pembacaan berikutnya

}

// Kalau string kosong,perintah-perintah berikutnya

// diabaikan saja

if (strlen(perintah)==0)

return;

// Konversi hurut keoil ke kapital

strupr(perintah);

// Seleksi string

If (strcmp(perintah, “ON”)==0)

{

digitalWrite(PIN_12,HIGH); Serial.println(“LED dihidupkan”);

}

else

if (strcmp(perintah,”OFF”)==0)

{

digitalWrite(PIN 12, LOW);

Serial.println(“LED dimatikan”);

}

}

Pertama-tama,perhatikan tiga pernyataan berikut:

char perintah[20] =””; // Awal kosong

char tmp[2];

tmp[1] =0; // pengakhir string

Pernyataan pertama digunakan untuk menciptakan array bertipe char dengan jumlah elemen 20 dan dibe nilai awal berupa string kosong. Mengingat array ini digunakan untuk menampung string berakhiran Nu array hanya mampu menampung 19 karakter. Gambar 4.24 menunjukkan keadaan array perintah setel pernyataan berikut dijalankan:

char perintah[20]=””;

Gambar 4.25 menunjukkan keadaan setelah dua pernyataan berikut dijalankan:

char tmp[2];

tmp[1)=0;

Pada contoh terakhir ini,tmp hanya berisi satu karakter, mengingat elemen kedua disi dengan O (karakter NULL).

Gambar 4.24 Array untuk string berakhiran NULL

Gambar 4.25 Array dengan dua elemen, dan mengandung satu karakter saja

Pembacaan data di port serial dilakukan selama data tersedia. Hal ini ditangani oleh:

while (Serial.available()!=0)

{

}

Pembacaan sebuah karakter dilakukan melalui:

char kar=Serial.read();

Dengan perintah di atas, kar akan menampung satu karakter yang dibaca dari port serial.

Pernyataan berikut digunakan untuk menaruh isi kar ke elemen pertama di array tmp:

tmp(0]-kar:

Dengan cara seperti itu, tmp berisi string yang berisi karakter yang sesuai dengan isi kar.String di inilah yang kemudian ditambahkan di akhir string perintah sekiranya berupa huruf melalui:

if (isalpha(kar))

strcat(perintah,tmp);

Pernyataan di atas menjalankan strcat() kalau isi kar berupa huruf.Sebagai contoh,jika peri berupa string kosong dan tmp berisi string “O” (karena kar berisi huruf O), strcat() akan men perintah berisi “O”,Seandainya perintah berisi string “O” dan tmp berisi string “n” (karena karbe hurufn),strcat() akan membuat perintah berisi “On”.

Pernyataan

if (strlen(perintah) == 0) return;

membuat semua pernyataan yang berada di bawah return akan diabaikan.

Pernyataan

strupr(perintah);

digunakan untuk mengonversi semua huruf kecil di perintah diubah menjadi huruf kapital.Sebagaiconm “On” akan diubah menjadi “ON”.

Pernyataan berikut digunakan untuk menghidupkan atau mematikan LED:

if (strcmp(perintah, “ON”) == 0)

{

digitalWrite(PIN_12, HIGH);

Serial.println(“LED dihidupkan”);

}

else

if (strcmp(perintah, “OFF”) ==0)

{

digitalWrite(PIN 12, LOW);

Serial.print1n(“LED dimatikan”);

Perlu diketahui,ungkapan strcmp(perintah,”ON”)==0 menghasilkan true kalau isi perintah adalah “ON”,Jika ungkapan tersebut bernilai true,LED akan dihidupkan dan informasi bahwa “LED” dihidupkan” dikirimkan ke port port serial.

Objek Berkelas String

String juga bisa diperoleh dengan membentuk objek berkelas String.Untuk membentuk objek,gun perintah semacam berikut:

string namA0bjek;

Untuk mendeklarasikan objek dan sekaligus memberikan nilai awal, bentuk berikut bisa digunakan:

String namA0bjek = ekspresi_string;

String namA0bjek(ekspresi_string);

Di objek string, konkatenasi (semacam strcat() di string berakhiran NULL) dapat dilakukan deng menggunakan operator+.Contoh:

String resistor = “R = ” + “22K”;

akan membuat resistor berisi“R=22K”.

Untuk melakukan operasi string,sejumlah fungsi anggota disediakan. Tabel 4.3 mencantumkan sejumlah fungsi anggota yang dimiliki oleh objek string.

Tabel 4.3 Fungsi-fungsi anggota untuk objek String

Fungsi Anggota Keterangan
charAt(n) Menghasilkan karakter distring pada posisi ke-n.
compareTo(string2) Menghasilkan nilai balik berupa:
  • Nilai negatif kalau string <string2
  • Nol kalau string dan string2 sama
  • Nilai positif kalau string>string2
concat(string1,string2) string baru.

Meggngan string1 dan string2 dan hasilnya berupa

endsWith(string2) Keterangan

Nilai balik fungsi berupa true kalau string berakhiran

dengan string2. Untuk keadaan sebaliknya, nilai balik

berupa false.

equals(string2) Identik dengan penggunaan operator=
equalslgnoreCase(string2) Mirip dengan=tetapi huruf kecil dan huruf kapital tidak

dibedakan.

getBytes(penyangga,panjang) Menyalin karakter-karakter dalam string ke dalam

penyangga. Dalam hal ini,panjang menyatakan panjang

penyangga. Nilai balik tidak ada.

indexOf(nilai)

indexOf(nilai,dari)

Digunakan untuk memperoleh indeks ditemukannya nilai

(bisa berupa sebuah karakter atau string) di dalam string.

Jika dari disebutkan, pencarian dimulai dari posisi dari.

lastlndexOf(nilai)

lastlndexOf(nilai,dari)

Serupa dengan indexOf(), tetapi pencarian dimulai dari

akhir string menuju ke awal string.

length() Menghasilkan panjang string (jumlah karakter di string)
replace(substring1,

substring2)

Menghasilkan string baru dengan substring1 yang terda-

pat di string akan diganti dengan substring2.

setCharAt(n,kar) Mengubah karakter pada indeks n dengan kar.
startsWith(string2) Menghasilkan nilai true kalau string berawalan dengan

string2.

substring(dari)

substring(dari,sampai)

Menghasilkan string baru yang merupakan bagian dari

string dimulai indeks dari hingga indeks sampai. Kalau

argumen kedua tidak disebutkan, substring dimulai pada

posisi dari hingga akhir string.

toCharArray(penyangga,n) Menyalin karakter-karakter di string ke penyangga yang

mempunyai jumlah n byte. Tidak ada nilai balik.

toLowerCase() Setiap huruf kapital di string akan diganti dengan huruf

kecil.

toUpperCase() Setiap huruf kecil di string akan diganti dengan huruf

kapital.

trim() Setiap spasi-putih yang berada di awal dan di akhir string

akan dihapus.Termasuk spasi-putih adalah carriage return

dan linefeed.

Sketch:aturled3

// ——————————————–

// Contoh untuk mengendalikan LED melalui

// perintah dari komputer

//

// Versi 2 – Perintah berupa string

// ON, on, On oN : LED dihidupkan

// Off, OFF, dst: LED dimatikan

// ——————————————–

const int PIN_12=12;

void setup()

{

// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);

// Atur PIN 12 sebagai keluaran

pinMode(PIN 12,OUTPUT);

}

void loop()

{

// Deklarasikan string

char perintah[20] = “”; // Awal kosong

char tmp[2];

tmp[1] = 0; // pengakhir string

while (Serial.available() != 0)

{

// Baca satu karakter

char kar = Serial.read();

// Susun String

perintah = perintah + kar;

delay(20); // Tunda sebentar untuk

// menyiapkan pembacaan berikutnya

}

// Kalau string kosong, perintah-perintah berikutnya // diabaikan saja

if (perintah.length()==0)

return;

// Buang karakter spasi di awal dan akhir string

// termasuk Carriage return

perintah.trim();

// Konversi huruf kecil ke kapital

perintah.toUpperCase();

// Seleksi string

if (perintah ==”ON”)

{

digitalWrite(PIN_12, HIGH);

Serial.println(“LED dihidupkan”);

}

else

if (perintah==”OFF”)

{

digitalWrite(PIN 12,LOW);

Serial.println(“LED dimatikan”);

}

}

Sketch telah dilengkapi komentar-komentar.Oleh karena itu,Anda bisa memahami setiap pernyataan melalui komentar.

 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.