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).

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.

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.

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.

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).

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).

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.


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();}

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

Postingan populer dari blog ini