Rabu, 01 April 2020

Array dan String

Array

Array merupakan struktur data yang digunakan untuk menyimpan sekumpulan data dalam satu tempat. Setiap data dalam Array memiliki indeks, sehingga kita akan mudah memprosesnya.
Array
Indeks array selalu dimulai dari angka nol (0). Pada teori struktur data ukuran array akan bergantung dari banyaknya data yang ditampung di dalamnya.
Ada beberapa hal yang perlu anda ketahu tentang array:
  • Nomor index pada Array dimulai dari nol (0).
  • Array hanya mampu menyimpan data dengan tipe yang sama.
  • Artinya, semua isi array memiliki tipe data sama.

Macam-Macam Array

Ada dua jenis tipe data array:
  • Array 1 dimensi
  • Array 2 dimensi (multi dimensi)
Jika array satu dimensi kita asumsikan sebagai deretan data maka array berdimensi dua mewakili suatu bentuk tabel atau matrik dimana indeks yang pertama menunjukkan baris kemudian indeks yang kedua menunjukkan kolom dari tabel atau matriks.
Berikut bentuk umumnya:

Nama_larik : Array [indeks_baris,Indeks_Kolom] of Tipe_Array;


Array 2 dimensi adalah kumpulan (sekelompok) data yang memiliki nama variabel dan tipe data yang sama yang mana elemen-nya bisa diakses dengan 2 buah indeks (baris dan kolom). Ini adalah format deklarasi variabel Array 2 dimensi dalam sebuah algoritma:

var nama_variable:array[index_baris][index_kolom] of tipe_data

Cara Membuat Array pada C
Pada pemrograman C, array dapat kita buat dengan cara seperti ini.
// membuat array kosong dengan tipe data integer dan panjang 10
int nama_array[10];

// membuat array dengan langsung diisi
int nama_arr[3] = {0, 3, 2}
Cara membaut array hampir sama seperti cara membuat variabel biasa. Bedanya… pada array kita harus menentukan panjangnya.

Cara Membuat Array pada C

Cara Mengambil Data dari Array

Seperti yang sudah kita ketahaui. Array akan menyimpan sekumpulan data dan memberinya nomer indeks agar mudah diakses. Indeks array selalu dimauli dari nol 0Misalkan kita punya array seperti ini:

char huruf[5] = {'a', 'b', 'c', 'd', 'e'};

Jawabannya:

huruf[2];

Mengapa bukan huruf[3]Ingat: indeks array selalu dimulai dari nol. Biar lebih jelas, mari kita coba dalam program:

#include <stdio.h>

void main(){
    char huruf[5] = {'a', 'b', 'c', 'd', 'e'};

    printf("Huruf: %c\n", huruf[2]);
}

Hasilnya:

Mengambil data dari array

Mengisi Ulang Data pada Array

Data pada array dapat kita isi ulang dengan cara seperti ini:

huruf[2] = 'z';

Maka isi array huruf pada indeks ke-2 akan bernilai 'z'Kalau tidak percaya… Kamu bisa coba buktikan sendiri.

#include <stdio.h>

void main(){
    // isi awal array
    char huruf[5] = {'a', 'b', 'c', 'd', 'e'};

    // mengubah isi array
    huruf[2] = 'z';

    // mencetak isi array
    printf("Huruf: %c\n", huruf[2]);
}

Hasil outputnya:

Huruf: z


Menggunakan Perulangan dan Array

Pada contoh di atas, kita menggunakan perintah printf() secara berulang untuk mencetak semua isi array.

printf("Nilai ke-1: %d\n", nilai[0]);
printf("Nilai ke-2: %d\n", nilai[1]);
printf("Nilai ke-3: %d\n", nilai[2]);
printf("Nilai ke-4: %d\n", nilai[3]);
printf("Nilai ke-5: %d\n", nilai[4]);

Kalau isi array-nya ada ribuan, apa kamu akan sanggup menulis ini berulang-ulang? Tentu saja tidak! Karena itu, kita bisa memanfaatkan perulangan untuk mencetaknya. Contoh:

#include <stdio.h>

