450 likes | 852 Views
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.
E N D
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 array Dengan variabel biasa
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 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: • namaadalah 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 • 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 • DEKLARASI Syntax: 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 Pointer (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); } Alamat Memori Nilai yg disimpan 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;
Output Alamat x = 0012FF78 Isi px = 0012FF78 Isi x = 87 Nilai yang ditunjuk oleh px = 87 Nilai y = 87 Pada program di atas, dua pernyataan px = &x; y = *px; sebenarnya dapat digantikan dengan sebuah pernyataan berupa y = x; Seandainya pada program di atas tidak terdapat pernyataan px = &x; namun terdapat pernyataan y = *px; maka y tidaklah berisi nilai x, sebab px belum diatur agar menunjuk ke variabel x. Hal seperti ini harap diperhatikan. Kalau program melibatkan pointer, dan pointer belum diinisialisasi, ada kemungkinan akan terjadi masalah yang dinamakan “bug” yang bisa mengakibatkan komputer tidak dapat dikendalikan (hang). Selain itu tipe variabel pointer dan tipe data yang ditunjuk harus sejenis. Bila tidak sejenis 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.