Skip to main content

WEEK 5 SESSION 12

POINTERS AND ARRAY

Pointer adalah variable dalam array yang menyimpan alamat sebuah variable
dalam pointer ada 2 operator yang ada yaitu * dan &
 * = address of (menyimpan alamat dari sebuah variable)
& = content of (menyimpan nilai dari sebuah variable)

berikut merupakan contoh dalam bentuk Kodingan di C

//untuk menyimpan alamat dari sebuah variable
int num =100;

int *ptr;//* arinya menunjukk. di perintah di bawah si ptr akan menunjuk ke num; *** bisa menunjuk ke pointer yang ** , ** hanya bisa menunjuk ke pointer yg * dst
ptr = # // ptr akan terisi alamat dari variable  num
*ptr = 50;//*ptr mengisi nilai 50 kedalam alamat ptr, alamat ptr sebelummnya adalah alamat dari num, maka nilai num dari 100 akan berubah ke 50
 //& mencari alamat dari sebuah variable *nilai dari sebuah alamat atau nilai dari sebuah variable


 printf("nilai dari num : %d\n", num); //100
 printf("nilai alamat dari num : %d\n", &num);
 printf("nilai dari ptr : %d\n", ptr);


out put nya
nilai dari num 100
nilai alamat dari num (hasilnya tergantung dari setiap computer, biasanya berbeda beda)
nilai dari ptr =  (sama dengan nilai alamat dari num)

Array adalah struktur penyimpanan data yang memungkinkan menyimpan banyak data dalam 1 variable. penyimpanan data dalam variable yang sama di bedakan oleh indeks ke berapa nilai itu disimpan ke dalam variable , intinya array itu seperti variable yang banyak , tetapi nama variabelnya hanya 1


Dalam kodingan tersebut  pada perintah result[10] menandakan variable result dapat menyimpan 10 nilai,
dalam perintah while terjadi operasi perhitungan result[i] = x%2 menandakan hasil operasi tersebut kan tersimpan pada variable result[0] karena I pada while pertama adalah 1 kemudian x/2
pada while loopingan ke 2 , operasi x %2 akan tersimpan pada result[1] karena I pada loopingan ke 2 adalah 1
jika perintahnya dilakukan semua sampai pada for
for nya akan ngeprint result dari array ke 0 - 2, karena nilai I ditentukan sampai nilai x <= 0
outputnya adalah 
1
1
1



















Tambahan untuk array, array dapat dinyatakan dalam bentuk 2D sampai dengan dimensi ke-n
dinyatakan dengan 
tipedata variable[][][][][].... dst
contoh kegunaan untuk array 2D adalah pembuatan dan perhitungan matriks

String adalah array dari char yang diakhiri oleh \0(null)
karena string adalah array dari char jadi cara penggunaan string sama dengan aturan array dikombinasi dengan char dan diakhiri oleh \0
berikut adalah contoh Kodingannya

//strcat berguna unutk menambahkan sebuah string didalam string strcat(string1, string 2) menambahkan string 2 kedalam string 2
//strncat berguna untuk menambahkan sebuah string dari karakter ke n
pertama stirng 2 kedalam string 1. strncat(string1, string 2,n)
 char kata1[]="Binus";
 char kata2[]="univ";

 strcat(kata1," ");
 strncat(kata1,kata2,3);

 printf("kata 1 %s\n",kata1);
 printf("kata 2 %s\n",kata2);
 // strstr berguna untuk mendetektsi ada nya sebuah kata dalam sebuah string strstr(string,kata) atau strstr(string1,string2)
 if(strstr(kata1,"jalan")==NULL)
 printf("tidak mengandung kata jalan");
 else if(strstr(kata1,"jalan")!= NULL)
 printf("mengandung kata jalan");

 int jumlahdata = 3;
// int score[5] = {100,90,80,70,60};
 int score[5];
// seandai nya ingin membuat array dari string , jadi dapat berisi banyak nama gunakan array 2d array nama[baris][kolom]
 char nama[30][100];


// jika ingin menassign nama pda sebuah string kita harus menggnakan strcpy(string copy), tidak bisa menggunakan nama[1] = "rita"
 strcpy(nama[0],"Rita");
// atau jika ingin mengisi data per huruf, isi nya menggunakan banyak char, perbaris dan per kolom
name[0][0]="B";
// name[0][1]="U";
// name[0][2]="D";
// name[0][3]="I";
// name[0][4]="\0";


 score[0]= 10;
 score[2]= 60;

// beda array of char dengan string , kalo array of char isi akhir nya tidak ada \0, sedangkan kalau string isi dari akhir nya adalah \0, karena array of char adalah kumpulan char, sedangkan kalau string adalah kata
 for(int i = 0; i < jumlahdata ; i++)
 {
  //nama harus minimal 3 huruf
  do
  {
  printf("masukkan nama ");
  scanf("%s", nama[i]);
  }while(strlen(nama[i])<3);
  //nilai harus diantara 1-100
  do
  {
  printf("score ke %d :",i+1 );
  scanf("%d", &score[i]);
  }while(score[i]<0 || score[i]>100);
 }
 for(int i = 0; i < jumlahdata ; i++)
 {
  printf("score ke %s : %d\n",nama[i] , score[i]);
 } 


2201765284
kevin.leon@binus.ac.id
Skyconnectiva.com
Kevin Leon

Comments