Selasa, 26 Februari 2019

MATERI POINTER C++








Sesuatu fasilitas yang tersedia dalam C++ yang tidak ditemukan pada bahasa pemrogamanlainnya adalah pointer, dengan pemanfaatan pointer programmer dapat melakukan manipulasi memori secara langsung. Sebuah pointer menyediakan akses tidak langsung terhadap objek.Pada dasarnya manusia telah menggunakan pointer pada dunia nyata setiap saat.Sangat banyak contoh yang dapat kita lihat.Misalnya saja pada saat seorang dosen mengatakan, “Kerjakan Tugas 1.1 di buku,” telah terjadi penugasankepada mahasiswa secara tidak langsung.Contoh lainya adalah sebuah URL (Uniform Resource Locator), seperti http://www.sebarkan.comjuga merupakan sebuah pointer.URL tersebut memberitahukan lokasi halaman web tersebut.Jika halaman web pindah, makaURL tidak berlaku lagi dan menunjuk ke halaman yang sudah tidak ada.Oleh karena itu pengetahuan yang banyak tentang pointer akan sangat membantu bagi seseorang yang ingin mempelajari bahasa C/C++.

Pengertian Pointer
Pointer adalah variabel yang menunjuk pada variabel lainnya. Sebelumnya pernah dijelaskan mengenai variabel, menyatakan bahwa. Variabel merupakan sebuah memori perwakilan dari alamat memori pada komputer. Hal yang sebenarnya terjadi adalah pointer itu menyimpan alamat memori yang dia tunjuk. Pada pointer kita dimungkinkan untuk menunjuk suatu memori, mengubah nilai dan menyalin nilai memori tersebut secara tidak langsung (perantara melalui variabel pointer).Sebelum kita mempelajari pointer, ada dua hal yang perlu anda ketahui. Dalam pointer terdapat dua macam operator yang akan kita gunakan, yaitu Address-of (&) dan Dereference operator (*).
Fungsi Pointer
1.                 Kegunaan pointer yang utama adalah untuk menyimpan alamat memori dari sebuah variabel (data type atau object dari class). Selain menyimpan alamat dari variabel, pointer juga dapat digunakan untuk menyimpan alamat dari sebuah fungsi (function pointer).
2.      Function pointer telah digunakan sejak dikenalkannya bahasa C,dan banyak digunakan untuk sebuah fungsi callback atau untuk meningkatkan readability dari sebuah code.
3.      Anda dapat memperlakukan function pointer seperti pointer biasa (pointer ke datatype/object), anda dapat menyimpan,mengirimkan, merubah address, atau meng-evaluasi address dari pointer ke fungsi ini dengan sifat tambahan anda dapat memanggil fungsi yang ditunjuk oleh function pointer. Pointer  juga berguna untuk :
4.      Mengirimkan  “Parameter  yang  berupa  variabel”  ke  dalam  fungsi,  artinya  nilai variabel bisa diubah di dalam fungsi.
5.      Untuk membuat variabel DINAMIS (Bukan variabel Statis) penggunaan function pointer pada C++ dibatasi, yaitu function pointer tidak boleh menunjuk pada function yang berada dalam sebuah class (class member function) kecuali function tersebut berjenis static.
6.      Karena pointer dapat meningkatkan kinerja untuk operasi yang dilakukan secara berulang. Dengan syarat Kalau mendeklarasikan pointer kedalam array, tidak boleh menggunakan tanda bintang.
7.      Pointer juga di gunakan untuk mengalokasikan tempat pada memori secara dinamis yakni dapat diubah-ubah alokasi tempatnnya pada memori data yang dimasukkan sebagai nilai pointer akan selalu tersimpan sehingga diperlukan penghapusan yang tujuannya   untuk   mengosongkan   memori,   perintah   yang   digunakan   untuk menghapus memori adalah delete [] nama variable.
Macam – macam pointer
1.     Operator Dereference (&)

                Operator Dereference (&) yaitu operator yang berfungsi mendeklarasikan sebuah variabel didalam penggantian memori. operator ini biasa disebut dengan "address of". Jadi seandainya sobat ingin mengetahui dimana variabel akan disimpan (untuk mengetahui letak / alamat penyimpanan variabel di memori), sobat dapat memberikan tanda "&" (ampersand sign) didepan variabel, yang berarti "address of". Karena dengan menggunakan operator dereference (&) ini, sebuah variabel akan menghasilkan alamat lokasi penyimpanannya di memori. Sebagai contoh "int angka" ditempatkan pada memori dengan alamat 0x6ffe34 untuk mengetahuinya sobat dapat menuliskan code seperti ini 
  

