Makalah Array, Struck, dan Pointer
DAFTAR
ISI
KATA PENGANTAR
DAFTAR ISI
BAB 1 PENDAHULUAN
1.1 LATAR BELAKANG
1.2 RUMUSAN MASALAH
1. Pengertian
Array
a. Karakteristik
Array
b. Deklarasy Array
2. Penggunaan
Array
3. Pengurutan
Array
4. Operasi Dasar
Pada Array
5. Bentuk-bentuk
Array
6. Keunggulan
Array
7. Kelemahan Array
8. Pengertian
Struck
9. Dasar Struck
10. Pengertian
Pointer
11. Fungsi Pointer
12. Operator
Pointer
13. Contoh Penerapan Program
BAB II PEMBAHASAN
2.1 Pengertian
Array
2.1.1 Karakteristik Array :
2.1.2 Deklarasi Array :
2.2 Penggunaan Array
2.3 Pengurutan Array
2.4 Operasi Dasar Pada Array
2.5 Bentuk-Bentuk Array
2.6 Keunggulan Array
2.7 Kelemahan Array
2.8 Pengertian
Struck
2.9 Dasar Struck
2.10 Pengertian
Pointer
2.11 Fungsi Pointer
2.12 Operator
Pointer
2.13 Contoh
Penerapan Program
BAB III PENUTUP
A. KESIMPULAN
B. SARAN
DAFTAR PUSTAKA
BAB
1
PENDAHULUAN
1.1
LATAR BELAKANG
Dalam pemrogaman ada beberapa macam bahasa pemrogaman.
Salah satunya adalah bahasa pemrogaman C++. Dalam bahasa pemrogaman C++
terdapat penggunaan variabel array. Namun penggunaan array tidak hanya pada
pemrogaman, array juga banyak digunakan untuk berbagai macam struktur data,
seperti database.
Selanjutnya kita harus memahami terlebih dulu pengertian
struktur. Pada makalah ini kami menuliskan telebih dulu pngertian dari struktur
karena hal ini sangat berhubungan erat dengan array yang nantinya berujung pada
pengertian struktur array, apa yang disebut array, bagaimana
struktur penulisannya, apa saja bentuk-bentuk array, semuanya akan kita
pelajari dalam makalah ini.
1.2
RUMUSAN
MASALAH
Pada makalah ini kami
merumuskan beberapa hal :
1.
Pengertian
Array
a.
Karakteristik
Array
b.
Deklarasy
Array
2.
Penggunaan
Array
3.
Pengurutan
Array
4.
Operasi
Dasar Pada Array
5.
Bentuk-bentuk
Array
6.
Keunggulan
Array
7.
Kelemahan
Array
8.
Pengertian
Struck
9.
Dasar
Struck
10.
Pengertian
Pointer
11.
Fungsi
Pointer
12.
Operator
Pointer
13.
Contoh
Penerapan Program
BAB
II
PEMBAHASAN
2.1
Pengertian
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).
2.1.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.1.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.
2.2
Penggunaan
Array
Pada dasarnya penggunaan array sangat luas tidak hanya
digunakan pada bahasa pemrogaman.
Contoh
penggunaan array sebagai berikut :
a. Array digunakan untuk suatu database, contoh : tabel.
b. Array digunakan untuk operasi matematika seperti vektor.
c. Digunakan dalam bentuk struktur data lain, contohnya
list.
2.3
Pengurutan
Array
Pengurutan atau sorting adalah proses yang paling sering
dilakukan dalam pengolahan
data, pengurutan dibedakan menjadi dua, yaitu :
a. Pengurutan internal
Pengurutan dilakukan terhadap sekumpulan data di media
memory internal komputer di mana data dapat diakses elemennya secara langsung.
b. Pengurutan eksternal
Pengurutan data di memory sekunder. Biasanya data
bervolume besar sehingga tidak mampu dimuat semuanya di memory utama.
2.4
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 :
1)
Operasi
terhadap satu elemen/posisi array
2)
Operasi
terhadap array sebagai keseluruhan
a) Dua operasi paling dasar terhadap satu elemen/posisi
adalah :
·
Penyimpanan
nilai elemen ke posisi tertentu di array
·
Pengambilan
nilai elemen dari posisi tertentu di array
b) Operasi-operasi dasar terhadap array secara keseluruhan
adalah :
·
Operasi
penciptaan
·
Operasi
penghancuran
·
Operasi
pemrosesan tranversal
·
Operasi
pencarian (table look-up)
·
Operasi
sorting
2.5
Bentuk-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 kolom 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.
2.6
Keunggulan
Array
Keunggulan array adalah sebagai berikut :
1. Array sangat cocok untuk pengaksesan acak. Sembarang
elemen di array dapat diacu secara langsung tanpa melalui elemen-elemen lain.
2. Jika berada di suatu lokasi elemen, maka sangat mudah
menelusuri ke elemen-elemen tetangga, baik elemen pendahulu atau elemen
peberus.
3. Jika elemen-elemen array adalah nilai-nilai independen
dan seluruhnya harus terjaga, maka penggunaan penyimpanannya sangat efisien.
2.7
Kelemahan
Array
Kelemahan array adalah sebagai berikut :
Array mempunyai fleksibilitas rendah, sehingga tidak
cocok untuk berbagai aplikasi karena array mempunyai batasan sebagai berikut :
1. Array harus bertipe homogen, kita tidak dapat mempunyai
array dimana satu elemenadalah karakter, elemen yang lain adalah bilangan atau
tipe lain.
2. Kebanyakan bahasa pemrogaman mengimplementasikan array
statik yang sulit diubah ukurannya di waktu eksekusi. Bila penambahan dan
pengurangan terjadi terus-menerus, maka representasi statis :
·
Tidak
efisien dalam penggunaan memory
·
Menyiakan
banyak waktu komputasi
·
Pada suatu
aplikasi, representasi statis tidak dimungkinkan
3. Bila penambahan dan pengurangan terjadi terus-menerus,
maka representasi statis (array) :
·
Tidak
efisien dalam penggunaan memory
·
Menyiakan
banyak waktu komputasi
·
Pada
suatu aplikasi, representasi statis tidak dimungkinkan
2.8
Pengertian
Struck
Struktur
adalah sekumpulan variabel yang masing-masing dapat berbeda tipe, dan
dikelompokkan ke dalam satu nama (menurut Pascal, struktur juga dikenal sebagai
record). Struktur membantu mengatur data-data yang rumit, khususnya dalam
program yang besar, karena struktur membiarkan sekelompok variabel diperlakukan
sebagai satu unit daripada sebagai entity yang terpisah.
Salah
satu contoh struktur tradisional adalah record daftar gaji karyawan, dimana
karyawan digambarkan dengan susunan lambang seperti nama, alamat, nomor jaminan
sosial, gaji dan sebagainya. Beberapa dari lambang tersebut biasanya berupa
struktur, nama mempunyai komponen begitu juga alamat dan gaji.
Struktur
ini sering digunakan untuk mendefinisikan suatu record data yang disimpan di
dalam file. Struktur termasuk ke dalam tipe data yang dibangkitkan (derived
data type), yang disusun dengan menggunakan obyek tipe lain.
Contoh
:
struct mhs
{
char *nama;
char *nim;
int tts, tas;
float akhir;
char aksara;
}
Kata
kunci struct menunjukkan definisi struktur, dan identitas mhs menunjukkan
structure tag. Dengan demikian terdapat tipe data baru bernama struct mhs, yang
terdiri dari nama mahasiswa, nilai tes tengah semester, tes akhir semester,
nilai akhir, dan huruf aksara, yang masing-masing disebut dengan field.
Dapat
dituliskan dengan :
struct mhs x, y[100], *z;
Variabel
x adalah variabel tunggal, y adalah variabel array dengan 100 lokasi memori,
dan z adalah variabel pointer, yang kesemuanya masing-masing berisi field di
atas. Jadi, variabel y adalah daftar nama, nilai tts, tas, akhir, dan huruf
aksara dari 100 mahasiswa.
Sehingga
dapat ditulis :
struct mhs
{
char *nama;
char *nim;
int tts, tas;
float akhir;
char aksara;
} x, y[100], *z;
Inisialisasi
juga dapat dilakukan dengan :
struct mhs x = { “Garfield”, 80, 60,
76.8, ‘A’ };
Untuk
mengakses anggota dari struktur digunakan salah satu dari dua operator, yaitu
operator titik (.), atau operator panah (->) tergantung tipe variabel yang dideklarasikan.
Jika variabel tunggal (misal x) maka digunakan operator titik, sedangkan jika
variabel pointer (misal z) digunakan operator panah.
Contoh
:
printf (“%s”, x.nama);
printf (“%s”, z->nama);
2.9
Dasar
Struck
Misal ada permasalahan grafis yang melibatkan
koordinat x dan y. Objek dasar yang akan dibuat struktur adalah titik
koordinatnya, yang diasumsikan sebagai koordinat x dan y dan keduanya bilangan
bulat.
Deklarasi dari koordinat x dan y adalah :
struct point
{
int x;
int y;
};
kata kunci struct mengenalkan deklarasi
struktur yang mana deklarasi list terlampir di kurung kurawal { }. Nama pilihan
yang disebut structure tag mengikuti kata struct.
Deklarasi struktur yang tidak diikuti oleh
variabel list tidak menyediakan tempat penyimpanan; deklarasi struktur hanya
menjelaskan template atau bentuk struktur. Kalau deklarasi di tag, tag dapat
digunakan dalam definisi contoh struktur. Sebagai contoh, memberikan deklarasi
point diatas.
struct point pt;
Variabel pt yang berupa struktur tipe struct
poin. Sebuah struktur dapat diletakan di depan dengan mengikuti difinisinya
dengan daftar inisialisasi, masing-masing adalah lambang konstanta.
2.10 Pengertian Pointer
Pointer adalah sebuah variabel yang berisi
alamat lain. Suatu pointer dimaksudkan untuk menunjukan ke suatu alamat memori
sehingga alamat dari suatu variabel dapat diketahui dengan mudah.
Intinya :
- Pointer adalah suatu variabel
yang menunjuk ke alamat memory variabel yang lainnya.
- Variabel pointer berisi suatu
alamat (alokasi memory).
2.11 Fungsi Pointer
Kegunaan
pointer yang utama adalah untuk menyimpan alamat memori dari sebuah variabel
dan alamat
dari
sebuah fungsi. Pointer dapat meningkatkan kinerja untuk operasi yang dilakukan
secara berulang.
2.12 Operator Pointer
Ada
2 operator pointer yang dikenal secara luas, yaitu operator “&” dan
operator “*”.
a.
Operator &
Operator &
merupakan operator alamat.
Pada saat pendeklarasian variabel,
user tidak diharuskan menentukan
lokasi sesungguhnya pada
memory, hal ini
akan dilakukan secara
otomatis oleh kompiler dan operating sysem pada saat run-time. Jika
ingin mengetahui dimana suatu variabel akan disimpan, dapat dilakukan
dengan memberikan tanda ampersand
(&) didepan variable , yang berarti "address of".
Contoh
:
Misalkan
variabel DATA_1 diletakkan pada alamat memory 1770, kemudian dituliskan
instruksi
sbb
:
DATA_1 = 27; Variabel DATA_1 berisi data 27
DATA_2 = DATA_1; Variabel DATA_2 diberi isi seperti DATA_1,
yaitu 27
DATA_3 = &DATA_1; Variabel DATA_3 berisi alamat memory
DATA_1, yaitu 1770
b.
Operator *
Operator
* merupakan operator reference. Dengan menggunakan pointer,kita dapat mengakses
nilai yang tersimpan
secara langsung dengan
memberikan awalan operator
asterisk (*) pada identifier pointer, yang berarti
"value pointed by".
Contoh
:
Melanjutkan
deklarasi sebelumnya, jika ada penulisan variabel berikut
DATA_4
= *DATA_3
Dapat
dikatakan bahwa DATA_4 sama dengan nilai yang ditunjuk oleh DATA_3.
DATA_3
berisi alamat memory 1770, sementara memory 1770 menampung data bernilai
27. Jadi DATA_4 berisi nilai yang berada
pada alamat 1770, yaitu 27.
2.13 Contoh Penerapan Program
#include
main(){
int *pointer;
int DATA1;
DATA1=27;
printf(" Isi variabel DATA1 =
%d",DATA1);
printf("\n Alamat variabel DATA1 =
%d",&DATA1);
printf("\n Alamat variabel *pointer =
%d",&pointer);
printf("\n Isi variabel *pointer =
%d",pointer);
pointer=&DATA1;
printf("\n Alamat variabel *pointer =
%d",&pointer);
printf("\n Isi variabel *pointer =
%d",pointer);
printf("\n Isi dari alamat %d =
%d",pointer,*pointer);
printf("\n");
return
0;
}
SS Program :
BAB III
PENUTUP
A.
KESIMPULAN
Struktur adalah sekumpulan elemen-elemen data
yang digabung menjadi suatu kesatuan. Struktur array adalah kumpulan
elemen-elemen data yang digabungkan menjadi suatu kesatuan yang memiliki tipe
homogen (sama). Array merupakan bagian dari struktur data yaitu termasuk ke
dalam struktur data sederhana yang dapat didefinisikan sebagai pemesanan
alokasi memori sementara pada komputer. Pointer adalah sebuah variabel yang
berisi alamat lain. Suatu pointer dimaksudkan untuk menunjukan ke suatu alamat
memori sehingga alamat dari suatu variabel dapat diketahui dengan mudah.
Apabila kita membuat progam dengan data yang
yang sudah kita ketahui batasnya, maka kita menggunakan array (tipe data
statis), namum apabila datanya belum kita ketahui batasnya maka gunakan pointer
(tipe data dinamis). Elemen-elemen array tersusun secara sekuensial dalam
memori komputer. Array dapat berupa satu dimensi, dua dimensi, ataupun
multidimensi.
B.
SARAN
Dengan tersusunnya makalah ini diharapkan
para membaca memberikan saran dan kritik yang membangun, sebagai motivasi demi
terciptanya kemajuan dalam pembuatan makalah-makalah selanjutnya.