Array Pertemuan ke 11..

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

Perulangan Pertemuan ke-5 Bahasa C.
Pointer. Output? #include int x = 2; void misteri(int a, int b) { a = 2*x; b = y; y = a; } main() { int y; x = 5; y = 7; misteri(x, y); printf("%d %d\n",
Abstract data type (Structure, Union, Enumeration)
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
ARRAY (Lanjutan).
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
7. 1 Bab 07 Menginput Nilai melalui Keyboard.
ARRAY Dr. Lily Wulandari.
PENGENALAN c++ DAN STRUKTUR DASAR C++
Algoritma dan Struktur Data
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
Argumen Command-line Sebuah aplikasi Java dapat menerima sejumlah argumen dari command-line. Argumen dari command line memberikan kesempatan bagi.
Teknik Pemrog. Terstruktur 2
1 Pertemuan 1 Pengenalan Pemrograman Terstruktur C Matakuliah: H0112 – Pemrograman Bahasa Tingkat Tinggi Tahun: 2005/2006 Versi: xxx/2.
PERTEMUAN 3 Algoritma & Pemrograman
Penyelidikan Operasi 1. Konsep Optimisasi.
Penyusunan Data Baseline dan Perhitungan Capaian Kegiatan Peningkatan Kualitas Permukiman Kumuh Perkotaan DIREKTORAT PENGEMBANGAN KAWASAN PERMUKIMAN DIREKTORAT.
PENGEMBANGAN KARIR DOSEN Disarikan dari berbagai sumber oleh:
GERAK SUGIYO, SPd.M.Kom.
Uji Hipotesis Luthfina Ariyani.
SOSIALISASI PEKAN IMUNISASI NASIONAL (PIN) POLIO 2016
PENGEMBANGAN BUTIR SOAL
Uji mana yang terbaik?.
Analisis Regresi linear berganda
PEERSIAPAN DAN PENERAPAN ISO/IEC 17025:2005 OLEH: YAYAN SETIAWAN
Arus, Tahanan, dan Gaya Elektromotif
SOSIALISI PROGRAM AKADEMIK SMA NEGERI 3 BANDUNG
Ilmu Komputasi BAGUS ADHI KUSUMA
PerATURAN waLI KOTA MEDAN NO 44 TAHUN 2017 tentang TAMBAHAN PENGHASILAN PEGAWAI APARATUR SIPIL NEGARA pemerintah kota medan.
OVERVIEW PERUBAHAN PSAK EFFEKTIF 2015
Aplikasi Signal Processing
(Basic Control System)
Kriptografi.
1 Bab Pembangunan Ekonomi dan Pertumbuhan Ekonomi.
Ekonomi untuk SMA/MA kelas XI Oleh: Alam S..
ANALISIS PENDAPATAN NASIONAL DALAM PEREKONOMIAN TIGA SEKTOR
Penyajian Data (Bag. II)
Dosen: Atina Ahdika, S.Si., M.Si.
Anggaran biaya konversi
Bab 4 Multivibrator By : M. Ramdhani.
PENDUGAAN PARAMETER Indah Mulyani.
TEORI PENDUGAAN STATISTIK
Perkembangan teknologi masa kini dalam kaitannya dengan logika fazi
PERENCANAAN & PENGELOLAAN PERSEDIAAN
DISTRIBUSI PELUANG KONTINU
Yusuf Enril Fathurrohman
3D Viewing & Projection.
Distribusi Diskrit dan Kontinu yang Penting
PENGOLAHAN AIR LIMBAH SECARA ADSORPSI
Sampling Pekerjaan.
D10K-6C01 Pengolahan Citra PCD-04 Algoritma Pengolahan Citra 1
MOMENTUM, IMPULS, HUKUM KEKEKALAN MOMENTUM DAN TUMBUKAN
Theory of Computation 3. Math Fundamental 2: Graph, String, Logic
Theory of Computation 2. Math Fundamental 1: Set, Sequence, Function
METODE PENELITIAN.
PENGUJIAN HIPOTESIS.
(Skewness dan kurtosis)
Klasifikasi Dokumen Teks Berbahasa Indonesia
Mekflu_1 Rangkaian Pipa.
SEKSI NERACA WILAYAH DAN ANALISIS BPS KABUPATEN TEMANGGUNG
Nathan Samudra Vika Vito Evan Vina Bima Filipus Willi Axel Abhe Ayu
MEDAN MAGNET SUGIYO,S.si.m.kom.
Bab 7 Teori & Estimasi Biaya
* RETNO B. LESTARI07/16/96 B 3 Nilai waktu Uang A B PENGANTAR EKONOMI*
Bab Anuitas Aritmetrik dan Geometrik
Kesetimbangan Fase dalam sistem sederhana (Aturan fase)
Minggu ke 10 – Dyah Anggraini – PTLF*
ANALISIS STRUKTUR MODAL
Transcript presentasi:

