Friday, 30 September 2016

STRING BERAKHIRAN NULL - 1.2 MENGISI STRING BERAKHIRAN NULL

Bismillah

Salam dari admin Creative Project. Segala Artikel yang Admin tampilkan disini adalah semata-mata untuk berbagi, semoga bermanfaat bagi kita semua. Mohon maaf apabila terdapat kesalahan yang ada pada blog ini dikarenakan kurangnya ilmu dari admin blog. Mohon dimaklumi bagi para pembaca, karena tak ada gading yang tak retak.

Postingan ini merupakan bagian dari sub-bab pada postingan dengan judul "String" Pada Arduino - Starterdan merupakan pembahasan kedua dari materi String berakhiran null. Pada postingan ini Admin mecoba membahas secara tahap demi tahap mulai dari bentuk umum deklarasi string berakhiran null, kemudian macam-macam bentuk deklarasi string berakhiran null, cara mengisi string berakhiran null pada saat inisialisasi string, lalu cara mengisi string berakhiran null diluar dari inisialisasi string dengan cara per karakter per index array, serta metode mudah pengisian sejumlah krakter kedalam string berakhiran null dengan menggunakan fungsi strcpy.



Inisialisasi / Deklarasi String Berakhiran Null

Pada postingan sebelumnya kita sudah memahami apa itu string berakhiran null serta bagaimana menentukan penampung string. Penampung string berkaitan dengan jumlah karakter yang akan disimpan didalam array. Rumus penampung string adalah jumlah karakter yang akan disimpan (kita anggap sebagai n) ditambah dengan 1 karakter untuk menampung karakter null. Atau jika dituliskan adalah sebagai berikut :

char pengenal [n+1];

Bentuk seperti diatas disebut juga dengan inisialisasi / deklarasi string berakhiran null. Berikut ini contoh inisialisasi string berkahiran null dan mengisinya dengan sebuah kata yakni “ARDUINO”

char pengenal[8]={'A','R','D','U','I','N','O',’\0’};

Pada contoh diatas string berakhiran null yang dibuat bernama pengenal dengan jumlah penampung string adalah sebanyak 8 karakter. Karakter kedelapan yang diisi pada string pengenal adalah berupa karakter null ( \0 ). Selain contoh diatas terdapat beberapa bentuk inisialisasi string berakhiran null. Berikut ini beberapa macam bentuk inisialisasi string berkahiran null :

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

Pada bentuk inisialisasi string berakhiran null yang pertama, isi string Str1 diisi secara lengkap berikut dengan karakter null-nya. Sedangkan pada inisialisasi yang kedua yakni string Str2 karakter null tidak diisi secara langsung. Hal ini memungkinkan saja untuk dilakukan karena karakter null akan diisi secara otomatis oleh compiler. Untuk bentuk inisialisasi string berakhiran null yang kelima yakni Str5 jumlah penampung string melebihi dari jumlah karakter yang ditampung / yang diisi. Hal ini tidak menjadi masalah. Admin sendiri sering menggunakan cara seperti ini karena memudahkan jika kemungkinan pada program selanjutnya akan dilakukan penggantian isi dari string semula, sehingga memungkinkan untuk mengganti dengan string dengan jumlah karakter yang lebih banyak. Namun yang perlu diketahui adalah penampung string yang kosong seperti pada Str5 tetaplah memakan memori, sehingga yang lebih baik adalah memastikan jumlah karakter yang akan disimpan dan membuat penampung string sesuai dengan jumlah yang dibutuhkan.

Selanjutnya pada inisialisasi string berakhiran null yang keenam yakni Str6 jumlah penampung string tidak diisi, hal ini juga memungkinkan untuk dilakukan karena compiler secara langsung membaca jumlah karakter yang diisi dan membuat array sesuai dengan jumlah karakter tersebut dengan ditambah sebuah karakter null. Inisialisasi string yang keempat adalah bentuk inisialisasi string berakhiran null dengan tidak langsung memberikan isi kepada string yang dibuat pada saat inisialisasi. Dengan kata lain kita menyiapkan sebuah string berakhiran null dalam kondisi kosong dan siap untuk diisi. Selain dengan beberapa cara seperti diatas terdapat cara lain untuk mengisi string berakhiran null yakni dengan menggunakan fungsi strcpy.