cout<<"\nAlamat variabel angka (&angka) : "<<&angka; berikut code lengkapnya:
                                                                                                                                                                                                                                                                                                                                                                                                                  

















                                                                                                                                          


2. Operator Reference (*)
Seandainya pada operator Dereference (&) sobat dapat mengeluarkan alamat memory dari sebuah variabel, sedangkan pada Operator Reference (*) sobat dapat mengeluarkan (menampilkan) nilai dari alamat memori yang di tunjuk. untuk penggunaan nya sendiri sobat dapat menambahkan identifier asterisk (*) didepan variabel. biasanya Operator reference disebut dengan "value pointed by"

Dari contoh program diatas, nilai *angkax adalah "90", hal tersebut karena pointer angkax menjunjuk ke variabel angka sehingga apabila kita menuliskan code cout<<"\nNilai yang ditunjuk pointer *angkax : "<<*angkax; maka akan keluar angka 90 karena kita mengeluarkan nilai dari alamat memori yang ditunjuk oleh pointer angkax (nilai / value yang berada di alamat memori 0x6ffe34).untuk lebih memahami materi Pointer pada C++ ini, khususnya dalam penggunaan Operator Dereference (&) dan Operator Reference (*), kita akan membahas satu lagi contoh program pointer lengkap dengan penjelasannya.


 


3. Pointer dan Array (pointer to array)
         Hubungan antara pointer dan array  pada C sangatlah erat. Sebab sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer. Pembahasan berikut akan memberikan gambaran hubungan antara pointer dan array. Misalnya dideklarasikan di dalam suatu fungsi 

      static int tgl_lahir[3] = { 01, 09, 64 }; 
      
      dan 

      int *ptgl; 
      Kemudian diberikan instruksi 

      ptgl = &tgl_lahir[0]; //pointer to array of integer

      maka ptgl akan berisi alamat dari elemen array tgl_lahir yang berindeks nol. Instruksi di atas bisa juga ditulis menjadi 

      ptgl = tgl_lahir; 
     
      sebab nama array tanpa tanda kurung menyatakan alamat awal dari array. Sesudah penugasan seperti di atas, 
      
      *ptgl 
      
      dengan sendirinya menyatakan elemen pertama (berindeks sama dengan nol) dari array tgl_lahir.  Hal ini bisa dilihat melalui pembuktian program berikut.







4. Pointer Sebagai Parameter Fungsi

a. Penerapan pointer sebagai parameter yaitu jika diinginkan agar nilai suatu variabel internal dapat        diubah oleh fungsi yang dipanggil.  
b. Sebagai contoh dapat dilihat pada fungsi berikut.


c. Fungsi di atas dimaksudkan agar kalau dipanggil, variabel yang berkenaan dengan parameter              aktual dapat diubah nilainya, masing-masing dinaikkan sebesar 2. Contoh pemanggilan : 


d. Perhatikan, dalam hal ini variabel a dan b harus ditulis diawali operator alamat (&) yang berarti          menyatakan alamat variabel, sebab parameter fungsi dalam pendefinisian berupa pointer. 


Referensi


http://yuliana.lecturer.pens.ac.id/Konsep%20Pemrograman/Teori/T12-Pointer(1).pdf
https://www.belajarcpp.com/tutorial/cpp/pointer/
http://www.materidosen.com/2016/11/pointer-pada-c-lengkap-contoh-program.html



                           
















      



Senin, 25 Februari 2019

STRUKTUR ARRAY


1. PENGERTIAN
Array merupakan sebuah variabel yang menyimpan lebih dari 1 buah data yang memiliki tipe data yang sama. Jadi dapat dikatakan bahwa array merupakan kumpulan dari data-data tunggal yang dijadikan dalam 1 variabel array yang alamat memorinya berbeda yang selanjutnya disebut elemen-elemen array yang bisa kita akses berdasarkan indeks.
Structure digunakan untuk mengelompokan sejumlah data yang mempunyai tipe data yang berbeda. Variabel-variabel yang membentuk sebuah struktur dinamakan elemen struktur. Struktur sama seperti Record di dalam Bahasa Pemrograman Pascal
Structure dapat deklarasikan seperti berikut 