Array Pertemuan ke 11.

Array Untuk membuat sebuah program yang bisa menerima input 100 buah angka integer, programmer yang belum mengenal array akan melakukan pendefinisian variable integer sebanyak 100 buah seperti dibawah ini int main() { int angka1,angka2,…,angka100; scanf(“%d”,&angka1); scanf(“%d”,&angka2); … scanf(“%d”,&angka100); getch(); return 1; } Bagaimana jika data 1000 buah ? Program akan makin panjang Bagaimana jika selain memasukkan 1000 data, program akan mencetak 1000 data yang dimasukkan ? Program akan makin panjang lagi Problem diatas bisa diatasi dengan ARRAY

Array Array digunakan untuk mengatasi masalah ini, dimana kita bisa mendefinisikan satu identifier yang memiliki data type yang sama sebanyak yang kita mau (dibatasi oleh ketersediaan memory saja). int main() { int i, angka[100]; for(i=0;i<100;i++) scanf(“%d”,&angka[i]); printf(“%d\n”,angka[i]); getch(); return 1; }

Array definition Definisi: penampung data sejenis yang menggunakan satu identifier. Elemen array diakses dengan menggunakan indeks(subscript). Akses ke elemen array tidak perlu secara urut (sequential), tetapi bisa acak(random). Bisa langsung mengakses elemen ke-3 tanpa melalui akses elemen ke-1 dan ke-2.

Array notation Notasi : data_type array_name[size]; data_type : tipe data array yang kita definisikan. array_name: nama array sesuai aturan penulisan identifier. size: jumlah elemen array. Contoh deklarasi array: int angka[3]; Artinya : array angka terdiri dari 3 elemen, yaitu angka[0],angka[1],angka[2]. int angka[3] = {7,5,12}; Artinya : array angka terdiri dari 3 elemen, yaitu angka[0]=7,angka[1]=5,angka[2]=12.

Array Allocation angka[0] 839 Pengalokasian array di dalam Memory. Address Content Variable FF10 839 angka[0] FF11 FF12 FF13 FF14 432 angka[1] FF15 FF16 FF17 … FF20 8130 angka[4] FF21 FF22 FF23 FF24 chr[0] FF25 chr[1] FF26 chr[2] Pengalokasian array di dalam Memory. Array yang tidak diinisialisasi, berisi garbage lebih baik jika selalu melakukan inisialisasi. Tanpa inisialisasi bisa terjadi kesalahan, jika isi array langsung dipakai. Misalnya, untuk proses : angka[1]=angka[1]+5; Tabel dikanan adalah alokasi array di memory jika tidak dilakukan inisialisasi. Misalkan deklarasi array sebagai berikut : int angka[5]; char chr[3]; Ingat Hexadec !

FF18,FF19,FF1A,FF1B, FF1C, FF1D, FF1E, FF1F, FF20 Array Allocation Address Content Variable FF10 angka[0] FF11 FF12 FF13 FF14 angka[1] FF15 FF16 FF17 … FF20 angka[4] FF21 FF22 FF23 FF24 a chr[0] FF25 b chr[1] FF26 c chr[2] Pengalokasian array di dalam Memory. Tabel dikanan adalah alokasi array di memory jika dilakukan inisialisasi. Misalkan deklarasi array sebagai berikut : int angka[5]={0,0,0,0,0}; char chr[3]={‘a’,’b’,’c’}; Ingat Hexadec ! FF18,FF19,FF1A,FF1B, FF1C, FF1D, FF1E, FF1F, FF20

