Senin, 25 Februari 2019

POINTER


Setiap nama variabel yang deklarasi merupakan representasi dari sebuah alamat memori yang menampung data.  Misalkan terdapat sebuah variabel bertipe integer dengan nama var_int, maka 4 byte memori akan dipesan untuk variabel tersebut. Lokasi memori yang dipesan tersebut dikenal dengan nama var_int. Pada level mesin, lokasi tersebut memiliki alamat memori.
Dalam bahasa C, sebuah alamat memori dapat diakses dan dimanipulasi dengan menggunakan pointer. Pointer adalah sebuah variabel yang digunakan untuk menyimpan alamat memori variabel lain. Sebuah pointer dideklarasi dengan tipe data dan tanda ‘*’ (asterik) di depan nama variabel, seperti contoh di bawah.

1
2
3
4
5
6
7
int *ptr_i; /* pointer dengan tipe data integer */

float *ptr_f; /* pointer dengan tipe data float */

double *ptr_d; /* pointer dengan tipe data double */

char *ptr_c; /* pointer dengan tipe data char */

Terdapat dua operator yang digunakan dalam pointer, yaitu dereference operator (asterik (‘*’)) dan reference operator (ampersand (‘&’)). Dereference operatordigunakan untuk mendapatkan nilai dari alamat memori yang ditunjuk oleh pointer. Sedangkan reference operator digunakan untuk mendapatkan alamat memorisuatu variabel.

1
2
3
4
5
6
7
8
9
10
11
12
13
int i = 10;

/* mengambil alamat memori variabel i dengan menggunakan
 * reference operator dan menyimpannya ke dalam pointer ptr_i
 */
int *ptr_i = &i;

/* mengambil nilai dari alamat memori yang ditunjuk pointer ptr_i
 * dengan menggunakan dereference operator. Jika lupa meletakkan
 * dereference operator di depan nama variabel, maka yang akan
 * tercetak adalah alamat memori yang ditunjuk
 */
printf("%d\n", *ptr_i);

Tipe data variabel pointer harus sama dengan tipe data variabel yang ditunjuk.

Cara Kerja Pointer
Misalkan terdapat sebuah variabel i dan sebuah pointer ptr_i, dengan ptr_i menunjuk ke alamat i sebagai berikut.
1
2
3
int i = 10;

int *ptr_i = &i;
ASUMSIKAN variabel i disimpan di dalam memori dengan alamat memori 22FF3C (dalam hexadesimal) dan pointer disimpan di dalam memori dengan alamat memori 22FF38. Maka yang tersimpan di dalam pointer ptr_i adalah 22FF3C. Dengan kata lain, pointer ptr_i menunjuk ke alamat memori variabel i.

Perlu diingat, pointer hanya menujukkan ke sebuah alamat memori BUKAN menyimpan nilai yang ada pada alamat memori tersebut. Jadi, jika nilai variabel i diubah, maka nilai yang ditunjuk oleh pointer ptr_i juga akan berubah sesuai dengan nilai yang berubah. Begitu juga jika nilai yang ditunjuk pointer ptr_i diubah seperti di bawah, maka nilai pada variabel i juga akan berubah.
1
*ptr_i = 5

referensi :https://www.belajarcpp.com/tutorial/c/pointer-dasar/


Senin, 18 Februari 2019

STRUKTUR ARRAY

A. Definisi   Struktur 
Struktur adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun field-field tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual. Field-field tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam operasinya.

 B. Definisi Array
