array/larik

41
ARRAY/LARIK

Upload: perrin

Post on 25-Jan-2016

55 views

Category:

Documents


3 download

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 Presentation

TRANSCRIPT

Page 1: ARRAY/LARIK

ARRAY/LARIK

Page 2: 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.

Page 3: ARRAY/LARIK

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

Page 4: ARRAY/LARIK

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

Page 5: ARRAY/LARIK

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

Page 6: ARRAY/LARIK

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

Page 7: ARRAY/LARIK

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];

Page 8: ARRAY/LARIK

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

Page 9: ARRAY/LARIK

STRING

Page 10: ARRAY/LARIK

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”;

Page 11: ARRAY/LARIK

Konstanta String

Konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda.

Contoh:#define abjad “ABeCe”#define judul “Stringku”

Page 12: ARRAY/LARIK

Penggunaan Memory

Komposisi penyimpanan string dalam memori:

Setiap karakter akan menempati memori sebesar 1 byte

Byte terakhir otomatis akan berisi karakter NULL (\0)

Page 13: ARRAY/LARIK

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];

Page 14: ARRAY/LARIK

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”;

Page 15: ARRAY/LARIK

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.

Page 16: ARRAY/LARIK

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

}

Page 17: ARRAY/LARIK

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

Page 18: ARRAY/LARIK

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.

Page 19: ARRAY/LARIK

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");

}

Page 20: ARRAY/LARIK

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]);

Page 21: ARRAY/LARIK

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.

Page 22: ARRAY/LARIK

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

Page 23: ARRAY/LARIK

STRUCT

Page 24: ARRAY/LARIK

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.

Page 25: ARRAY/LARIK

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;

}

Page 26: ARRAY/LARIK

STRUCT

CARA PENGAKSESAN Untuk mengakses tiap elemen di dalam sebuah struct digunakan operator titik (.)Syntax: nama_var_struct . nama_var_elemen;

Contoh:

Page 27: ARRAY/LARIK
Page 28: ARRAY/LARIK

NESTED STRUCT Sebuah kondisi dimana di dalam sebuah struct

terdapat tipe data berupa struct lagi.

Contoh

Page 29: ARRAY/LARIK

STRUCT OF ARRAY Sebuah struct yang di dalamnya terdapat

variable/ elemen yang bertipe array.

Page 30: ARRAY/LARIK

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.

Page 31: ARRAY/LARIK
Page 32: ARRAY/LARIK

POINTER

Page 33: ARRAY/LARIK

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.

Page 34: ARRAY/LARIK

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

Page 35: ARRAY/LARIK

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.

Page 36: ARRAY/LARIK

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.

Page 37: ARRAY/LARIK

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;

Page 38: ARRAY/LARIK

Contoh penggunaan operator *

Page 39: ARRAY/LARIK

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.

Page 40: ARRAY/LARIK

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

Page 41: ARRAY/LARIK

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.