Array Access Untuk mengakses elemen array, tuliskan nama array beserta indexnya. Dalam bahasa C, index array dimulai dari 0 (nol). Jadi untuk definisi array yang memiliki 3 elemen, index adalah 0,1 dan 2. int main() { int angka[3] = {5,7,1}; printf(“Isi element array yang ke 1 : %d “,angka[0]); // mengakses elemen array yg pertama OUT: 5 angka[0] = angka[1] + angka[2]; // mengakses elemen array yg pertama OUT: 8 getch(); return 1; }

Array: Passing array parameter Passing array sebagai parameter kedalam function SELALU menggunakan alamat dari array (call by refference). Contoh: void fungsi(int xx[]) { //atau int *xx … } int main() { int iarray[200] fungsi(iarray); // bisa juga dituliskan fungsi(&iarray[0]); getch(); return 0; Nama array (tanpa index) = alamat pertama dari array tersebut, maka iarray == &iarray[0]. Pengiriman parameter array bisa menggunakan dua notasi diatas yaitu dengan nama_array ATAU &nama_array[0].

Array: sample program array with function // program menghitung luas segitiga dengan menggunakan array #include <stdio.h> #include <conio2.h> void hitungluas(float sgt[]){ sgt[2] = sgt[0] * 0.5 * sgt[1]; } int main() { float segitiga[3]; // segitiga[0]=alas ; segitiga[1]=tinggi ; segitiga[2] = luas printf("Alas : ");scanf("%f",&segitiga[0]); printf("Tinggi : ");scanf("%f",&segitiga[1]); hitungluas(segitiga); // ATAU hitungluas(&segitiga[0]); printf(“Luas : %f",segitiga[2]); getch(); return 0;

Array: 1 dimension and pointer Array berhubungan erat dengan pointer dan adakalanya saling dipertukarkan. Secara internal Array diterjemahkan dalam bentuk pointer. Array adalah pointer constant ke elemen pertama array sehingga manipulasi elemen array dapat dilakukan dengan pointer. Hal ini dimungkinkan karena secara fisik elemen-elemen array disimpan secara berurutan didalam memory *(array_name + expression) Akses Array dengan pointer: int arr[10]; int *ptr_arr; ptr_arr = arr; Atau ptr_arr = &arr[0]; //arr ==&arr[0] Untuk mengakses elemen ke-i dapat dilakukan dgn berbagai cara sbb: ptr_arr[i]; arr[i]; *(ptr_arr + i); *(arr + i); ptr_arr = ptr_arr + i ; *ptr_arr;

Array: n dimension Array n dimensi (multi dimensi) Notasi : data_type array_name[size1][size2]…[sizen]; size1 : jumlah elemen dari array pertama size2 : jumlah elemen dari array kedua sizen : jumlah elemen dari array ke n

Array: 2 dimension Array 2 dimensi bisa dianalogikan seperti tabel Jika dideklarasikan seperti dibawah ini : int arr2d[2][5]; Bisa digambarkan berupa tabel “2 baris, 5 kolom”. Kolom-0 Kolom-1 Kolom-2 Kolom-3 Kolom-4 Baris-0 arr2d[0][0] arr2d[0][1] arr2d[0][2] arr2d[0][3] arr2d[0][4] Baris-1 arr2d[1][0] arr2d[1][1] arr2d[1][2] arr2d[1][3] arr2d[1][4]

Array: definition of 2 dimensional array Definisi array 2 dimensi pada function parameter void isimatriks(int a[5][5], int b, int k); atau void isimatriks(int a[][5], int b, int k); Tapi tidak bisa: void isimatriks(int a[5][], int b, int k); void isimatriks(int a[][], int b, int k);

Array: sample program 2 dimension array #include <stdio.h> #include <conio2.h> void jumlahmatrix(int c[3][2],int a[3][2],int b[3][2]) { int j,k; for(j=0;j<3;j++) for(k=0;k<2;k++) c[j][k] = a[j][k] + b[j][k]; } int main(){ int a[3][2],b[3][2],c[3][2]; // Mengisi elemen matrix A printf("Elemen Matrix A:\n"); for(k=0;k<2;k++) { printf("A[%d][%d] = ",j,k); scanf("%d",&a[j][k]); // mengisi eleman matrix b printf(“Elemen Matrix B:\n"); for(j=0;j<3;j++) for(k=0;k<2;k++){ printf("B[%d][%d] = ",j,k); scanf("%d",&b[j][k]); } // jumlahkan A dan B ditampung ke C jumlahmatrix(c,a,b); // Menampilkan hasil penjumlahan A dan B printf("\nHasil A + B =\n"); for(k=0;k<2;k++) printf("\nC[%d][%d]=%d",j,k,c[j][k]); getch(); return 0;

Array of char (string) String adalah kumpulan karakter ASCII. Ada dua cara mendefinisikan String Dengan menggunakan Array : char string_id[constant]; Dengan menggunakan Pointer : char *string_id; Contoh deklarasi string dan initialisasinya Layout penyimpanan di memory char *s1 = “array”; char s2[10] = “NUSA”; char s3[10] = {‘P’,’R’,’O’,’G’,’R’,’A’,’M’}; char s4[] = “jakarta”; a r y \0 s[0] s[1] s[2] s[3] s[4] s[5] N U S A \0   s2[0] s2[1] s2[2] s2[3] s2[4] s2[5] s2[6] s2[7] s2[8] s2[9] P R O G A M \0   s3[0] s31] s3[2] s3[3] s3[4] s3[5] s3[6] s3[7] s3[8] s3[9] j a k r t \0 s3[0] s3[1] s3[2] s3[3] s3[4] s3[5] s3[6] s3[7]

Array : built in string functions keterangan char strcpy(char *dest,const char *src); Fungsi ini menyalin string dari src ke dest. src bisa berupa variabel atau string constant. size_t strlen( const char *s); Mengembalikan angka yang menyatakan panjang string s TANPA menghitung null character di ujung string. int strcmp( const char *s1, const char *s2); Fungsi ini membandingkan string s1 dan s2. Jika s1 = s2, function mengembalikan 0. Jika s1 < s2, function mengembalikan angka negatif. Jika s1 > s2, function mengembalikan angka positif. int strcmpi( const char *s1, const char *s2); Function ini membandingkan string s1 dan s2 TANPA membedakan huruf besar dan kecil. char *strcat( char *dest, const char *src); Function ini menambahkan string src ke string dest.

Array : sample program with array of characters #include <stdio.h> #include <conio2.h> int main() { char klm[3][10]; int i; clrscr(); for(i=0;i<3;i++) { printf("Kata ke-%d ? ",i+1); scanf("%s",klm[i]); } printf("\n"); for(i=2;i>=0;i--) printf("%s ",klm[i]); getch(); return 1; Output : Kata ke-1 ? satu Kata ke-2 ? dua Kata ke-3 ? tiga tiga dua satu

Array : sample program with pointer to character #include <stdio.h> #include <conio2.h> #include <string.h> int main() { char arr[11], *bpointer; clrscr(); strcpy(arr,“Multimedia"); bpointer = arr ; // similar to bpointer = &arr[0] printf("1 = %s \n",arr); printf("2 = %s \n",bpointer); printf("3 = %c \n\n",*bpointer); strcpy(arr,“Nusantara"); printf("4 = %s \n",arr); printf("5 = %s \n\n",bpointer); bpointer = “Tangerang"; printf("6 = %s \n",arr); printf("7 = %s \n\n",bpointer); getch();return 1; } Output : 1 = Multimedia 2 = Multimedia 3 = M 4 = Nusantara 5 = Nusantara 6 = Nusantara 7 = Tangerang

References : Thompson SN, 2009, Algoritma dan Struktur Data dengan C. Deitel, PJ, HM.Deitel, 2007, C How to Program, 5th Edition.