Laporan Pratikum 7 algoritma pemograman
LAPORAN PRAKTEK 7 ( PERTEMUAN KE-8)
TUGAS 7
ALGORITMA PEMOGRAMAN
Disusun Oleh : Syafri Wardian
18214046
Mata Kuliah Praktek :
ARRAY (LARIK)
Dosen Pembimbing :
Sri Nofri Wihandri ,S.Pd,M.Pd.T
Program Studi :
Teknik Elektronika
Akademi Komunitas Negeri Padang
Pariaman
PDDF Universitas Negeri Padang
Tahun 2018
ARRAY (LARIK)
BAB 1
1.
PENDAHULUAN
Bab ini memiliki kompetensi dasar
untuk mendefinisikan dan menggunakan tipe data array. Tipe data array adalah
salah satu tipe terstruktur dalam pemrograman. Tipe data array ini dapat
dipakai untuk salah stu contohnya adalah perhitungan matriks dalam matematika
(bahasan matriks akan diperdalam pada kuliah algoritma pemrograman 2).
Selama ini kita menggunakan satu variabel untuk
menyimpan 1 buah nilai dengan tipe
data tertentu.
Misalnya : int a1, a2, a3, a4, a5;
Deklarasi variabel diatas digunakan untuk menyimpan 5
data integer dimana masingmasing
variabel diberi nama a1, a2, a3, a4, dan a5.
Jika kita memiliki 10 data, 100 data integer bahkan
mungkin data yang ingin kita
proses tidak kita ketahui atau bersifat dinamis? Kita
tidak mungkin menggunakan
variabel seperti diatas.
Di dalam C dan pemrograman yang lain, terdapat suatu
fasilitas untuk menyimpan
o
data-data yang
bertipe data sama dengan suatu nama tertentu.
BAB 2
1. Pengertian
Array adalah struktur data yang menyimpan
sekumpulan elemen yang bertipe sama, setiap elemen diakses langsung melalui
indeksnya. Indeks array haruslah tipe
data yang menyatakan keterurutan, misalnya integer
atau karakter.
Sebuah array yang bernama A dengan delapan buah
elemen dapat dibayangkan secara logik sebagai sekumpulan kotak yang terurut
(baik tersusun secara vertikal maupun horizontal) seperti yang diperlihatkan
pada gambar berikut:
Tiap kotak pada array
tersebut diberi indeks 1, 2, 3, ..., 8. Setiap elemen array ditulis dengan notasi:
A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8]
Angka di
dalam tanda kurung siku menyatakan indeks array
(notasi di atas sama saja dengan penulisan ber-subscript A1, A2, A3, ..., A8
).
Setiap
elemen array menyimpan sebuah nilai.
Karena seluruh elemen array bertipe
sama, maka nilai yang disimpan oleh setiap elemen juga harus bertipe sama.
Gambar berikut ini akan menunjukkan array
yang bernama A yang setiap elemennya berisi tinggi badan (dalam centimeter) 8
orang siswa:
Tinggi siswa pertama, 158, disimpan di dalam A[1],
tinggi siswa kedua, 157, disimpan di dalam A[2], demkian seterusnya.
2. Mendeklarasikan array
Array adalah
struktur yang statis, artinya jumlah elemen array juga harus sudah diketahui
sebelum program dieksekusi. Jumlah elemen larik tidak dapat diubah, ditambah,
atau dikurangi selama pelaksanaan program. Mendeklarasikan larik di dalam
bagian deklarasi berarti:
-
Mendefinisikan banyaknya elemen larik (ukuran larik)
-
Mendefinisikan tipe elemen larik
Mendefinisikan
banyaknya elemen larik (atau ukuran larik) berarti memesan sejumlah tempat di
memori. Komputer mengalokasikan sejumlah lokasi memori sebanyak elemen larik
yang bersangkutan. Mendefinisikan tipe elemen larik berarti menetapkan tipe
nilai yang dapat disimpan oleh larik. Tipe elemen larik dapat berupa tipe
sederhana (integer, real, char, boolean, string), tipe bentukan (tipe terstruktur
sebagai record), atau bahkan bertipe
larik yang lain.
Berikut
contoh-contoh mendeklarasikan larik di dalam bagian deklarasi:
a.
Sebagai peubah
Misalkan:
-
A adalah larik yang berukuran 50 buah
elemen yang bertipe integer. Indeks
larik dimulai dari 1.
-
NamaMhs adalah larik yang berukuran
10 buah elemen yang bertipe string.
Indeks larik dimulai dari 1.
-
NilUjian adalah peubah larik yang
berukuran 75 buah elemen yang bertipe real.
Indeks larik dimulai dari 0.
DEKLARASI
· A : array(1..50) of integer
· NamaMhs : array(1..10) of string
· NilUjian : array(0..74) of real
b.
Sebagai tipe bentukan
Misalkan LarikInt didefinisikan sebagai nama
sebuah tipe baru untuk larik yang bertipe integer.
Ukuran larik adalah 100 buah elemen. Kita bisa mendeklarasikan sebuah peubah
yang bertipe LarikInt, misalnya
peubah A.
DEKLARASI
type LarikInt : array(1..100) of
integer
A : LarikInt
{A adalah sebuah peubah larik integer
dengan 100 elemen)
c.
Mendefinisikan ukuran larik sebagai sebuah konstanta
Misalkan LarikInt dideklarasikan sebagai nama
sebuah tipe bentukan untuk larik yang bertipe integer. Ukuran maksimum larik adalah 100 buah elemen. Ukuran
maksimum larik dinyatakan sebagai konstanta. Kemudian, kita bisa
mendeklarasikan sebuah peubah yang bertipe LarikInt,
misalnya peubah A.
DEKLARASI
conat Nmaks
= 100 {ukuran maksimum elemen}
type LarikInt : array(1..Nmaks) of integer
A : LarikInt
{A adalah sebuah peubah larik integer
dengan 100 elemen)
Perhatikan
bahwa pendeklarasian larik pada Algoritma di atas, sama dengan pendeklarasian
larik pada Algoritma pada bagian “b”. Penggunaan konstanta memungkinkan kita
mengubah ukuran larik cukup pada konstanta itu saja.
Tetapi,
pendeklarasian larik A seperti di
bawah ini tidak boleh karena nilai N
tidak diketahui di awal program (ingat bahwa larik adalah struktur statis).
3. Cara Mengacu Elemen
Larik
Elemen larik
diacu melalui indeksnya. Nilai indeks harus terdefinisi. Dengan mengacu pada larik
yang sudah dideklarasikan sebelum ini, berikut diberikan beberapa comtoh cara
mengacu elemen larik adalah:
A[4] {mengacu elemen keempat dari larik A}
NamaMhs[2] {mengacu elemen kedua dari larik NamaMhs}
A[i] {mengacu elemen ke-i dari
larik A, asalkan nilai i sudah
terdefinisi}
NamaMhs[i+1] {asalkan
nilai i sudah terdefinisi}
Contoh-contoh
memanipulasi atau menggunakan elemen larik:
A[4] ß 10 {mengisi elemen keempat dari larik A dengan
nilai 10}
NamaMhs[i] ß ‘Ahmad’ {mengisi elemen ke-i dari larik NamaMhs, dengan string
‘Ahmad’}
read(A[i]) {membaca elemen ke-i dari larik}
if A[i] < 10 then
A[i] ß A[i] + 10
else
... {pernyataan lainnya}
4. Pemrosesan Larik
Elemen larik
tersusun di memori secara beruntun (sekuensial). Karena itu, elemennya diproses
secara beruntun melalui indeksnya yang terurut. Memproses larik artinya
mengunjungi (traversal) setiap elemen larik dan memanipulasi dinilai di
dalamnya. Kunjungan dimulai dari elemen pertama larik, berturut-turut pada
elemen berikutnya, sampai elemen terakhir dicapai, yaitu elemen dengan indeks
terbesar.
Skema umum
algoritma memproses larik terlihat pada algoritma berikut:
PROGRAM PemrosesanLarik
{Skema
pemrosesan larik secara beruntun)
DEKLARASI
conat Nmaks
= 100 {ukuran maksimum elemen}
type LarikInt : array(1..Nmaks) of integer
A : LarikInt
i : integer (indeks larik}
ALGORITMA
inisialisasi
i ß 1 {mulai
dari elemen pertama}
while i < Nmaks do
pemrosesan
terhadap A[i]
i ß i + 1 {tinjau
elemen berikutnya}
endwhile
{i > Nmaks}
Terminasi
Pemrosesan
terhadap A[i] adalah aksi spesifik
bergantung pada persoalan yang akan dipecahkan, misalnya pengisian nilai,
pembacaan, penulisan, komputasi, atau manipulasi lainnya.
Array adalah kumpulan dari nilai-nilai
data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama.
Nilai-nilai data di suatu larik disebut dengan elemen-elemen larik.
Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.
Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.
Menurut dimensinya, array dapat dibedakan menjadi :
1. Array satu dimensi
Setiap elemen array dapat diakses melalui index
Index array secara default dimulai dari 0
Deklarasi array :
Tipe_array nama_array[ukuran]
2. Array dua
dimensi
Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah buah kolom bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array [baris][kolom]
3.Array multidimensi
Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
Deklarasi array :
Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]
Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah buah kolom bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array [baris][kolom]
3.Array multidimensi
Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
Deklarasi array :
Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]
Perbedaan
array dengan tipe data lain :
Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya dihubungkan dengan sebuah nilai saja.
Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja.
Selain itu, array dapat berupa satu dimensi atau lebih, sedangkan tipe data lain hanya berupa satu dimensi.
Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya dihubungkan dengan sebuah nilai saja.
Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja.
Selain itu, array dapat berupa satu dimensi atau lebih, sedangkan tipe data lain hanya berupa satu dimensi.
Array juga
dapat digunakan sebagai parameter. Jenisnya :
a. Array dimensi satu sebagai parameter :
-Pengiriman parameter berupa array dimensi satu merupakan pengiriman secara acuan/referensi, karena yang dikirimkan adalah alamat dari elemen pertama arraynya, bukan seluruh nilai-nilai elemenya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama lariknya yang tidak ditulis dengan indeknya.
a. Array dimensi satu sebagai parameter :
-Pengiriman parameter berupa array dimensi satu merupakan pengiriman secara acuan/referensi, karena yang dikirimkan adalah alamat dari elemen pertama arraynya, bukan seluruh nilai-nilai elemenya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama lariknya yang tidak ditulis dengan indeknya.
b.Array dua
dimensi sebagai parameter :
-Pengiriman parameter berupa array dua dimensi hampir sama dengan pengiriman parameter array satu dimensi, hanya saja perbedaannya adalah dalam array dua dimensi harus menyebutkan baris dan kolom array dimensi dua tersebut, mendeklarasikan MAX_ROWS dan MAX_COLS yang digunakan untuk pengiriman parameter array dua dimensi dan pada saat pengiriman parameter formal array dua dimensi, kita harus menyebutkan banyaknya dimensi array untuk kolom, sehingga ukuran kolom dapat diketahui, hal ini berkaitan dengan pemesanan variabel array di memori.
-Pengiriman parameter berupa array dua dimensi hampir sama dengan pengiriman parameter array satu dimensi, hanya saja perbedaannya adalah dalam array dua dimensi harus menyebutkan baris dan kolom array dimensi dua tersebut, mendeklarasikan MAX_ROWS dan MAX_COLS yang digunakan untuk pengiriman parameter array dua dimensi dan pada saat pengiriman parameter formal array dua dimensi, kita harus menyebutkan banyaknya dimensi array untuk kolom, sehingga ukuran kolom dapat diketahui, hal ini berkaitan dengan pemesanan variabel array di memori.
Latihan
Buatlah algoritma dan program dalam bahasa C untuk
membaca data secara berulang dari keyboard dan meletakkannya ke dalam suatu
larik dan menghitung jumlahnya.
Analisis
Kebutuhan:
Ø variabel:
o
untuk
menyimpan nilai yang akan disimpan di arrayà nilaià int
o
untuk
menyimpan nilai ià ià int
o
untuk
menyimpan nilai jumlah siswaà nà int
o
untuk
menyimpan nilai jumlah nilai siswaà jumlahà int
Ø proses:
ü aritmatik (formula):
v + menghitung jumlah nilai:
o
jumlahßnilai1 + nilai2
+ .. + nilain
ü logika(keputusan)
v + menentukan proses aritmatika akan
dijalankan jika: i = 0 dan i < n
o
Flowchart
Berikut programnya menggunakan DevC++
v Berikut ini adalah C program utuk menentukan jumlah
nilai siswa melalui program Array
- Jalankan aplikasi DevC++
- Klik File>New>Source File atau
tekan Ctrl+N
- Lalu ketikkan source code seperti
gambar dibawah ini ;
- Setelah selesai simpan source codenya
dengan menambahkan “.c” tanpa tanda kutip dikahir nama source filenya, lalu
klik tombol Compile & Run pada aplikasi DevC++ atau tekan F11 untuk
menjalankan program ,
jalankan semua perintah yang muncul pada
program . Maka , akan muncul tampilan seperti gambar dibawah ini ;
Berikut
Beberapa Program Lain Yang Menggunakan Array
v Program pembaca dan menghitung rata-rata nilai siswa
menggunakan aplikasi DevC++
- Jalankan aplikasi DevC++
- Klik File>New>Source File atau
tekan Ctrl+N
- Lalu ketikkan source code seperti
gambar dibawah ini ;
- Setelah selesai simpan source codenya
dengan menambahkan “.c” tanpa tanda kutip dikahir nama source filenya, lalu
klik tombol Compile & Run pada aplikasi DevC++ atau tekan F11 untuk
menjalankan program ,
jalankan semua perintah yang muncul pada
program . Maka , akan muncul tampilan seperti gambar dibawah ini ;
v Program pembaca dan penghitung nilai rata-rata siswa
menggunakan struct array pada aplikasi DevC++
Struct adalah tipe data bentukan
- Jalankan aplikasi DevC++
- Klik File>New>Source File atau
tekan Ctrl+N
- Lalu ketikkan source code seperti
gambar dibawah ini ;
- Setelah selesai simpan source codenya
dengan menambahkan “.c” tanpa tanda kutip dikahir nama source filenya, lalu
klik tombol Compile & Run pada aplikasi DevC++ atau tekan F11 untuk
menjalankan program ,
jalankan semua perintah yang muncul
pada program . Maka , akan muncul tampilan seperti gambar dibawah ini ;
NB : “ Apabila terjadi
error pada saat menekan Compile & Run/F11 yang mengakibatkan program tidak
berjalan , ataupun program tidak sesuai dengan perintah yang diinginkan , dan
terjadi auto close program . Harap periksa kembali pengetikkan source code anda
. Karena program akan terus gagal jika ada satu format yang terlupakan atau
salah dalam pengetikkannya. Jika, masi mengalami error atau program tidak
berjalan coba simpan source file tanpa menambahkan '.c' pada akhir nama source
filenya “.
Komentar