Berikut ini contoh program string berakhiran null dan mengisinya dengan kata berupa arduino. Isi dari string berakhiran null akan ditampilkan pada serial monitor.


char Str1[8] = {'A', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str2[8] = {'a', 'R', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = "arDuino";
char Str4[15] = "ardUino";
char Str5[ ] = "arduINO";

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

void loop() {
  Serial.println("Contoh Program Inisialisasi String Berkahiran Null");
  
  Serial.print("isi string Str1 : ");
  Serial.println(Str1); // tampilkan ke serial monitor isi Str1
  
  Serial.print("isi string Str2 : ");
  Serial.println(Str2); // tampilkan ke serial monitor isi Str2
  
  Serial.print("isi string Str3 : ");
  Serial.println(Str3); // tampilkan ke serial monitor isi Str3
  
  Serial.print("isi string Str4 : ");
  Serial.println(Str4); // tampilkan ke serial monitor isi Str4
  
  Serial.print("isi string Str5 : ");
  Serial.println(Str5); // tampilkan ke serial monitor isi Str5
  
  for(;;){};

}



Pada contoh diatas isi string yang dibuat cukup pendek. Bagaimana jika ingin membuat string berakhiran null dengan isi yang cukup panjang. Sebagai contoh kita akan mengisi string berakhiran null dengan sebuah kalimat yakni “Saya membeli Arduino Uno dan Mega di toko Online”. Bagaimanakah cara membuat inisialisasi string berakhiran null-nya. Perhatikan contoh program dibawah ini.


char data1[]="Saya membeli Arduino Uno dan Mega di toko Online";
char data2[]= "Saya membeli" 
              "_Arduino Uno dan Mega" 
              "_di toko online";
void setup() {
  Serial.begin(9600);

}

void loop() {
  Serial.println("Contoh Program String Berakhiran Null dengan isi yang panjang");
  
  Serial.print("String 1 isinya : ");
  Serial.println(data1);
  
  Serial.print("String 2 isinya : ");
  Serial.println(data2);
  
  for(;;){}

}



Pada contoh program diatas jumlah penampung string dibiarkan kosong. Untuk mengisi string berakhiran null dengan jumlah karakter yang banyak, cara seperti ini memang lebih diutamakan karena kita tidak perlu repot untuk menghitung jumlah karakter yang akan diisi. Seperti yang sudah disebutkan diatas secara otomatis compiler akan menghitung jumlah karakter yang diisi dan membuat sebuah array dengan jumlah elemen sebanyak jumlah karakter yang dibaca dan ditambah satu elemen untuk karakter null. Kemudian perhatikan bentuk deklarasi untuk char data2[], perhatikan cara mengisi string data2 tersebut. Cara mengisi string tersebut digunakan untuk mempermudah penulisan jika isi string yang dibuat terlalu panjang. Pada bentuk inisialisasi yang pertama yakni data1[], string yang diisi akan memanjang ke sebelah kanan program. Untuk mempermudah penulisan bisa digunakan bentuk deklarasi yang kedua. Dengan cara ini maka penulisan isi program dibuat menjadi urutan kebawah.



Mengisikan String Berakhiran Null Dengan Fungsi strcpy( )

Beberapa contoh program string berakhiran null pada penjelasan sebelumnya, karakter yang diisi pada string dilakukan secara langusng pada saat inisialisasi. Lalu bagaimana jika pengisian string dilakukan pada program utama atau pengisian string dilakukan diluar dari inisialisasi program. Perhatikan contoh program berikut yang digunakan untuk mengisi string diluar dari inisialisasi program.


char data[4]; // inisialisasi progam string berakhiran null tanpa memberikan isi string

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  data[0]='u';
  data[1]='n';
  data[2]='o';
 
  Serial.print(data);
  
  for(;;){}
  
}



Pada contoh program string berakhiran null diatas kita menyiapkan string kosong dengan nama data dan dengan jumlah penampung string sebanyak 4. Perhatikan bagian inisialisasi program. Hal yang perlu diperhatikan adalah jumlah penampung string harus dipastikan nilainya. Pada contoh program sebelumnya nilai penampung string ini bisa dikosongkan, dan akan diisi secara otomatis oleh compiler. Namun Cara tersebut hanya bisa dilakukan jika isi string langusng diberikan pada saat inisialisasi program. Jika pada saat inisialisasi program penampung string dikosongkan dan isi string tidak diberikan maka akan dibaca error oleh compiler. Untuk hal seperti inilah digunakan rumus penampung string jika string diisi diluar dari bagian inisialisasi program yakni menghitung jumlah karakter yang akan dimasukkan kedalam string ditambah satu karakter null.

Perhatikan pada bagian program utama (void loop), untuk memberikan isi ke dalam string berakhiran null maka harus dilakukan dengan cara “per karakter per indeks array”.  Perhatikan gambar berikut ini. 


/*baris program*/

  data[0]='u';
  data[1]='n';
  data[2]='o';

Gambar tersebut memiliki relasi terhadap baris program tersebut. Seperti yang sudah dikatakan pada penjelasan sebelumnya, pengisian karakter dilakukan dengan cara per karakter per index array. Makna baris program data[0]=’u’ adalah kita memasukkan karakter ‘u’ ke dalam array dengan index 0. Perlu diingat index array selalu dimulai dari 0 dan bukan 1. Selanjutnya baris progam data[1]=’n’ berarti memasukkan karakter ‘n’ kedalam array dengan index 1. Dan data[2]=’o’ berarti memasukkan karakter ‘o’ kedalam array dengan index 2. Karakter null akan diisi secara otomatis oleh compiler saat program melakukan kompilasi. Boleh saja jika ingin mengisi sendiri karakter null tersebut, maka bentuk programnya adalah data[3]=’\0’.


Pada arduino pengolahan string berakhiran null dengan maksud untuk memasukkan sejumlah  karakter kedalam sebuah string seperti pada contoh program diatas telah dipermudah operasinya dengan menggunakan fungsi strcpy. Kelebihan arduino jika dibandingkan dengan platform sejenis memang meberikan kemudahan baik dalam hal hardware maupun software, (klik untuk melihat sejarah perkembangan arduino). Dengan pengembangan yang dilakukan secara global (karena arduino bersifat open source) menjadikan arduino memiliki kesempatan berkembang seperti apa yang dibutuhkan oleh semua orang, terutama bagi para pemula yang memiliki kesempatan lebih untuk memulai membuat sebuah proyek elektronikanya sendiri. Adapun bentuk deklarasi dari penggunaan fungsi strcpy adalah sebagai berikut :

strcpy(nama string, “isi karakter”);


Perhatikan contoh sketch penggunaan fungsi strcpy untuk memasukkan sejumlah karakter kedalam string berakhiran null. 


char data[12]; // inisialisasi progam string berakhiran null tanpa memberikan isi string

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly
  strcpy(data,"Arduino UNO");
  Serial.print(data);
  
  for(;;){}
  
}