Array atau larik sendiri di definisikan sebagai pemesanan alokasi memory berurutan. Definisi ini kurang tepat, karena terjadi kerancuan antara struktur data dan representasinya. Memang benar array hampir selalu di implementasikan menggunakan memory berurutan tapi tidak selalu demikian. Semua elemem array bertipe sama. Array cocok untuk organisasi kumpulan data homogen yang ukuran atau jumlah elemen maksimumnya telah diketahui dari awal. Homogen adalah bahwa setiap elemen dari sebuah array tertentu haruslah mempunyai tipe data yang sama.
Dari perngertian struktur dan pengertian array di atas, maka dapat ditarik kesimpulan bahwa struktur array adalah kumpulan elemen-elemen data yang digabungkan menjadi suatu kesatuan yang memiliki tipe homogen (sama). 
1.   Karakteristik Array
a.    Mempunyai batasan dari pemesanan alokasi memori (bersifat statis).
b.   Mempunyai tipe data sama (bersifat homogen).
c.    Dapat diakses secara acak.
2.   Deklarasi Array
Ada tiga hal yang harus diketahui dalam pendeklarasian, yaitu :
a.    Type data array.
b.    Nama variable array.
c.    Subkrip / index array.
Contoh deklarasai array adalah sebagai berikut :
int A[10], artinya variabel A adalah kumpulan data sebanyak 10 bilangan bertipe integer.
C.      Penggunaan Array
Pada dasarnya penggunaan array sangat luas tidak hanya digunakan pada bahasa pemrogaman. Contoh penggunaan array sebagai berikut :
1.   Array digunakan untuk suatu database, contoh : tabel.
2.   Array digunakan untuk operasi matematika seperti vektor.
3.   Digunakan dalam bentuk struktur data lain, contohnya list.
D.      Pengurutan Array
Pengurutan atau sorting adalah proses yang paling sering dilakukan dalam pengolahan data, pengurutan dibedakan menjadi dua, yaitu :
1.   Pengurutan internal
Pengurutan dilakukan terhadap sekumpulan data di media memory internal komputer di mana data dapat diakses elemennya secara langsung.
2.   Pengurutan eksternal
Pengurutan data di memory sekunder. Biasanya data bervolume besar sehingga tidak mampu dimuat semuanya di memory utama.
E.      Operasi Dasar Pada Array
Operasi terhadap elemen array dilakukan dengan pengaksesan langsung. Nilai di masing-masing posisi elemen dapat di ambil dan nilai dapat disimpan tanpa melewati posisi-posisi lain.
Terdapat dua operasi, yaitu :
a.       Operasi terhadap satu elemen/posisi array
b.       Operasi terhadap array sebagai keseluruhan
Dua operasi paling dasar terhadap satu elemen/posisi adalah :
a.       Penyimpanan nilai elemen ke posisi tertentu di array
b.      Pengambilan nilai elemen dari posisi tertentu di array
Operasi-operasi dasar terhadap array secara keseluruhan adalah :
a.      Operasi penciptaan
b.      Operasi penghancuran
c.      Operasi pemrosesan tranversal
d.      Operasi pencarian (table look-up)
e.      Operasi sorting
1.      Penyimpanan dan Pengambilan Nilai
Saat penyimpanan dan pengambilan nilai array, biasanya bahasa pemrogaman menyediakan sintaks tertentu untuk penyimpanan dan pengambilan nilai elemen pada posisi tertentu di array.
Contoh :
A[5] = 78, berarti penyimpanan nilai 78 ke posisi ke-5 dari array A
C      = A[5], berarti pengambilan nilai elemen posisi ke-5 dari array A
2.      Penciptaan dan Penghancuran
Operasi penciptaan biasa disebut inisialisasi. Operasi ini untuk mempersiapkan struktur data untuk operasi-operasi berikutnya. Operasi penghancuran menyatakan ketidak berlakuan struktur data atau membebaskan memory, menyerahkan memory ke manajemen memory agar dapat di pergunakan keperluan lain. Operasi penghancuran penting terutama bila struktur data di implementasikan secara dinamis menggunakan pointer.
3.      Pemrosesan Tranversal
Operasi pemrosesan transversal adalah pemrosesan mengolah seluruh elemen secara sistematik.
4.      Pencarian di Array (table look-up)
Pencarian di array (table look-up) adalah proses pencarian suatu nilai di array. Klasifikasi pencarian di array adalah :
1.     Pencarian sekuen (sequential searching), yaitu :
a.    Tanpa boolean, terbagi :
       o Tanpa sentinen
       o Dengan sentinen
