ALGORITMA DAN PEMROGRAMAN
Parameter Fungsi, Array dan variable dinamis, Karakter dan String
Oleh : Dani Hermawan
1.
Parameter Fungsi
Fungsi adalah suatu bagian dari
program yang dimaksudkan untuk mengerjakan
suatu tugas
terterntu dan letaknya dipisahkan dari bagian program yang menggunakannya.
Berdasarkan
keluaran dan masukannya fungsi dapat dibagi menjadi 4. Yang dimaksud keluaran
adalah fungsi yang mengembalikan suatu nilai tertentu dan yang
dimaksud
dengan masukan adalah parameter yang merupakan inputan pada fungsi.
Berikut
adalah fungsi-fungsi dasar bahasa pemrograman arduino :
a. setup()
Fungsi
setup() dipanggil ketika sketsa dimulai. Struktur ini berguna untuk
menginisialisasi variabel, mode pin, memulai menggunakan library, dll. Fungsi
pengaturan hanya akan berjalan sekali, yaitu setiap powerup atau restart board
Arduino.
Contoh
int buttonPin = 3;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
b. loop()
Setelah
menggunakan fungsi setup() yang menginisialisasi dan menetapkan nilai awal,
fungsi loop() berguna untuk melaksanakan / mengeksekusi perintah program yang
telah dibuat. Fungi ini akan secara aktif mengontrol board Arduino baik membaca
input atau merubah output.
Contoh
const int buttonPin = 3;
// inisialisasi serial
dan tombol
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
// melakukan
pengecekan tombol secara berkala,
// dan akan dikirim
jika tombol ditekan
void loop()
{
if (digitalRead(buttonPin) == HIGH)
Serial.write('H');
else
Serial.write('L');
delay(1000);
}
c. pinMode(pin,
SET)
Fungsi ini digunakan untuk menginisialisasi sebuah
pin, dan menentukan pin tersebut akan digunakan sebagai input ataupun output.
Nilai SET dapat diisiOUTPUT atau INPUT, tergantung dari kebutuhan. Sedangkan
nilai pin adalah nomor pin pada mikrokontroler yang akan diset sebagai input
atau output. Contoh: pinMode(13, OUTPUT) artinya kita menentukan pin digital 13
pada Arduino berfungsi sebagai output.
d. digitalWrite(pin,
VAL)
Fungsi
ini digunakan untuk menuliskan nilai secara digital pada suatu pin. NilaiVAL dapat berupa HIGH (ON) atau LOW (OFF) dan nilai pin adalah nomor pin
pada Arduino yang akan diset. Contoh: digitalWrite(13, HIGH) artinya pin digital 13 diset pada
kondisi menyala.
e. digitalRead(pin)
Fungsi ini digunakan untuk membaca nilai
input/masukan yang diberikan ke Arduino. Nilai yang terbaca oleh Arduino
melalui digitalRead() bergantung pada voltase pada pin yang
diatur. Kebergantungan pada nilai voltase ini disebut Logic Level. Pada Arduino, batasan nilai yang
mencukupi untuk mencapai HIGH adalah di antara 5-3 volt, sedangkan batasan
nilai yang mencapai nilai LOW adalah di antara 0-1,5 volt. Contoh: digitalRead(13) artinya Arduino akan membaca input yang diberikan
melalui pin 13, hasilnya HIGH atau LOW.
f.
analogWrite(pin, VAL)
Fungsi analogWrite() adalah fungsi yang digunakan untuk menuliskan suatu nilai berupa angka pada sebuah komponen, misalnya LED. Pengguna dapat mengatur seberapa terang cahaya dari lampu LED saat menyala, tergantung pada nilai yang dituliskan. Fungsi ini akan berguna ketika kita mulai bermain dengan sensor, di mana nilai yang terbaca seringkali berupa analog (memiliki banyak nilai, misal 0-1023), bukan digital (hanya memiliki 2 nilai, 0 (LOW) dan 1(HIGH)). Contoh:analogWrite(13, 1023) artinya Arduino akan memberikan instruksi nilai maksimal pada pin 13, sehingga komponen yang terkoneksi di pin 13 akan menyala maksimal (1023).
Fungsi analogWrite() adalah fungsi yang digunakan untuk menuliskan suatu nilai berupa angka pada sebuah komponen, misalnya LED. Pengguna dapat mengatur seberapa terang cahaya dari lampu LED saat menyala, tergantung pada nilai yang dituliskan. Fungsi ini akan berguna ketika kita mulai bermain dengan sensor, di mana nilai yang terbaca seringkali berupa analog (memiliki banyak nilai, misal 0-1023), bukan digital (hanya memiliki 2 nilai, 0 (LOW) dan 1(HIGH)). Contoh:analogWrite(13, 1023) artinya Arduino akan memberikan instruksi nilai maksimal pada pin 13, sehingga komponen yang terkoneksi di pin 13 akan menyala maksimal (1023).
g. analogRead(pin)
Fungsi ini mirip dengan fungsi digitalRead(), yaitu membaca nilai masukan pada suatu pin. Bedanya adalah fungsi analogRead() akan menghasilkan nilai dari 0 hingga 1023, yang merepresentasikan voltase 0 v hingga 5 v. Contoh:analogRead(0) artinya Arduino akan membaca nilai input dari pin 0.
Fungsi ini mirip dengan fungsi digitalRead(), yaitu membaca nilai masukan pada suatu pin. Bedanya adalah fungsi analogRead() akan menghasilkan nilai dari 0 hingga 1023, yang merepresentasikan voltase 0 v hingga 5 v. Contoh:analogRead(0) artinya Arduino akan membaca nilai input dari pin 0.
h. delay(time)
Fungsi ini
digunakan untuk memberikan jeda antar fungsi. Nilai time adalah waktu lamanya jeda
dalam satuan ms (milisekon), di mana 1 detik setara dengan 1.000 milisekon.
i.
Serial.begin(baudrate)
Pengguna dapat melakukan komunikasi serial antara Arduino dengan PC, dengan menggunakan Serial Monitor yang disediakan pada Arduino IDE. Pada Serial Monitor, kita bisa melihat data yang dikirim dari Arduino ke PC. Selain itu, kita juga bisa mengirim data ke Arduino dengan cara mengetikkannya pada textbox di bagian atas Arduino IDE. Untuk memakai serial, yang pertama harus dilakukan adalah melakukan inisiasi dengan menggunakan fungsi Serial.begin(baudrate). Variabel baudrate merupakan rasio modulasi, dan harus dicocokkan dengan baudrate hardware yang akan dikomunikasikan. Contoh: Serial.begin(9600)artinya komunikasi akan berjalan pada rasio modulasi/baudrate 9600.
Pengguna dapat melakukan komunikasi serial antara Arduino dengan PC, dengan menggunakan Serial Monitor yang disediakan pada Arduino IDE. Pada Serial Monitor, kita bisa melihat data yang dikirim dari Arduino ke PC. Selain itu, kita juga bisa mengirim data ke Arduino dengan cara mengetikkannya pada textbox di bagian atas Arduino IDE. Untuk memakai serial, yang pertama harus dilakukan adalah melakukan inisiasi dengan menggunakan fungsi Serial.begin(baudrate). Variabel baudrate merupakan rasio modulasi, dan harus dicocokkan dengan baudrate hardware yang akan dikomunikasikan. Contoh: Serial.begin(9600)artinya komunikasi akan berjalan pada rasio modulasi/baudrate 9600.
j.
Serial.available()
Fungsi ini digunakan untuk mengetes apakah ada input data dari hardware yang disambungkan ke serial port, misalnya dari PC. Fungsi ini akan menghasilkan 1 apabila ada masukan, dan 0 apabila tidak ada masukan.
Fungsi ini digunakan untuk mengetes apakah ada input data dari hardware yang disambungkan ke serial port, misalnya dari PC. Fungsi ini akan menghasilkan 1 apabila ada masukan, dan 0 apabila tidak ada masukan.
k. Serial.read()
Fungsi ini berfungsi untuk membaca karakter pada serial port. Karakter yang dibaca akan disimpan dalam bentuk ASCII (misalnya karakter ‘0’ memiliki representasi ASCII yaitu 48).
Fungsi ini berfungsi untuk membaca karakter pada serial port. Karakter yang dibaca akan disimpan dalam bentuk ASCII (misalnya karakter ‘0’ memiliki representasi ASCII yaitu 48).
l.
Serial.print() dan Serial.println()
Fungsi ini digunakan untuk menuliskan suatu kalimat ke Serial Monitor, tetapi tidak mengirimkan data apapun, alias hanya digunakan untuk memberikan teks visual pada pengguna. Serial.print("text") digunakan untuk menulis "text", sedangkan Serial.println("text") dipakai untuk menuliskan kata "text" dan diakhiri dengan enter (kalimat selanjutnya ada di baris berikutnya).
Fungsi ini digunakan untuk menuliskan suatu kalimat ke Serial Monitor, tetapi tidak mengirimkan data apapun, alias hanya digunakan untuk memberikan teks visual pada pengguna. Serial.print("text") digunakan untuk menulis "text", sedangkan Serial.println("text") dipakai untuk menuliskan kata "text" dan diakhiri dengan enter (kalimat selanjutnya ada di baris berikutnya).
m. Serial.write(VAL)
Untuk mengirimkan data dari arduino ke PC, kita bisa menggunakan fungsiSerial.write(VAL). Nilai VAL adalah data yang ingin dikirimkan dari arduino ke PC, dengan ukuran 1 byte.
Untuk mengirimkan data dari arduino ke PC, kita bisa menggunakan fungsiSerial.write(VAL). Nilai VAL adalah data yang ingin dikirimkan dari arduino ke PC, dengan ukuran 1 byte.
Berikut
adalah contoh program sederhana :
1) #include <iostream.h>
#include <conio.h>
void luas(int &ls, int a, int t)
{ ls = 0.5*a*t;}
main(){
int al,tg,hsl;
cout<<"Alas = ";cin>>al;
cout<<"Tinggi = ";cin>>tg;
luas(hsl,al,tg);
cout<<"Luas Segitiga = "<<hsl;
getch();}
#include <conio.h>
void luas(int &ls, int a, int t)
{ ls = 0.5*a*t;}
main(){
int al,tg,hsl;
cout<<"Alas = ";cin>>al;
cout<<"Tinggi = ";cin>>tg;
luas(hsl,al,tg);
cout<<"Luas Segitiga = "<<hsl;
getch();}
Output Program :
2) const int buttonPin = 3;//
inisialisasi serial dan tombol
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}// melakukan
pengecekan tombol secara berkala,
// dan akan dikirim jika tombol ditekan
void loop()
{
if (digitalRead(buttonPin) == HIGH)
Serial.write('H');
else
Serial.write('L');
delay(1000);
}
2. Array
Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama. Array merupakan konsep yang penting dalam pemrograman, karna array memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks.
Variabel array dideklarasikan dengan mencantumkan tipe dan nama variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat.
a. Contoh program 1 Dimensi :
Output : DANI_HERMAWAN
b. Contoh program 2 Dimensi :
Output
: *DHANI_HERMAWAN*
c. Contoh program 3 Dimensi :
Output : *DANI_HERMAWAN*
3.
Karakter dan String
a.
Operasi Karakter
Fungsi-fungsi pustaka untuk opersai
karakter berada pada file judul ctype.h.
Contoh1
:
#include<stdio.h>
#include<conio.h> //file header
untuk fungsi getche()
#include<ctype.h> //file header
untuk fungsi isspace(c)
#define lagi 1
main() {
int karakter;
do { karakter = getche(); // menerima input
data karakter tanpa enter
if(isspace(karakter)) break; } /*bila yg diinput
berupa spasi, backspace, tab atau
enter maka keluar dari proses looping*/
while(lagi); /*looping
dilakukan selama menerima input*/ }
Mengkonversi
Nilai Karakter
fungsi
:
tolower()
: merubah karakter huruf besar menjadi huruf kecil
toupper()
: merubah karakter huruf kecil menjadi besar
Contoh
:
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
main()
{ char kata = ‘A’,jawab;
do
{ printf(“%c %c\n”, tolower(kata),toupper(‘b’));
printf(“Mau
coba lagi : “);
jawab
= getchar(); }
while(toupper(jawab)
= = ‘Y’ ); }
Ouput
: a B
Mau
coba lagi : y
a
B
Mau
coba lagi : t
b.
Operasi String
Suatu string merupakan array dari
karakter. Nilai suatu string ditulis dengan tanda
petik dua. Suatu nilai string disimpan
di memory dengan diakhiri oleh nilai ‘\0’ (null).
“ABC” disimpan menjadi A B C ‘\0’
Inisialisasi String : char kota[ ] =
{‘C’,’o’,’r’,’v’,’a’,’l’,’l’,’i’,’s’,’\0’};
char kota[10] = “Corvallis” ;
char kota[ ] = “Corvallis” ;
Konstatnta srting, sebagaimana halnya
nama array, diperlakukan oleh kompiler sebagai
sebuah pointer. Maka pernyataan berikut
sama dengan inisialisasi di atas.
char *kota = “CORVALLIS”;
perintah : printf(“%s, %c%c”, kota,
kota[1],kota[2]); Output : CORVALIS, OR
%s kode format untuk kota berarti mencetak
CORVALLIS. %c, kota[1] berarti mencetak
elemen array ke-1 dari kota yaitu ‘O’,
%c,kota[2] berarti mencetak elemen array ke-2 dari
kota yaitu ‘R’.
Seperti halnya Array, String bila tidak
diberi nilai awal maka ukuran karakter harus
ditulis, Misal : char Nama[20];
Atau boleh
ditulis sebagai pointer : char *Nama ;
Fungsi2
standar string terdapat pada file judul string.h
1.
Menyalin string
Fungsi
: strcpy()
Bentuk
: srtcpy(string1,string2). Nilai string2 akan dicopy ke string1.
Contoh
: strcpy(kota, “satu”) maka string satu akan dicopy ke variable kota.
2.
Menghitung panjang string
Fungsi
: strlen()
Contoh
: strlen(“Corvallis”) maka akan dihasilkan nilai 9
3.
menggabungkan string
fungsi
: strcat(string1,string2). Nilai string1 akan digabung dengan string2 dan
disimpan
didalam string1.
Contoh
: char kota[]=”satu”;
strcat(kota,
“dua”) maka kota[ ] = “satudua”
4.
Mencari Nilai karakter di string
Fungsi
: strchr()
Contoh
: char String[ ] =”Abcde”; char *hasil ;
Hasil
= strch(String, ‘B’); printf(“%s”, hasil);
Maka
Hasil akan bernilai “Bcde”
5.
Membandingkan dua nilai string
Fungsi
: strcmp()
Membandingkan
dua nilai string akan menghasilkan nilai integer berupa :
-
> 0 bila sring pertama lebih kecil daripada string kedua
-
0 bila string pertama = string kedua
- < 0 bila
string pertama lebih besar dari string kedua
Contoh
program :
#include
<stdio.h>
#include
“string.h”
int
main( ) {
char
kata1[
] = “Ibu Kota”, *kata2 = “ Jakarta”, data1[ ] ={‘A’,’B’,’c’,’d’,’\0’};
char
data2[
] = “ABCD”,*baru ; int hasil;
printf(“panjang
string kata1 : %d \n”,strlen(kata1); //menghitung panjang “Ibu Kota”
strcat(kata1,kata2);
//mengabung
kata1&kata2 disimpan di kata1
printf(“nilai
string kata1 setelah operasi : %s \n”,kata1);
strcpy(kata2,data1);
//mencopy
string data1 disimpan di kata2
printf(“nilai
string kata2 setelah operasi : %s \n”,kata2);
hasil
= strcmp(data1,data2); //membandingkan data1 dan data2
if
(hasil = = 0) printf(“Data1 sama dengan data2”)
else
if(hasil< 0) printf(“Data1 lebih kecil dari data2”);
else
printf(“Data1 lebih besar dari data2”);
baru
= strchr(data2,’C’); //mencari
karakter’C’ pada data2, hasil disimpan di baru
printf(“\nHasil
mencari karakter C : %s”, baru);
return
0; //nilai balik ke fungsi main }
Output
: panjang
string kata1 : 8
Nilai
string kata1 setelah operasi : Ibu Kota Jakarta
Nilai
string kata2 setelah operasi : ABcd
Data1
lebih besar dari data2
Hasil
mencari karakter C : CD
Nilai
yang tersimpan pada tiap variabl setelah operasi :
kata1=
“Ibu Kota Jakarta” karena menyimpan hasil operasi strcat(kata1,kata2).
kata2
= “Abcd” karena menyimpan hasil opersi strcpy(kata2,data1)
data1
= “Abcd”
data2
= “ABCD”
hasil
= lebih besar dari nol karena karakter ‘c’ lebih besar dari ‘C’
baru
= “CD”
Komentar
Posting Komentar