void main(){
    // membuat array kosong
    int nilai[5];

    // mengisi array
    nilai[0] = 32;
    nilai[1] = 42;
    nilai[2] = 76;
    nilai[3] = 31;
    nilai[4] = 57;

    // mencetak isi array dengan perulangan
    for(int i; i < 5; i++){
        printf("Nilai ke-1: %d\n", nilai[i]);
    }
}

Hasilnya:

Mengisi data ke array

Jauh lebih sederhana ‘kan… Tapi ada yang masih kurang. Pada perulangan di atas kita memberikan batas maksimal secara manual, yaitu: i < 5Nilai 5 seharusnya diganti dengan ukuran atau jumlah isi array. Sehingga akan menjadi seperti ini:

int length = sizeof(nilai) / sizeof(*nilai);
for (int i = 0; i < length; i++){
    printf("Nilai ke-1: %d\n", nilai[i]);
}

Mengambil Panjang Array

Pada contoh di atas, kita menggunakan fungsi sizeof() untuk mengambil panajang atau ukuran array. Fungsi sizeof() sebenarnya akan mengambil ukuran memori dari array. Misalkan saya punya array seperti ini:

int nilai[2] = {1,2};

Isi array-nya berupa integer, tipe data integer memiliki ukuran 4 byte dalam memori. Maka ukuran array tersebut adalah 8 byte. Lalu bagaimana cara mendapatkan banyaknya isi array? Bahasa pemrograman C belum memiliki fungsi khusus untuk mengambil banyaknya isi array. Tapi kita bisa mengambil panjang array dengan membagi besar array dan ukuran pointernyaContoh:

int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

/* ukuran array dalam byte */
int size = sizeof(array);

/* banyaknya isi array `array` */
int length = sizeof(array) / sizeof(*array); 

Mari kita coba…

#include <stdio.h>

void main(){
    // membuat array
    int nilai[5] = {33, 22, 11, 44, 21};

    //  mengambil banyaknya isi array
    int length = sizeof(nilai) / sizeof(*nilai);

    printf("Banyaknya isi array nilai: %d\n", length);
}

Hasilnya:

Banyaknya isi data pada array


String

string adalah tipe data yang menampung kumpulan karakter, seperti “aku”, “kamu” atau “Duniailkom”. Sebuah kalimat juga terhitung sebagai tipe data string, seperti “Saya sedang belajar bahasa C di Duniailkom”. Di dalam bahasa pemrograman yang lebih modern, string biasanya menjadi tipe data bawaan. Misalnya di bahasa PHP atau JavaScript,  tipe string langsung tersedia sebagaimana tipe data lain seperti integerfloat atau charNamun bahasa pemrograman C tidak memiliki tipe data string secara langsung. String di dalam bahasa C adalah array dari tipe data char.

Fungsi

Fungsi String adalah  deretan karakter. String juga merupakan salah satu kelas dasar yang disediakan oleh bahasa C /. C++. Jadi, string sendiarai adalah sebuah penggunaantipe data char berkelompok tipe data. String juga merupakan Array dari tipe data char.
String juga dibagi beberapa bentuk sesuai keperluan Operasi String.

1. STRCPY()
      Fungsi ini digunakan untuk menyalin String asal ke variabel string tujuan dengan syarat String tujuan harus memeiliki tipe data dan ukuran yang sama dengan String asal.

 contoh : STRCPY(nama_variabel, nama_variabel2)

2. STRLEN()
      Fungsi Strlen banyak digunakan untuk memeperoleh banyaknya karakter dalam String (Header harus String.h).

contoh : STRLEN(string)

3. STRCAT()
      Fungsi Strcat digunakan untuk menambahkan string sumber kebagian akhir dari string tujuan.

contoh : STRCAT(tujuan, sumber)

4. STRUPR()
      Strupr digunakan untuk membuat String sumber menjadi berbentuk huruf Kapital.

contoh : STRUPR(string)

5. STRLWR()
      Strlwr ini merupakan kebalikan dari Fungsi Strupr. Strlwr ini membuat string sumber menjadi huruf kecil.

contoh : STRLWR(string)

6. STRREV()
      Nah untuk yang ini digunakan untuk membalikan letak huruf sumber menjadi letaknya terbalik.

 contoh : STRREV(string).