struct nama_tipe_struktur
{   
elemen_struktur;  
 .....    
 .....
};
atau
struct 
{   
elemen_struktur;   
.....    
 .....
} nama_tipe_struktur;

Contoh            struct 
Deklarasi         {     
char nim[5];   
char nama[15];       
float nilai; 
} mahasiswa;

Penggunaan Array sering dikaitkan dengan Structure, sehingga membentuk Array dari Structure. Berikut bentuk deklarasi array structure :

struct 
{   
elemen_struktur;   
.....     
.....
} nama_tipe_struktur[jml_index];

2. CONTOH PROGRAM


HASIL RUNNING


REFERENSI

      HWSMARTSOLUTION. (2016, februari 24). Pengertian Array dan contoh program menampilkan Array pada C++. Retrieved from http://webcache.googleusercontent.com: http://webcache.googleusercontent.com/search?q=cache:http://hwsmartsolution.com/blog/2016/02/24/pengertian-array-dan-contoh-progam-menampilkan-array-pada-c/
Friyadi, S.kom 2007 ” Pemrograman C++ dengan Borland C++ 5.02 (Edisi Revisi)” . Bina sarana informatika (BSI).


Senin, 18 Februari 2019

ALGORITMA PEMROGRAMAN II (MATERI STRUCT/STRUKTUR)

MATERI STRUCT/STRUKTUR
       
Structure digunakan untuk mengelompokan sejumlah data yang mempunyai tipe data yang berbeda. Variabel-variabel yang membentuk sebuah struktur dinamakan elemen struktur. Struktur sama seperti Record di dalam Bahasa Pemrograman Pascal
1. Deklarasi Structure

Contoh               struct
Deklarasi           {
                                  char nim[5];
                                  char nama[15];
                                  float nilai;
                           } mahasiswa;

Contoh-1          /* ---------------------------- */
                         /* Program Penggunaan structure */
                         /* Nama File : struct1.cpp */
                         /* ---------------------------- */
                         #include<stdio.h>
                         #include<conio.h>
                         #include<iostream.h>
                         main()
                        {
                             struct
                             {
                                   char nim[5];
                                   char nama[15];
                                   float nilai;
                             } mahasiswa;
                           
                             clrscr();
                             cout<<"masukan NIM = ";
                                    cin>>mahasiswa.nim;
                             cout<<"masukan Nama = ";
                                    cin>>mahasiswa.nama;
                             cout<<"masukan Nilai Akhir = ";
                                    cin>>mahasiswa.nilai;

                             cout<<"\n\nData Yang di Inputkan adalah : \n\n";
                             cout<<"NIM = "<<mahasiswa.nim<<endl;
                             cout<<"Nama = "<<mahasiswa.nama<<endl;
                             cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl;

                             getch();
                       }
Output yang akan dihasilkan, dari program contoh-1 diatas adalah :



2. Nested Structure

    Nested Structure merupakan suatu Structure dapat digunakan didalam structure yang lainnya.
    Hal seperti ini anda dapat lihat pada program berikut ini :

   Contoh-2           /* ----------------------------------- */
                             /* Program Penggunaan Nested structure */
                             /* Nama File : struct2.cpp */
                             /* ----------------------------------- */
                             #include<stdio.h>
                             #include<conio.h>
                             #include<iostream.h>
                             main()
                             {
                                   struct dtmhs
                                   {
                                         char nim[9];
                                         char nama[15];
                                    };

                                    struct dtnil
                                    {
                                         float nil1;
                                         float nil2;
                                    };

                                    struct
                                    {
                                         struct dtmhs mhs;
                                         struct dtnil nil;
                                    } nilai;

                                   clrscr();

                                   //-> masukan data
                                   cout<<"masukan NIM = "; cin>>nilai.mhs.nim;
                                   cout<<"masukan Nama = "; cin>>nilai.mhs.nama;
                                   cout<<"masukan Nilai UTS = "; cin>>nilai.nil.nil1;
                                   cout<<"masukan Nilai UAS = "; cin>>nilai.nil.nil2;
                                   cout<<endl;

                                   //-> menampilkan hasil masukan
                                  cout<<"masukan NIM = "<<nilai.mhs.nim<<endl;
                                  cout<<"masukan Nama = "<<nilai.mhs.nama<<endl;
                                  cout<<"masukan Nilai UTS = "<<nilai.nil.nil1<<endl;
                                  cout<<"masukan Nilai UAS = "<<nilai.nil.nil2<<endl;
                                  cout<<endl;
                                  getch();
                                  return(0);
                             }   