b.   Menggunakan boolean
2.      Pencarian secara biner/dokotom (binary = dochotomy searching).
F.       Bentu-Bentuk Array
1.      Array Satu Dimensi
Array satu dimensi yaitu kumpulan elemen-elemen identik yang hanya terdiri dari satu baris atau hanya satu kolom saja alamat penyimpanan data (indeks). Elemen-elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen tersebut boleh berbeda.
Bentuk umum :
Tipe_data namaArray[n] = {elemen0, elemen1, elemen2,…..,n};
n = jumlah elemen
contoh pada progam : int ukur[5] = {39, 40. 41, 38, 40};
-      int adalah tipe data yang berupa bilangan bulat.
-      Ukur adalah nama variabel array.
-      [5] adalah ukuran untuk menyatakan jumlah maksimal elemen array.
-      {..} adalah tempat pemberian nilai/elemen array.
2.      Array Dua Dimensi
Array dua dimensi sering digambarkan sebagai sebuah matriks, merupakan perluasan dari array satu dimensi. Jika array satu dimensi hanya terdiri dari sebuah baris dan beberapa kilom elemen, maka array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen bertipe sama. sehingga dapat digambarkan sebagai berikut :
Bentuk umum :
Tipe_data namaArray [m][n] = {{a,b,…z},{1,2,…,n-1}};
contoh : int lulus[4][3];
-      Nilai 4 untuk menyatakan banyaknya baris dan 3 untuk menyatakan banyaknya kolom.
Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian array satu dimensi, kecuali bahwa array dua dimensi terdapat dua jumlah elemen yang terdapat dikurung kurung siku dan keduanya boleh tidak sama. Elemen array dua dimensi diakses dengan menuliskan kedua indeks elemennya dalam kurung.
3.      Array MultiDimensi
Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini tidak terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang dibutuhkan banyak, maka array ini sangat memegang peranan yang penting.
Bentuk umum pendeklarasian array multidimensi :
Tipe_data namaArray[ukuran1][ukuran2]…[ukuranN];
Sebagai contoh :
int data_huruf[2][8][8];
contoh di atas merupakan pendeklarasian array data_huruf sebagai array berdimensi tiga.

Minggu, 17 Februari 2019

STRUCT PADA C++

Pengertian
Structure (struct) merupakan kumpulan variable-variable yang bertempat di suatu tempat yang sama. Berbeda dengan array yang berisi kumpulan variable-variable yang bertipe sama dalam satu nama, maka suatu structure dapat terdiri dari variable-variable yang berbeda tipenya yang tersimpan dalam satu nama structure.
Dalam hal ini, dalam suatu structure bisa terdapat berbeda-beda type data seperti char, int, float, dll.
Pola Structure di C++ :
1
2
3
4
5
struct nama_struct{
/*macam-macam deklarasi variabel
*…
*/
}nama_object;
Keterangan
struct : merupakan identitas dari struct tersebut.
variabel : merupakan sepasang block, tempat dimana semua variabel dikelompokan sebagai member dari struct tersebut. pembuatan variabel di dalam struct sama sekali tidak ada perbedaan dengan mendirikan variabel biasa.
nama_object : merupakan deklarasi yang menggunakan struct tersebut menjadi tipe data dari deklarasi tersebut. kita dapat mendirikan banyak object di tempat tersebut, masing-masing dipisahkan dengan tanda koma . Object selalu diletakan setelah penutup block dan sebelum semicolon ;.
Penggunaan dari nama_struct dan nama_object merupakan opsional, kita bisa mendirikan tanpa hal tersebut, tapi kita tidak bisa mengabaikan keduanya. Dan masing-masing tindakan akan membuat struct memiliki sifat yang berbeda.
Jika kita mendirikan struct tanpa menggunakan nama_struct, maka kita diharuskan menggunakan object. Jika tindakan ini dilakukan maka akan membuat struct tidak bisa di pakai di luar deklarasi struct (kita tidak bisa mendirikan object diluar struct tersebut). biasanya tindakan ini digunakan untuk membuat sebuah struct yang tidak di anjurkan untuk digunakan (agar tidak terjadi pembuatan object di luar deklarasi struct).
Diberdayakan oleh Blogger.

About me

Instagram : kvinrzkyxd
Wa : 082148535913

Email: kevinrizkyanya@gmail.com

Formulir Kontak

Nama

Email *

Pesan *

Total Tayangan Halaman


Cari Blog Ini

Sponsor

AD BANNER