Contoh Program dari String ini, dibawah ini contohnya :

/**/Contoh Program String Strlen/**/
#include "stdio.h"
#include "conio.h" 
#include "string.h" 
main() {

char huruf[30]; 
char pindah[30];

printf("Masukkan Kata = "); gets(huruf);
strcpy(pindah, huruf);

printf("Pindahnya = %s\n",pindah);
printf("Panjang Kata = %i",strlen(huruf));

}
/**/Contoh Lainnya/**/
#include "stdio.h" 
#include "conio.h" 
#include "string.h" 
main() { 

char eko1[25]; 
char eko2[25]; 

printf(" Masukkan Kata - 1 = "); gets( eko1 ); 
printf(" Masukkan Kata - 2 = "); gets( eko2 );

strcat( eko1, eko2 ); 
printf("\n Hasil Penggabungan = %s\n", eko1);

printf("\n Jika diubah menjadi huruf kapital semua\n"); 
printf(" % s\n " ,strupr( eko1 ));

printf("\n Jika diubah menjadi huruf kecil semua\n"); 
printf("%s", strlwr( eko1 ));

}


Character Function Library

Salah satu fungsi library yang telah diperkenalkan yaitu cout yaitu untuk mencetak ke layar monitor. Fungsi dikelompokkan menurut jenis dan sifatnya dan disimpan didalam sebuah file yang berekstensi .h. Sebagai contoh fungsi yang digunakan untuk mencetak ke layar monitor (cout) disimpan pada file iostream.h.

1. Library iostream.h
Standard Input / Output Streams Library.
Elemen iostream library (char instantion) :

Classes :
| cin | cout | cerr | clog |

Types :
| fpos : | streamoff | streampos | streamsize |

Manipulators :
| boolalpha | dec | endl | ends | fixed | flush | hex | internal | left | noboolalpha | noshowbase | noshowpoint | noshowpos | noskipws | nounitbuf | nouppercase | oct | resetiosflags | right | scientific | setbase | setfill | setiosflags | setprecision | setw | showbase | showpoint | showpos | skipws | unitbuf | uppercase | ws |

Objek iostream mewarisi semua anggota yaitu istream dan ostream, sehingga mampu melakukan kedua operasi input dan output.


2. Library stdio.h
Library stdio.h adalah library pada bahasa C yang digunakan untuk operasi input output (stdio = Standard Input and Output). Tanpa menggunakan library ini maka perintah - perintah input/output tidak dapat dieksekusi atau dijalankan.

Library Functions :
| clearr() | fclose() | fccloseall() | fdopen() | fflush() | fgetc() | fgetchar() | fgetpos() | fgets() | flushall() | fopen() | fprint() | fputc() | fputchar() | fputs() | fread() | free() | freopen() | fscan() | fseek() | fsetpos() | ftell() | fwrite() | gets() | getw() | perror() | printf() | puts() | putw() | rename() | rewind() | scanf() | unlink() |

Library Macroes :
 feof(f) | ferror(f) | fileno(f) | getch(f) | getchar(f) | putchar(f) | remove(path) |

Contoh penggunaan library stdio.h dengan library functions printf() dalam program :
#include <stdio.h>
int main(){
printf("Hello SMKN 9 MALANG!\n");
printf("Selamat Belajar Pemrograman C++.");
return 0;
}

Contoh penggunaan library stdio.h dengan library functions puts() dalam program :
#include <stdio.h>
#include <conio.h>
using namespace std;
int main(){
char x[20]="SMKN 9 MALANG";
puts("Sekolah Siap Kerja Hanya di ");
puts(x);
return 0;
}


3. Library math.h
Library math.h merupakan sebuah library yang disediakan untuk melakukan perhitungan secara matematika.

Library Functions :
| abs() | acosh() | asin() | atan() | atan2() | atof() | ceil() | cos() | cosh() | exp() | fabs() | floor() | fmod() | labs() | ldexp() | log() | log10() | pow() | sin() | sinh() | sqrt() | tan() | tanh() |