Output yang akan dihasilkan, dari program contoh-2 diatas adalah :



3. Structure dengan Array

    Penggunaan Array sering dikaitkan dengan Structure, sehingga membentuk Array dari
    Structure. Berikut bentuk deklarasi array structure :

    Contoh-3          /* -------------------------------------------- */
                             /* Program Penggunaan array structure */
                             /* Nama File : struct3.cpp                      */
                             /* -------------------------------------------- */
                             #include <stdio.h>
                             #include <conio.h>
                             #include <iostream.h> 
                             main() 
                             { 
                                  int i,    j=1; 
                                  struct 
                                  { 
                                       char nim[5]; 
                                       char nama[15]; 
                                       float nilai; 
                                  } mhs[5]; 

                                  clrscr(); 
                                  for(i=0; i<2; i++) 
                                 { 
                                       cout<<"masukan NIM               = "; cin>>mhs[i].nim;
                                       cout<<"masukan Nama             = "; cin>>mhs[i].nama;
                                       cout<<"masukan Nilai Akhir    = "; cin>>mhs[i].nilai;
                                 }

                                 for(i=0; i<2; i++)
                                 {
                                      cout<<"Data Ke - "<<j++<<endl;
                                      cout<<"NIM = "<<mhs[i].nim<<endl;
                                      cout<<"Nama = "<<mhs[i].nama<<endl;
                                      cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
                                      cout<<endl;
                                 }
                                 getch();
                            }
Output yang akan dihasilkan, dari program contoh-3 diatas adalah :














4. Structure dengan Function

    Suatu elemen-elemen dari suatu Structure dapat dikirimkan ke dalam suatu function dengan
    cara yang sama seperti mengirimkan suatu variabel sederhana kedalam suatu function.
    Berikut contoh sederhana yang anda dapat lihat pada contoh program berikut

    Contoh-4       /* ------------------------------------------------------ */
                          /* Program Penggunaan structure pada function */
                          /* Nama File : struct4.cpp                                    */
                          /* ------------------------------------------------------ */
                          #include<stdio.h>
                          #include<conio.h>
                          #include<iostream.h> 

                         char ket(float n); 
                         main() 
                         { 
                              int i, j=1, k=1; 
                              struct
                              {
                                   char nim[5];
                                   char nama[15];
                                   float nilai;
                              } mhs[5];
                              clrscr();
                              for(i=0; i<2; i++)
                              {
                                   cout<<"Data Ke - "<<j++<<endl;
                                   cout<<"masukan NIM = "; cin>>mhs[i].nim;
                                   cout<<"masukan Nama = "; cin>>mhs[i].nama;
                                   cout<<"masukan Nilai Akhir = "; cin>>mhs[i].nilai;
                                   cout<<endl;
                               }
                               clrscr();
                               for(i=0; i<2; i++)
                               {
                                    cout<<"Data Ke - "<<k++<<endl;
                                    cout<<"NIM = "<<mhs[i].nim<<endl;
                                    cout<<"Nama = "<<mhs[i].nama<<endl;
                                    cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
                                    cout<<"Keterangan yang didapat = ";
                                    cout<<ket(mhs[i].nilai)<<endl;
                                    cout<<endl;
                                }

                                getch();
                          }
                          char ket(float n)
                          {
                                if(n > 65)
                                         return 'L';
                                else
                                         return 'G';
                           }

Output yang akan dihasilkan, dari program contoh-3 diatas adalah :











Referensi


Frieyadie. (2007). Structure. In Frieyadi, Pemrograman C++ dengan Borland C++ 5.02 (p. 155). Jakarta: BSI.


Modul Debian 2