1 / 38

Array , POINTER dan FUNGSI

Array , POINTER dan FUNGSI. DPK Review - Dasar Pemrograman Komputer. Konsep Array. Array == Laci ?. Array. Data disimpan dalam suatu struktur , sedemikian rupa sehingga elemen-elemen di dalam struktur tersebut dapat diolah secara kelompok ataupun secara individu .

gaenor
Download Presentation

Array , POINTER dan FUNGSI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Array, POINTER dan FUNGSI DPK Review - DasarPemrogramanKomputer

  2. Konsep Array Array == Laci?

  3. Array • Data disimpandalamsuatustruktur, sedemikianrupasehinggaelemen-elemendidalamstrukturtersebut dapatdiolahsecarakelompokataupunsecaraindividu. • Sifat - sifat Array • Homogen Seluruhelemendidalamstruktur array mempunyaitipe data yang sama. • Random Access Setiapelemendidalamstruktur array dapatdicapaisecara individual, langsungkelokasielemen yang diinginkan, tidakharusmelaluielemenpertama.

  4. Array DimensiSatu • Sintaksdeklarasi array dimensisatu type nama_arrray[Nilai_dim]; Contoh : inta[10]; • Definisidarisebuah array terdiridari 4 komponenyaitu : • Type specifier • Identifier (nama array) • Operator index ([ ]) • Nilaidimensidalam operator [ ]

  5. A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] Visualisasi Array Denganmenggunakancontohdeklarasisebelumnyadapatdigambarkanalokasiuntukvariabel A Elemen-elemensuatu Array diindeks (subscript) mulaidari 0.

  6. Cara Akses Array • Cara untukmengaksesunsurke-idarisuatu array. Misaluntuki=2; A[2] • Bilaelemen A[2] hendakditampilkandilayar monitor, gunakanstatemensbb: cout << A[2];

  7. A[0] A[0] A[1] A[1] A[2] A[2] A[3] A[3] A[4] A[4] A[5] A[5] A[6] A[6] A[7] A[7] A[8] A[8] A[9] A[9] 27 27 15 15 12 Mengisi Data Array Mengisi data keelemen array dilakukandenganmenggunakan assignment operator. Contoh : A[6] = 15; A[3] = 27; Statement A[2] = A[3] - A[6], menghasilkan :

  8. Inisialisasi Array • Array dapatdiinisialisasisecaraeksplisitpadasaatdidefinisikandanbisatidakdiberikannilaidimensinya. • Contoh: int B[ ]={1, 2, -4, 8}; • Padacontohdiatas Array B memiliki 4 element • Contoh; int B[8]={1, 2, -4, 8};

  9. Inisialisasi Array Error, mengapa ? • Contoh: int B[4] = { 1, 2, -4, 8, 9 }; //error ERROR karenanilaidimensilebihkecildarijumlah element. • Contohinisialisasi array setelahdidefinisikan : int A[5]; (for i=0; i<5;i++) A[i]=0; int B[5]; B[5]={0,0,0,0,0};

  10. Array DimensiSatu #include<stdio.h> int main() { inti, j; int n[5] = {15, 9, 1, 7, 5}; for( i=0 ; i< 5 ; i++) { cout << n[i]; for ( j=1; j<=n[i] ; j++) cout << "*"; cout << “\n“; } return(0); } Bahasa C tidakmembatasijumlahdimensi array yang bisadigunakan. Hal inisemata-matadibatasijumlahmemorikomputer yang tersedia. Contoh Array dimensi 1:

  11. Column 0 Column 1 Column 2 Column 3 Row 0 Row 1 Row 2 Column subscript Array name a[2][1] a[0][0] a[1][0] a[0][1] a[1][1] a[2][0] a[0][3] a[1][2] a[2][2] a[1][3] a[2][3] a[0][2] Row subscript Array DimensiDua • Sintaksdeklarasi array dimensidua type nama_arrray[baris][kolom]; • Contoh int a[3][4]

  12. Array DimensiDua /* Mencetak array 2-D */ #include <stdio.h> int main() { inttwo_dim[3][5] = {1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500}; inti, j; for (i=0; i<3; i++){ for (j=0; j<5; j++) cout << two_dim[i][j]; cout << "\n”; } return(0); } 1 2 3 4 5 10 20 30 40 50 100 200 300 400 500 Program :

  13. Array of character • Array yang isinya character • Sintak: char nama_array[nilai_dim]; • Contoh: char nama[40]; char ss[20]={‘F’,’T’,’-’,’U’,’B’}; //20 elemen char ss[ ]= {‘F’,’T’,’-’,’U’, ’B’}; //5 elemen

  14. String • String adalahArray of character yang diakhiridengannull character ( ‘\0’ atau ASCII nya = 0) • String constant ataustring literal adalahbeberapa character yang diapitolehtandapetikdua. • Contoh: ”Selamatdatang” • Tipedari string constant adalah pointer constant, sehinggabisadi-assigned kearray of charactersbb: • Contoh : char nama[40] = ”Amir”; //ok

  15. String • String constant dapatdigabungpadasaatdikompilasi: ”Hello,” ” world” Samaartinyadengan:”Hello, world” • Contohinisialisasi string: char s[ ] = ”FT-UB”; Samaartinyadgn:char s[ ] = {’F’,’T’,’-’,’U’,’B’,’\0’}; • Stringbukantipe data diBahasa C.

  16. Karaktervs String Sama • Karakterdalambahasa C diapitolehsingle quote. Tiapkaraktermenempatisatu byte memori. • Contoh: char ch=’A’; char ch=65; //Ascii desimal char ch=0x41; //Ascii hexadesimal • String diapitoehdouble quote.

  17. Manipulasi string • Pada Standard Library Function ( header file string.h ) disediakanfungsi-fungsiuntukmemanipulasi string antara lain : • strlen() Menghasilkanpanjang string, tidakmenghitungkarakter null. • strcpy(s1,s2) Copy s2 ke s1. • strncpy(s1,s2,n) Copy n karakterpertama s2 ke s1. • strcat(s1,s2) Menambahkanstring s2 keakhirdari string s1. • strncat(s1,s2,n) Menambahkann karakter string s2 keakhirdari string s1. • strcmp(s1,s2) Membandingkanisi string s1 dan s2, jikaisinyasamamakanilainya 0. • Dll.

  18. Manipulasi string char s1[ ] = “abcdef”;char s2[ ] = “xyz”; strlen(“nana”); // 4 strcmp(“nana”, “nana”) // bernilai 0 strcpy(s1,s2); // s1 = “xyz”, s2 = “xyz” strncpy(s1,s2,2); // s1 = “xyabcdef”, s2 = “xyz” strncpy(s1,s2,4); // jika n>=strlen(s2) efeksama // denganstrcpy() s1 = “xyz” strcat(s1,s2); // s1=“abcdefxyz”, s2=“xyz” strncat(s1,s2,2); // s1=“abcdefxy”, s2=“xyz” s1 = “Happy”; s2 = “New Year” strcat( s1, s2 ) // s1= “Happy New Year” strncat( s3, s1, 6 ) // s1= “Happy” strcat( s3, s1 ) // s1= “Happy Happy New Year” Contoh :

  19. Latihan • Buatlah program untukmengambil 10 bilangan integer dari keyboard dandisimpandalam array, kemudian • Caribilanganterbesardalam array tersebut • Caribilanganterkecildalam array tersebut • Hitungnilai rata-rata dariisi Array tersebut • Tampilkanhasilnyadilayar monitor • Buat program untuk: • mengambil string dari keyboard • membaliksusunankarakterdalam string tsb • menampilkan string ygsudahdibalikkelayar monitor Contoh: string ygdi-input : KASUR dibalik: RUSAK

  20. Latihan • Buat program untukmengalikan 2 matrikdibawahini. Gunakan Array dimensi 2 Buat program untukmenjumlahkan 2 matrikdibawahini. Gunakan Array dimensi 2

  21. Pointer DasarPemrogramanKomputer

  22. Pointer • Pointer adalahvariabel yang menyimpanalamatdarivariabel yang lainnya. • Deklarasi pointer : <type> *ptr_name; • Dua operator yang seringdigunakanpada pointer : * (content of) dan & (address of). • Contoh Inisialisasisebuah integer pointer ke data variable: intx, *ptr; ptr = &x; Untukmerubahisi/nilaiygditunjukoleh pointer: *ptr = 5; /* samaartinyadgnx=5 */

  23. Pointer

  24. Pointer to Pointer • Pointer to pointer adalahvariabel yang menyimpanalamatdari pointer yang lainnya. • Deklarasi pointer : <type> **ptr_ptr ; • Contoh inti, *ptr, **ptr_ptr ; ptr = &i; ptr_ptr = &ptr; Untukmerubahnilaivariabelibisamelaluisbb: *ptr = 5; //samaartinyadgni=5 ; **ptr_ptr = 9; //samaartinyadgni=9; atau *ptr=9;

  25. Pointer to Pointer

  26. Akses Array Dengan pointer Akses array dengan pointer intarr[10]; int *ptr_arr; ptr_arr = arr; // samaartinyadgn // ptr_arr = &arr[0]; Untukmengakseselemenke-idapatdilakukandengancaraberikut: ptr_arr[i]; arr[i]; *(ptr_arr + i); *(arr + i);

  27. Cara AksesArray dengan Pointer • Duacara yang ekuivalenuntukmengaksesunsurke-idarisuatu array. Misaluntuki=2; *(A+2) atau A[2] • A ekuivalendengan &A[0] atau pointer constant keelemen-pertamadari array tersebut. • Bilaelemen A[2] hendakditampilkandilayar monitor, gunakanstatemensbb: cout << A[2] atau cout <<*(A+2);

  28. Pointer Constant vs Pointer Variable Isi ptr bisa dirubah-rubah saat run time • Pointer variabel : adalah pointer yang isinyabisadirubah-rubahpadasaat run time • Pointer constant : adalah pointer yang isinyatdkbisadirubahpadasaat run time • Array tipenyaadalah Pointer Constant ke element pertamadari array tersebut, olehkarenaitu Array bisamengisi pointer variabel. • Contoh: • int x=10, y=20; • int *ptr; //ptradalah pointer variable • ptr = &x; • ptr = &y;

  29. Array Of Pointer Output : 1 2 3 5 • Sebuah array yang isinyaadalah pointer • Sintak : type *nama_array [nilai_dim]; • Contoh: inti; int *ptr[4]; int x=1, y=2, z=3, w=5; ptr[0]=&x, ptr[1]=&y; ptr[2]=&z; ptr[3]=&w; for(i=0;i<4;i++) cout<<*ptr[i];

  30. Latihan • Perhatikandua statement dibawah: char str[] = ”SelamatDatangdiUB”; char *str = ”SelamatDatangdiUB”; Jelaskanperbedaankedua identifier strtersebutdiatas ! • Perhatikandua statement dibawah: char *name[] = {”Ali”,”Ani”,”Tono”}; char name[][10] = {”Ali”,”Ani”,”Tono”}; Jelaskanperbedaankedua identifier name tersebutdiatas !

  31. Fungsi/method DasarPemrogramanKomputer

  32. Pemrograman Modular Program Utama SubProgram SubProgram SubProgram SubProgram SubProgram BahasaJavamelengkapifasilitas modular denganmenggunakanfungsi/methodpadasetiapSubProgram. Contohpembagian program menjadibeberapa subprogram.

  33. Pemrograman Modular • Rancangan Top - down denganteknik Sub goal, program besardapatdibagimenjadimodul-modul yang lebihkecil. • Dapatdikerjakanolehlebihdarisatuorangdengankoordinasi yang relatifmudah. • Mencarikesalahanrelatiflebihmudahkarenaalurlogikalebihjelas, dankesalahandapatdilokalisirdalamsatumodul. • Modifikasidapatdilakukan, tanpamenggangu program secarakeseluruhan • Mempermudahdokumentasi • Keuntunganmenggunakanmodul :

  34. KonstruksiFungsi/method • Konstruksifungsi return-value-type function-name( parameter-list ) { return-value-type variableReturn; ....... statements; ......... return variableReturn; } • return-value-type:tipe data yang dikembalikanolehfungsi • Jikatidakdiisimakadianggaptipenya integer (default int) • Jikareturn-value-typediganti void makafungsitidakmengembalikannilai • Parameter-list:berisidaftarnilai yang dikirimkandarifungsipemanggil

  35. KonstruksiFungsi formal parameter Fungsi intmaksimum (intx, inty){ intmaks = x; if ( y > maks) maks = y; returnmaks; } Pemanggil int main () { inta,b; cetak(“Input 2 bilanganbulat : "); cetak(“Bilangan a: "); baca (a); cetak(“Bilangan b "); baca (b); cetak(“Bilanganyglebihbesar:”<<maksimum(a,b)); } Actual parameter Contoh :

  36. Parameter Fungsi • Pengiriman nilai data antar fungsi dapat dilakukan melalui penggunaan parameter fungsi. • Parametermerupakan ‘interface’ antara suatufungsi denganfungsi lain. • Pengirimannilai data melalui parameter dapat berupa: • By-Value Yang dikirimkefungsi lain adalahnilai datanya. • By Location / by reference Yang ditransferkefungsi lain adalahalamat memorinya.

  37. Pengiriman Parameter void Garis (char x) { //x sbg Parameter Formal {inti; // i, x adalah Local Variabel for (i = 1; i<=10; i++) cout<<x; } /*Program Utama*/ Int main() {char A= ’-’; Garis(A);// A disebut Parameter Aktual } Contoh : Pengiriman parameter by value

  38. Pengiriman Parameter void Hitung (int X, int Y, int *P, int *Q) {*P= X + Y; *Q= X * Y; x=0; y=1; cout <<“Dalam Fungsi Hitung nilai X: “<< X << “\n Nilai Y:” <<Y; } Int main() {intX, Y, PA, QA; /*local variabel*/ cout <<“ X=”; cin >> X; cout <<“ Y=”; cin >> Y; Hitung(X,Y,&PA,&QA); cout <<“Dalam Fungsi Main nilai X: “ << X << “\n Nilai Y:” <<Y; cout << “Nilai PA=” << PA; cout << ”\nNilai QA=” << QA; } Contoh : Pengiriman parameter by location

More Related