Contoh penggunaan library math.h dengan library functions cos() dan sin() dalam program :
//Penggunaan library math.h
#include <iostream.h>
#include <math.h>
using namespace std;
int main(){
    double kecepatan, jarak, sudut;
    kecepatan=20;
    sudut=25;
jarak = 2*kecepatan*kecepatan*sin(sudut*3.14/180)*cos(sudut*3.14/180)/9.8;
cout<<"Jarak = "<<jarak;
    cout<<"\n";
    system("Pause");
    return 0;
}


4. Library stdlib.h
Library stdlib.h merupakan library yang hampir sama dengan library math.h, namun isi dari library stdlib.h berbeda dengan library math.h yaitu :

Library Functions :
| abs() | atof() | atoi() | atol() | div() | exit() | free() | ldiv() | malloc() | rand() | srand() | system() |

Library Macroes :
| abs(x) | atoi(s) | random(num) | randomize() |

Contoh penggunaan library stdlib.h dengan library functions atoi() dalam program :
//Penggunaan library stdlib.h
#include <iostream.h>
#include <stdlib.h>
using namespace std;
int main(){
    char karakter[8]="12.3AB";
    int nilai;
    nilai=atoi(karakter);
    cout<<nilai<<endl;
    system("Pause");
    return 0;
} 


5. Library string.h
Suatu library pada bahasa C yang digunakan untuk memberikan nilai suatu karakter string.

Librari Functions :
| strcpy() | strcat() | strchr() | strcmp() | strlen() |

Contoh penggunaan library string.h dengan library functions strcpy() dalam program :
//Penggunaan library string.h
#include <iostream.h>
#include <string.h>
using namespace std;
int main(){
    char info[30];
strcpy(info, "info: SMKN 9 MALANG");
cout<<info;
cout<<"\n";
system("Pause");
return 0;
}


6. Library conio.h

Library Functions :
| clrscr() | getch() | getche() | gotoxy() | khbit() | putch() |

Contoh penggunaan library conio.h dengan library funtions getche() atau getch() dalam program :
//Penggunaan library conio.h
#include <iostream.h>
#include <conio.h>
using namespace std;
int main(){
cout<<"Hai, Selamat datang siswa baru SMKN 9 MALANG \n";
getche();
}


7. Library io.h

Library Functions :
| access() | _close() | close() | _creat() | eof() | filelenght() | _open() | open() | _read() | read() | _write() | write() |



8. Library ctype.h

Library Functions :
| stlower() | toupper() |

Library Macroes :
| isalnum( c) | isalpha( c) | isascii( c) | iscntrl( c) | isdigit( c) | isgraph( c) | islower( c) | isprint( c) | ispunct( c) | isspace( c) | isupper( c) | isxdigit( c) | toascii( c) | _tolower( c) | _toupper( c) 



Command Line Argument

Command-line Arguments, ialah argumen(nilai) yang kita beri melalui sistem operasi seperti Linux ke sebuah program.
Pertama-tama kita harus mengetahui dulu deklarasi parameter pada fungsi main(). Biasanya kita menulis seperti ini.

int main()
{

}
Untuk dapat menggunakan command-line arguments, kita mendeklarasikan fungsi main() seperti ini.
int main(int argc, char* argv[])
{

}

Contoh program sederhana.

#include <stdio.h>

int main(int argc, char* argv[])
{
   for (int i = 0; i < argc; i++)
   {
    printf("argv[%d]: %s\n", i, argv[i]);
   }

   return 0;
}


Program tersebut kita compile melalui terminal(ingat? Pemrograman C di Linux), lalu kemudian di-eksekusi seperti biasa dengan command ini.

./nama_program

Misalnya saya menamai file program tersebut cmdline.c, maka di-eksekusi seperti ini.
./cmdline

Dan outputnya akan seperti ini.



Misal saya beri nilai pada saat eksekusi melalui terminal seperti ini.
./cmdline azhary arliansyah

Maka outputnya akan seperti ini.


Bisa kita analisis, nilai variabel argc adalah jumlah kata yang kita ketik pada terminal(dalam hal ini 3, yaitu ./cmdline, azhary, arliansyah). Lalu kata(string) tersebut disimpan pada variabel array argv.



Sumber : https://www.petanikode.com/c-array/







Tidak ada komentar:

Posting Komentar