Array Dalam Bahasa C

10
SANTI PRAYUDANI ARRAY / LARIK

description

Presentasi bahan ajar Array dalam Bahasa Pemrograman C

Transcript of Array Dalam Bahasa C

  • SANTI PRAYUDANI

    ARRAY / LARIK

    IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  • LATAR BELAKANG ARRAYSejauh ini cuplikan program yang kita pelajari masih sangat terbatas, karena statement assignment hanya berupa pemberian satu nilai pada satu variabel Padahal sering kali kita perlu untuk meng-assign ataupun memanipulasi banyak nilai ke sekelompok variabelSebagai contoh jika anda membuat program yang membaca 6000 nilai percobaan untuk dihitung nilai rata-rata-nya, akan sangat lucu jika anda menghitungnya dengan cara berikut: rata_rata = (x1 + x2 + x3 + x4 + x5 + + dst )/6000.Ekspresi matematis berikut akan lebih baik :

    *

  • PENDAHULUAN (1)Definsi : Kumpulan nilai dengan tipe data yang sama yang menggunakan nama sama.Deklarasi Array :Tipe data elemen arrayNama arrayJumlah elemen arrayContoh : short val[ 200 ]; //declarationval[ 12 ] = 5; //assignmentJika sebuah array y memiliki n elemen, maka:Elemen pertama adalah : y[0]Elemen terakhir adalah : y[n-1]Contoh :Short y[4], memiliki elemen y[0], y[1], y[2], y[3]Tetapi y[4], bukan merupakan elemen array ini.

    *

  • PENDAHULUAN (2)Array dapat dibedakan menjadi :Array berdimensi satu (1D), berpadanan dg vektor di MatematikaArray berdimensi dua (2D), berpadanan dg matriks di MatematikaArray berdimensi banyakContoh array integer 1D bernama n yg memiliki 5 elemen, n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9 dideklarasikan sbb: int n[5] = {1,3,5,7,9};

    *13579n01234indeks

  • ALOKASI MEMORY ARRAY (1)*Hati-hati dengan indeks arrayjika ceroboh dapat mengakses data lainhati-hati pula dengan pointerIlustrasi kasus:

    int a[6];int a+n;Array a[ ]Data lainMemoria[0]a[1]a[2]a[3]a[4]a[5]a+n

  • ALOKASI MEMORY ARRAY (2)Array, seperti halnya variabel biasa ataupun fungsi harusi dideklarasikan terlebih dahulu.Array dapat dideklarasikan secara global dengan mendeklarasikannya diluar fungsi main Hati-hati jika anda mendeklarasikannya secara (didalam sebuah fungsi atau main), karena, variabel lokal akan dibentukan dalam stack ketikan fungsi tersebut dibentuk, dan akan dihapus ketika fungsi tersebut dihancurkan (ketika fungsi tersebut selesai dieksekusi). Mungkin hal ini tidak bermasalah bagi variabel biasa, namun array umumnya akan menuntut jumlah memory yang sangat besar (array 'float mydata[5000]' akan membutuhkan memory sebesar 20000 bytes), sementara stack hanya memiliki kapasitas sekitar 2000 - 4000 bytes Oleh karena itu untuk array yang besar harus dideklarasikan secara global, atau mempergunakan static statement (static float mydata[5000]; ) jika anda hendak mendeklarasikannya secara local.*

  • ALOKASI MEMORY ARRAY (3)Global arrays selalu bersifat staticLocal arrays selalubersifat dynamicAlokasi memory space array dan variabel static umumnya lebih besar daripada array dan variabel dynamic Untuk membuat local array static, deklarasikan secara eksplisit : static short x[200];Hati-hati dengan batasan 64 kB pada beberapa compilerIF2031-Algoritma dan Struktur Data/Hamonangan Situmorang*

    IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  • DEKLARASI DAN INISIALISASI ARRAYDeklarasi secara global, semua elemen array akan diinisialiasi dengan nilai nol.Deklarasi secara lokal, elemen array tidak di-inisialisasi.Contoh-contoh deklarasi dan inisialisasi array :short x[ 12 ] = { 1, 3, 88};double w[ ] = {3.14, 127.0, 22};Strings:char a_name[ 10 ] = Hello;char name[ 20 ] ={H,e,l,l,o};Jika anda akan mendeklarasikan ukuran/dimensi array anda harus menggunakan sebuah nilai atau konstanta, jangan variabel short x[12];Short x[MAX], dimana MAX adalah konstanta*

  • REVIEW DEKLARASI KONSTANTAContoh deklarasi konstanta #define ACONSTANT 300.0#define TRUE 1#define FALSE 0Catatan: Tidak ada semicolon diakhir deklarasi konstantaKesepakatan dalam C: nama konstatnta ditulis dengan menggunakan huruf besar semua. *

  • MENGOLAH ELEMEN ARRAYElemen array dapat diakses dengan bentuk: nama_array[subscript] untuk dimensi 1nama_array[subscript_baris][subscript_kolom] untuk dimensi 2

    Dalam pemrograman harus diusahakan agar tidak terjadi pengaksesan elemen di luar jumlah yang didefinisikan.

    Perlu diketahui, C tidak akan memberikan pesan kesalahan apabila terjadi pengaksesan dengan nilai indeks yang berada di luar nilai yang telah didefinisikan.*

    *