array/larik
DESCRIPTION
ARRAY/LARIK. ARRAY/LARIK. Array adalah kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Nilai-nilai data itu disebut dengan elemen. Letak atau urutan dari suatu elemen array ditunjukkan oleh suatu index/ subscript. - PowerPoint PPT PresentationTRANSCRIPT
ARRAY/LARIK
ARRAY/LARIK Array adalah kumpulan dari nilai-nilai data
yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama.
Nilai-nilai data itu disebut dengan elemen. Letak atau urutan dari suatu elemen array
ditunjukkan oleh suatu index/subscript. Untuk bahasa C, elemen pertama dari suatu
array dimulai dari indeks nol. Suatu array dapat ber-dimensi satu atau
lebih.
ARRAY 1 DIMENSI Bentuk umum deklarasi array 1 dimensi:
tipe_data nama_variabel[n];Dimana n adalah jumlah elemen atau ukuran array
Contoh:int x[3]={5,3,7};
Artinya Array x bertipe integer, mempunyai 3 elemen yaitu x[0], x[1] dan x[2]x[0] bernilai 5, x[1] bernilai 3, x[2] bernilai 7
Beda array dengan varibel biasa:Sebuah larik/array dapat mempunyai sejumlah nilai, sedang sebuah varibel biasa hanya dihubungkan dengan sebuah nilai saja
Dengan variabel biasa Dengan array
ARRAY 2 DIMENSI
Mempunyai elemen BARIS & KOLOM Dapat dipakai untuk representasi
sebuah MATRIK Struktur data untuk rekapitulasi
informasi berdasar baris dan kolom TABEL, misal: penjualan barang
Memakai NESTED LOOPING dalam operasinya
ARRAY 2 DIMENSI Bentuk umum penulisan
tipe_data variabel[i] [j];Dimana i dan j adalah ukuran dari array.i menunjukkan jml baris, j menunjukkan jml kolom
Jumlah data yang bisa disimpan oleh array 2 dimensi adalah i x j.
Contoh:int x[2][4]={8,5,9,8,8,2,1,0}; merepresentsikan matriks dengan 2 baris dan 4 kolom
x= 8 5 9 8 8 2 1 0
Array Berdimensi Banyak
Bentuk umum deklarasi array dimensi satu:tipe_data nama_var[i][j]..[n];
dimana i, j, n adalah ukuran dari array.
Contoh deklarasi: int nilai[4][2][7][21];
Array Tak Berukuran Array dapat dideklarasikan tanpa memberi
ukuran (jumlah data dalam array). Dengan syarat: Harus langsung diinisialisasi. Hanya elemen pertama yang boleh tidak
berukuran. Contoh:
int x[] = {32, 45, 67,21};int x[][2]={{9,7},{4,2},{8,3}};
STRING
STRING String merupakan bentuk data yang
digunakan untuk menampung dan memanipulasi data teks.
Pada C, string bukan merupakan satu tipe data tersendiri, melainkan merupakan array dari karakter.
Contoh:char mystring[35];char myname[] = “Hello World”;
Konstanta String
Konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda.
Contoh:#define abjad “ABeCe”#define judul “Stringku”
Penggunaan Memory
Komposisi penyimpanan string dalam memori:
Setiap karakter akan menempati memori sebesar 1 byte
Byte terakhir otomatis akan berisi karakter NULL (\0)
Variable String
Variabel string adalah variabel yang dipakai utuk menyimpan nilai string.
Variabel string sebenarnya merupakan variabel array bertipe data char.
string = array of char Contoh:
char nama[35];char alamat[60];
Inisialisasi Variabel String Seperti halnya variabel tipe lain, suatu
variabel string dapat diinisialisasi dengan elemen terakhirnya berupa karakter NULL.
Contoh:char name[]={‘J',’o',‘y',’\0’};char name[]= “Joy”;
Penugasan atau pemberian nilai ke variabel string seperti dibawah ini tidak diperkenankanname = “RINI”;
Array String
suatu string dapat dibentuk dari array karakter berdimensi satu
Dengan cara yang sama, berarti array string dimensi satu dapat dibentuk dari array karakter dimensi dua. Array string dimensi dua dapat dibentuk dari array karakter dimensi tiga dan seterusnya.
Array String Contoh berikut menunjukkan deklarasi suatu Array string
dimensi satu yang dibentuk dari array karakter dimensi dua. (perhatikan bahwa deklarasi ini menggunakan tipe char)
#include <stdio.h>main(){
int i,j;char Hari[7][10]={"Minggu","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu"};
for(i=0;i<7;i++){ for(j=0;j<10;j++)
printf("%c",Hari[i][j]);printf("\n");}
}
Output String Untuk menampilkan isi variabel string ke layar
monitor bisa menggunakan perintah puts() atau printf().
Fungsi puts() akan menampilkan isi dari var_string dan secara otomatis menambahkan karakter '\n' di akhir string
Sedangkan fungsi printf() akan menampilkan isi variabel string tanpa memberikan tambahan '\n‘.
Contoh:puts(nama);printf (“%s”, nama);
Input String Untuk memberikan nilai string dari
keyboard dapat menggunakan perintah gets() atau scanf().
Contoh:gets(nama);scanf(“%s”, nama);
Keterangan: nama adalah variabel bertipe array of
char. Didepan nama tidak perlu ada tanda &
(operator alamat). Kalau memakai scanf(), data string
masukan tidak boleh mengandung spasi.
Contoh #1#include <stdio.h>main(){
char nama[35], kota[15];
printf("Masukkan nama Anda : ");gets(nama);printf("Masukkan kota Anda: ");scanf("%s", kota);printf("\nHallo ");puts(nama);printf("Rumahmu %s ya...\n“,kota);printf("Bye.. Bye..\n");
}
Mengakses String
Variabel string merupakan bentuk khusus dari array bertipe char
Elemen dari variabel string dapat diakses seperti halnya pengaksesan elemen pada array.
Contoh:printf(“%c”, nama[2]);
Fungsi-Fungsi Pada String strcpy(): untuk menyalin nilai string. strlen(): untuk mengetahui panjang
nilai string. strcmp(): untuk membandingkan dua
nilai string. strcat(): untuk menggabung nilai
string. strchr(): untuk mencari nilai karakter
dalam string.
Contoh #2#include <stdio.h>
main(){
char str01[] = "Piala"; char str02[] = "Pialang"; char str03[20];
printf("Panjang str01 = %d karakter.\n", strlen(str01));
strcpy(str03, "Ini string ke 3"); printf("Isi dari str03 = %s.\n", str03);
printf("str01 VS str02 = %d\n", strcmp(str01, str02));
strcat(str01, str02); printf("Isi str01 sekarang = %s.\n", str01); }
STRUCT
STRUCT DEFINISI
User defined data type Berisi beberapa variabel yang bisa
berbeda tipenya masing-masing disebut elemen
Mempunyai nama yang sama Mirip representasi sebuah object beserta
properties-nya. Contoh: struct MHS punya elemen
untuk NPM, Nama dan Alamat.
STRUCT DEKLARASISyntax:
struct nama_struct {tipe_data_1 nama_var_1;tipe_data_2 nama_var_2;tipe_data_3 nama_var_3;……
};
Contoh:struct barang {
char Kode[5];char Nama[30];int Unit;float Harga;
}
STRUCT
CARA PENGAKSESAN Untuk mengakses tiap elemen di dalam sebuah struct digunakan operator titik (.)Syntax: nama_var_struct . nama_var_elemen;
Contoh:
NESTED STRUCT Sebuah kondisi dimana di dalam sebuah struct
terdapat tipe data berupa struct lagi.
Contoh
STRUCT OF ARRAY Sebuah struct yang di dalamnya terdapat
variable/ elemen yang bertipe array.
ARRAY OF STRUCT Sebuah array yang setiap data elemennya
bertipe struct. Umumnya dipakai untuk menyimpan object data yang terstruktur, misal: data mahasiswa, karyawan, buku, barang, dsb.
POINTER
POINTERPointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Sebagai contoh, px adalah variabel pointer dan x adalah variabel yang ditunjuk oleh px. Kalau x berada pada alamat memori 1000, maka px akan berisi 1000.
Contoh#include <stdio.h>Main(){char *Alamat_X, X;X=‘J’;Alamat_X=&X;printf(“Nilai varibel X, berada di alamat &p, Alamat_X);}
‘J’
Alamat Memori Nilai yg disimpan
FFDB
FFDC
FFDD
FFDE
FFDD
Alamat_X
Deklarasi Pointer
Contoh pertama menyatakan bahwa px adalah variabel pointer yang menunjuk ke suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah variabel pointer yang menunjuk ke data bertipe char.
Operator pointer
Operator Pointer ada dua, yaitu : Operator &
· Operator & bersifat unary (hanya memerlukan satu operand saja).
· Operator & menghasilkan alamat dari operandnya.
Operator *· Operator * bersifat unary (hanya memerlukan
satu operand saja).· Operator * menghasilkan nilai yang berada pada
sebuah alamat.
Mengakses Isi Suatu Variabel Melalui Pointer
Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh pointer tersebut dapat diakses melalui variabel itu sendiri (pengaksesan langsung) ataupun melalui pointer (pengaksesan tak langsung). Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection (tak langsung) berupa simbol *(bersifat unary).Contoh penerapan operator * yaitu :*px yang menyatakan “isi atau nilai variabel/data yang ditunjuk oleh pointer px” . Sebagai contoh jika y bertipe int, maka sesudah dua pernyataan berikut px = &x; y = *px;
Contoh penggunaan operator *
OutputAlamat x = 0012FF78Isi px = 0012FF78Isi x = 87Nilai yang ditunjuk oleh px = 87Nilai y = 87
Pada program di atas, dua pernyataanpx = &x;y = *px;sebenarnya dapat digantikan dengan sebuah pernyataan berupay = x;Seandainya pada program di atas tidak terdapat pernyataanpx = &x;namun terdapat pernyataany = *px;maka y tidaklah berisi nilai x, sebab px belum diatur agar menunjuk ke variabel x. Halseperti ini harap diperhatikan. Kalau program melibatkan pointer, dan pointer belumdiinisialisasi, ada kemungkinan akan terjadi masalah yang dinamakan “bug” yang bisamengakibatkan komputer tidak dapat dikendalikan (hang).Selain itu tipe variabel pointer dan tipe data yang ditunjuk harus sejenis. Bila tidaksejenis maka akan terjadi hasil yang tidak diinginkan.
Contoh lain#include <stdio.h>main(){int *pu;int nu;int u = 1234;pu = &u;nu = *pu;printf("Alamat dari u = %p\n", &u);printf("Isi pu = %p\n", pu);printf("Isi u = %d\n", u);printf("Nilai yang ditunjuk oleh pu = %d\n", *pu);printf("Nilai nu = %d\n", nu);}
Pada contoh di atas, saat penugasan pu = &u; maka pu akan menunjuk data berukuran 4 byte (tipe float) sekalipun u berukuran 2 byte (tipe int). Oleh karena itu, pernyataan nu = *pu;tidak akan membuat nu berisi nilai u.