Makalah array - struktur data
Assalamualaikum warahmatullahi wabarakatuh
hai sobat vandedjoel. kali ini saya akan membagikan sebuah makalah tentang array beserta contoh programnya menggunakan Dev C++. semoga bisa membantu teman - teman dan juga semoga bermanfaat. okelah langsung saja kita kepembahasan tentang makalahnya.
KATA PENGANTAR
Puji syukur kepada Tuhan yang Maha Esa kiranya telah diberikan kesehatan dan pembelajaran sehingga penyusunan makalah ini telah selesai
berkat pertolongan Tuhan dan kerja keras.Dan kepada Bapak Dosen Algoritma saya
mengucap syukur sebesar besarnya kiranya telah diberikan pelajaran algoritma
hingga kami dapat berpikir dengan matang karena penyusunan makalah ini kami
bias bekerja sama antara sesama mahasiswa hingga kami dapat berbagi ilmu.
Semoga makalah ini dapat berguna pada teman-teman mahasiswa tanpa doa teman-teman mungkin
makalah ini belum selesai.Saya berterima kasih atas bantuannya tanpa kalian
mungkin makalah ini tidak selesai.
Mungkin makalah ini jauh diatas
sempurna, jadi kami mohon maaf jika
ada kesalahan penulisan atau kurang
berkenan dihati saudara kami mohon maaf atas kesalahan tersebut. Dan semoga
makalah ini membuat ilmu kita bertambah,
kami berterimakasih kepada Bapak dosen
struktur data beserta teman-teman mahasiswa.
DAFTAR ISI
KATA PENGANTAR------------------------------------------------- 1
DAFTAR ISI------------------------------------------------------------- 2
PENDAHULUAN
A.
Latar
Belakang--------------------------------------------------- 3
B.
Maksud
dan Tujuan------------------------------------------- 3
C.
Rumusan
Masalah--------------------------------------------- 3
D.
Metode
Penulisan---------------------------------------------- 3
PEMBAHASAN
1.
Pengertian-------------------------------------------------------- 4
2.
Karakteristik
Array--------------------------------------------- 4
3.
Mengurutkan
Elemen Array------------------------------- 8
4.
Keunggulan
dan Kelemahan Array-------------------- 9
PENUTUP
1.
Kesimpulan----------------------------------------------------- 10
2.
Kritik Dan Saran--------------------------------------------- 10
Contoh
Program Array------------------------------------------- 11
DAFTAR
PUSTAKA----------------------------------------------- 12
BAB I PENDAHULUAN
a. Latar belakang
Dengan adanya kemajuan Tekhnologi di dunia ini akal pikiran manusia semakin
mahir dalam menciptakan sesuatu yang bermanfaat bagi kehidupan mereka, salah
satunya dalam pembuatan program – program yang sangat membantu mereka dalam menyelesaikan
pekerjaan mereka dengan cepat, baik dan memuaskan, maka dari itu penulis
menyusun makalah mengenai array, queue, record dan stack merupakan salah satu
bagian dari kemajuan zaman yang betul betul terlihat manfaatnya. Array bisa
juga disebut sebagai salah satu program yang terlahir dari dunia tekhnologi
lewat pola pikir manusia yang bermanfaat untuk menyelesaikan suatu
penghitungan.
b. Maksud dan
Tujuan
Maksud dan tujuan penulis dalam penyusunan
makalah ini sebagi penambah informasi bagi penulis yang di outputkan
lewat tulisan tulisan yang terdapat pada makalah ini dan berharap penulis
memberikan informasi dipenyusunan
makalah ini yang isinya tentang
array yang sangat jelas bagi pembaca. Dengan mengetahui tentang array maka penulis maupun pembaca dapat menambah
pengetahuan ilmu yang menyangkut dalam dunia tekhnologi pemograman.
c. Rumusan Masalah
Sesuai dengan mata kuliah ini “
Struktur Data ” untuk menambah ilmu pengetahuan mahasiswa. Rumusan
masalah dari materi Array ini sebagai berikut :
1. Apa
saja yang termasuk Materi dalam mata kuliah Array?
2.
Bagaimana penjelasan tentang materi Array ?
d. Metode
Penulisan
Metode penulisan untuk pembuatan makalah ini penulis menggunakan metode
informasi yang diambil atau didapat dari internet dan sedikit metode
pengetahuan penulis yang didapat dari pembelajaran penulis dalam ruang lingkup
perkuliahan.
BAB II PEMBAHASAN
ARRAY
1. PENGERTIAN
Array atau larik 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.
2. KARAKTERISTIK ARRAY
Mepunyai batasan dari pemesanan alokasi memori (bersifat
statis)
Mempunyai
tipe data sama (bersifat homogen)
Dapat
diakses secara acak.
2.1. DEKLARASI ARRAY
Ada tiga hal
yang harus di ketahui dalam mendeklarasikan array, yaitu :
Type data array
Nama
variable array
Subkrip /
index array.
Contoh
deklarasi dari array adalah sebagai berikut :
int A[5] ;
artinya variabel A adalah kumpulan data sebanyak 5 bilangan bertipe
integer.
2.2. JENIS ARRAY
1.
ARRAY DIMENSI SATU
Deklarasi : Type_Data Nama_Variabel [index]
Rumus untuk
menentukan jumlah elemen dalam array adalah :
n
p(Index Array)
i = 1
ket:
p = Perkalian dari index sebelumnya (untuk
arraybdimensi dua dan tiga).
Pemetaan
(mapping) array dimensi satu ke storage
Rumus : @A[i] = B + (i – 1) * L
Dimana : @A[i] : Posisi array yang dicari
B :
Posisi awal index di memori computer
i :
Subkrip atau index array yang di cari
L :
Ukuran atau besar memori suatu tipe data
2.
ARRAY DIMENSI DUA
Deklarasi : Type_Data Nama_Variabel [index1]
[index2]
Menentukan
jumlah elemen dalam array dimensi dua :
n
p(Index
Array)
i = 1
ket:
p = Perkalian
dari statemen sebelumnya
Pemetaan (mapping) array dimensi dua ke storage
terbagi dua cara pandang (representasi) yang berbeda yaitu :
1) Secara kolom per kolom (coloumn
major order / CMO)
@M[i][j] =
M[0][0] + {(j – 1) * K + (i – 1)} * L
2) Secara baris per baris (row major
order / RMO)
@M[i][j] =
M[0][0] + {(i – 1) * N + (j – 1)} * L
Keterangan :
@M[i][j] = Posisi array yang di
cari, M[0][0 = Posisi alamat awal index array, i = Baris, j = Kolom, L = Ukuran
memory type data, K = Banyaknya elemen per kolom, N = Banyaknya elemen per
baris.
3. ARRAY DIMENSI TIGA
Adalah suatu
array yang setiap elemennya merupakan tipe data array juga yang merupakan array
dimensi dua.
Contoh :
Penyajian
data mengenai banyaknya mahasiswa dari 20 perguruan tinggi di Jakarta,
berdasarkan tingkat (1 sampai 5), dan jenis kelamin (pria atau wanita).
Misalkan array tersebut dinamakan MHS. Ambil subskrip pertama, tingkat = 1, 2,
..., 5; subskrip kedua, jenis kelamin (pria = 1, wanita = 2), dan subskrip
ketiga, perguruan tinggi adalah K = 1, 2, ..., 20. Jadi MHS(4,2,17) menyatakan
jumlah mahasiswa tingkat 4, wanita, dari perguruan tinggi 17.
CROSS
SECTION (Penampang Array Berdimensi-2)
Adalah
pengambilan salah satu subskrip.
Misal : Baris = tetap/konstan
Kolom
= berubah-ubah (*)
Contoh : B(*,4) =
semua elemen pada kolom ke-4.
B(2,*)
= semua
elemen pada baris ke-2.
Pengertian
cross-section pada array dimensi banyak, adalah sama seperti pada array dimensi
dua.
Misal :
MHS(4,*,17) = jumlah mahasiswa tingkat 4 dari perguruan
tinggi 17 (masing-masing untuk ria dan wanita).
MHS(*,*, 3) =
jumlah mahasiswa untuk masing-masing tingkat, pria dan wanita, dari perguruan
tinggi 3.
2.3. OPERASI DASAR PADA ARRAY
Operasi
terhadap elemen di array dilakukan dengan pengaksesan langsung. Nilai
di
masing-masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa
melewati
posisi-posisi
lain.
Terdapat dua tipe operasi, yaitu :
Operasi terhadap satu elemen / posisi dari array
Operasi terhadap array sebagai keseluruhan
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
Operasi-operasi
dasar terhadap array secara keseluruhan adalah :
Operasi penciptaan
Operasi penghancuran
Operasi pemrosesan traversal
Operasi pencarian (table look-up)
Operasi sorting
2.3.1.
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.
2.3.2.
PENYIMPANAN DAN PENGAMBILAN NILAI
Biasanya bahasa pemrograman menyediakan sintaks
tertentu untuk penyimpanan dan pengambilan nilai elemen pada posisi tertentu di
array.
Contoh :
A[10] = 78, berarti penyimpanan
nilai 78 ke posisi ke-10 dari array A
C = A[10], berarti pengambilan nilai
elemen posisi ke-10 dari array A
2.3.3.
PEMROSESAN TRANSVERSAL
Operasi pemrosesan transversal adalah pemrosesan
mengolah seluruh elemen secara sistematik.
2.3.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:
Tanpa
Boolean, terbagi:
a. Tanpa
sentinen
b. Dengan sentinen
Menggunakan
boolean
2. Pencarian
secara biner / dikotom (binary = dichotomy searching).
2.4.
PENGURUTAN ARRAY
Pengurutan atau sorting adalah proses yang paling
sering di lakukan dalam pengolahan data.pengurutan di bedakan menjadi dua, yaitu
:
a.
Pengurutan
internal
Pengurutan dilakukan terhadap sekumpulan data di media
memory internal komputer dimana data dapat di akses elemennya secara langsung.
b.
Pengurutan
eksternal
Pengurutan data di memory sekunder. Biasanya data bervolume
besar sehingga tidak mampu dimuat semuanya di memori utama.
3. MENGURUTKAN ELEMEN ARRAY
Ada banyak
sekali metode untuk mengurutkan data, antara lain Exchange Sort, Insertion
Sort, Bubble Sort, dan masih banyak lagi.
3.1. Untuk metode Selection Sort
langkah-langkahnya adalah sebagai berikut :
·
Proses 1: variabel indek diberi
nilai 1 (data ke-1) kemudian data indek dibandingkan dengan data ke-2. Jika
data indek lebih besar maka nilai indeknya diganti dengan 2 (data ke-2), jika
tidak nilai indeknya tetap. Kemudian data indek dibandingkan lagi dengan data
ke-3, lebih besar? Nilai indek ditukar! Demikian s eterusnya. Setelah selesai,
nilai indek diperiksa apakah nilai indek berubah atau tidak. Jika nilai indek
mengalami perubahan maka data ke-1 ditukar dengan data indek.
·
Pada proses 2: variabel indek diberi nilai 2 (data ke-2)
kemudian data indek dibandingkan dengan data ke-3. Jika data indek lebih besar
maka nilai indeknya diganti dengan 3 (data ke-3). Kemudian data indek
dibandingkan lagi dengan data ke-4, lebih besar? Nilai indek ditukar! Demikian
s eterusnya. Setelah selesai, nilai indek diperiksa apakah nilai indek berubah
atau tidak. Jika nilai indek mengalami perubahan maka data ke-2 ditukar dengan
data indek.
·
Demikian untuk proses selanjutnya dimana banyak prosesnya
adalah jumlah elemen array dikurangi satu.
3.2.
Metode Bubble Sort mempunyai langkah-langkah sebagai berikut :
·
Membandingkan data ke-1 dengan data
ke-2, jika data ke-1 lebih besar, maka kedua data ditukar.
·
Kemudian membandingkan data ke-2
dengan data ke-3, jika data ke-2 lebih besar, kedua data ditukar lagi.
·
Demikian seterusnya sampai data
terakhir, sehingga data kedudukannya akan bergeser-geser.
·
Untuk proses 2, pembandingan
(pergeseran data) hanya sampai pada data terakhir dikurangi satu.
3.3.
Metode Insertion Sort mirip dengan cara orang mengurutkan kartu selembar
demi selembar, kartu diambil dan disisipkan (insert) ke tempat yang seharusnya.
Adapun langkah-langkahnya adalah sebagai berikut :
·
Pengurutan dimulai dari data ke-2
sampai dengan data terakhir.
·
Jika ditemukan data yang lebih kecil
atau lebih besar, maka akan ditempatkan (diinsert) diposisi yang seharusnya
4.
KEUNGGULAN DAN KELEMAHAN 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 penerus 3
3. Jika
elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga,
maka
penggunaan penyimpanannya sangat efisien.
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 elemen adalah karakter, elemen lain bilangan, dan elemen lain
adalah tipe-tipe lain
2. Kebanyakan
bahasa pemrograman mengimplementasikan array statik yang sulit
diubah
ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus,
maka representasi statis
• Tidak efisien dalam penggunaan memori
• Menyiakan banyak waktu komputasi
• Pada suatu aplikasi, representasi statis tidak
dimungkinkan
Bila
penambahan dan pengurangan terjadi terus menerus, maka representasi statis
(array):
1. Tidak
efisien dalam penggunaan memory
2. Menyiakan
banyak waktu komputasi
3. Pada suatu
aplikasi, representasi statis tidak di mungkinkan.
PENUTUP
1. Kesimpulan
Struktur data merupakan salah satu bahan dasar
pembuatan program. Pemakaian struktur data yang tepat di dalam proses
pemrograman, akan menghasilkan algoritma yang jelas dan tepat sehingga
menjadikan program secara keseluruhan lebih sederhana. Array merupakan bagian
dari struktur data yaitu termasuk kedalam struktur data sederhana yang dapat di
definisikan sebagai pemesanan alokasi memory sementara pada komputer. Apabila
kita membuat program dengan data yang sudah kita ketahui batasnyamaka kita
menggunakan Array (type data statis), namun apabila datanya belum kita ketahui
batasnya maka gunakan pointer (type data dinamis).
Array (larik) adalah sebuah variable yang dapat menyimpan lebih dari satu
nilai sejenis (memiliki tipe data yang sama).
Bila akan didefinisikan sebagai tipe bentukan, maka array juga akan
dideklarasikan di bagian definisi tipe (dibawah kata kunci tipe). Dalam bahasa
pascal, pendeklaraasian array dilakukan dengan menggunakan kata kunci array dan
tipe data yang akan disimpan di dalamnya, selain itu juga harus disertai dengan
batas-batas indeksnya yang diapit oleh tanda bracket([]).
Array digunakan untuk mempermudah dalam penulisan syntax program pascal,
array dapat menyimpan data sehingga bisa menyederhanakan dan mengefektifkan
syntax pascal. Array dibedakan menjadi dua yaitu, Array Satu Dimensi dan Array
Dua Dimensi. Setiap jenis array mempunyai kegunaannya masing-masing.
2. Kritik dan Saran
Penulis menyadari tentang penyusunan makalah, tentu
masih banyak kesalahan dan kekurangannya, kerena terbatasnya pengetahuan dan
kurangnya rujukan atau referensi yang ada hubungannya dengan judul makalah ini.
Penulis banyak berharap para pembaca yang budiman
memberikan kritik dan saran yang membangun kepada penulis demi sempurnanya
makalah ini dan dan penulisan makalah di kesempatan-kesempatan berikutnya.
Semoga makalah ini berguna bagi penulis pada khususnya juga para pembaca yang budiman
pada umumnya.
Contoh Program Array
#include <iostream>
#include<conio.h>
using namespace std;
int main(int argc, char** argv) {
int pilih;
int arrayyy[10];
cout << "\n\t\ created by irfan zulkarnaen siregar";
cout << "\n\t\ NIM : 15210033";
cout << "\n\t\ please visit my blog";
cout << "\n\t\ vandedjoel.blogspot.com";
for(int a=0; a < 10; a++)
{
cout << "\nMasukkan index ke " << a << " : ";
cin >> arrayyy[a];
cout << "\nKeluaran Index ke "<< a <<" : " <<arrayyy[a] << "\n";
}
cout << "\n\n\kesimpulan : dari program diatas menurut saya mungkin array adalah jumlah ";
cout << "\n\t\ total pengindeksan pada sebuah program yang dibuat.";
cout << "\n\t\ contohnya di program ini saya membuat total arraynya 1o";
cout << "\n\t\ (int array[10];) makanya total indeksnya ada 10 yakni dari indeks 0";
cout << "\t\ sampai indeks 9. kalau saya buat arraynya 100 maka total indeksya";
cout << "\n\t\ 100 dan seterusnya.";
cout << "\n\n\t\ terima kasih";
cout << "\n\t\ mohon kritik dan sarannya";
getch () ;
}
Daftar Pustaka
Comments
Post a Comment
berkomentarlah dengan bijaksana.
jaga ucapan.
karena mulutmu harimaumu.