Hal yang harus diperhatikan adalah jumlah karakter yang disimpan kedalam char data[12tidak boleh melebihi jumlah penampung string-nya. Pada sketch diatas, kata ”Arduino UNO” memiliki banyak karakter sejumlah 11 karakter (spasi juga dihitung sebagai sebuah karakter), ditambah dengan sebuah karakter null maka jumlah seluruh karakter yang akan dismpan adalah sebanyak 12 karakter. Jika jumlah penampung string kurang dari 12 maka tampilan pada serial monitor adalah kosong, tidak menampilkan apa-apa. Pada pemrograman yang lebih kompleks hendaknya berhati-hati dengan jumlah penampung string tersebut sehingga program yang dibuat dapat berjalan dengan baik.


Sekian pembahasan materi kali ini. Semoga bermanfaat bagi pembaca.
Wasallam.




Daftar Materi Tutorial “String Pada Arduino”, Klik Disini
Tutorial Selanjutnya :  “Mengolah String Pada String Berkahiran NULL”




Artikel & Tutorial Terkait :  
               BUKU PINTAR PEMROGRAMAN ARDUINO
                 https://www.arduino.cc/en/Reference/String





1 comment:

  1. The King Casino Resort - Hertzaman
    Find the 스포츠 토토 사이트 perfect novcasino place to stay, play, and unwind at Harrah's Resort Southern California. Get herzamanindir.com/ your points now! 출장안마

    ReplyDelete

Adbox