PERTEMUAN 1 dan 2
PENGERTIAN DASAR LOGIKA DAN ALGORITMA
Sejarah Algoritma
Asal
kata Algoritma berasal
dari nama Abu
Ja’far Mohammed Ibn
Musa al-Khowarizmi, ilmuan Persia
yang menulis kitab
al jabr w’al-muqabala
(rules of restoration
and reduction) sekitar tahun 825
M
A.
Algoritma
è
Urutan langkah-langkah untuk
memecahkan masalah
è
Urutan logis pengambilan putusan
untuk memcahkan masalah
urutan
langkah logis, berarti algoritma harus mengikuti
suatu urutan tertentu,
tidak boleh melompat-lompat.
è
Alur pemikiran dalam menyelesaikan
suatu pekerjaan yang dituangkan secara tertulis.
Alur pikiran yang artinya algoritma seseorang
dapat berbeda dari algoritma orang lain.
tertulis, yang artinya dapat
berupa kalimat, gambar,
atau tabel tertentu.
Dalam bidang komputer,
algoritma sangat diperlukan
dalam menyelesaikan berbagai
masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma
yang dirancang
baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan
tidak efisien.
Note:
Algoritma Di butuhkan untuk memerintah computer mengambil langkah-langkah tertentu untuk menyelesaikan masalah
Algoritma à Pemrograman à Program
Agar algoritma
dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program
(melalui proses pemrograman).
|
Penulisan
Algoritma :
1. Menggunakan bahasa natural
(Bahasa manusia: Indonesia, Inggris)
Kelemahannya masih sering
membingungkan (ambigu) / sulit dipahami.
2. Menggunakan Flowchart
Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma
panjang
3. Menggunakan Pseudocode
Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh
orang yang belum tahu pemrograman
B.
Tahap Analisa Algoritma
1.
Bagaimana
merencanakan algoritma
Dengan Mendefinisikan masalah.
Contoh : Permasalahan menghitung luas
lingkaran,
dengan data yang diketahui adalah diameter
lingkaran.
Rumus :
∏ . r2
dengan Phi =
3.14 atau 22/7.
2.
Bagaimana
menyatakan suatu algoritma (menulis algoritma)
Dengan
psudocode
suatu cara penulisan algoritma
agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman
pemrograman tertentu.
Dengan
flowchart / diagram alir
Program
Flowchart
Yaitu bagan yang menggambarkan urutan logika
dari suatu prosedur pemecahan masalah.
Simbol yang digunakan :
: menunjukkan awal dan akhir dari
program
: memberikan niai awal
pada suatu variabel atau counter
: menunjukkan pengolahan
aritmatika dan pemindahan data
: menunjukkan proses input
atau output
: untuk mewakili operasi
perbandingan logika
: proses yang ditulis
sebagai sub program, yaitu prosedur/ fungsi
: penghubung pada halaman yang
sama
: penghubung pada halaman yang berbeda
Contoh :
Dengan statement
program /penggalan program
3.
Bagaimana
validitas suatu algoritma
4.
Bagaimana
menganalisa suatu algoritma
5.
Bagaimana
menguji program dari suatu algoritma
Studi
Kasus :
Buatlah
Algoritma untuk memilih bilangan terbesar dari 3 buah bilangan ?
§ Dengan
Bahasa Natural
1.
Ambil
bilangan pertama dan set maks sama dengan bilangan pertama
2.
Ambil
bilangan kedua dan bandingkan dengan maks
3.
Apa bila
bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua
4.
Ambil
blangan ketiga dan bandingan dengan maks
5.
Apabila
bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga
6.
Variabel
maks berisi bilangan terbesar. Tampilkan hasilnya
§ Dengan
Flowchart
§ Dengan
Pseudo-code
Maks ←bilangan pertama
if (maks < bilangan kedua)
maks←bilangan kedua
if (maks < bilangan ketiga)
maks
← bilangan ketiga
C.
Tahap Proses Uji Algoritma
1. Pengujian Tahap Debuging
Untuk
mengecek kesalahan program, Baik sintaksis maupun logika.
2. Pengujian tahap profiling.
Untuk
menentukan waktu tempuh dan banyak nya memori program yang digunakan.
D. Analisis Algoritma
Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat
dilihat dari:
1.
Waktu
Tempuh dari Suatu Algoritma
2.
Jumlah
memori yang digunakan
E.
Sifat-sifat Algoritma
Aspek Penting Algoritma :
1.
Finite à algoritma harus berhenti setelah mengerjakan sejumlah
langkah terbatas
2.
Definite à setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu)
3.
Input à sebuah algoritma memiliki nol/lebh input
sebelum dijalankan
4.
Output à algoritma memiliki satu/lebih output, yanng
biasanya bergantung kepada input
5.
Effectiveà setiap algoritma diharapkan memiliki sifat
efektif. (setiap langkah harus sederhana
dan sehingga dapat
dikerjakan dalam waktu yang masuk akal)
Langkah-langkah yang membentuk
suatu algoritma dapat dibagi menjadi 3 kelompok proses:
1.
Sequence Process à instruksi dikerjakan secara berurutan satu
persatu dimulai dari langkah pertama sampai terakhir.
2.
Selection Process à instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan
tertentu maka instruksi akan dikerjakan.
Contoh : jika pembayaran tunai diberi diskon
10%
Jika dilakukan secara redit maka diskon 0 %.
(dalam
pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif
instruksi.
3.
Iteration Process à suatu instruksi yang dikerjakan
berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.
Tugas
:
Buatlah
algoritma (dengan bahasa natural):
1.
Menampilkan
bilangan ganjil dari 1 sampai dengan 10.
2.
Menghitung
jumlah deret : 1 + 2 + 3 + 4 + .... + N
N = jumlah maksimum suatu nilai yang
dimasukkan.
Pertemuan 3 dan 4
KONSEP ALGORITMA
KONSEP
ALGORITMA
Contoh
Soal :
3.
Diketahui
3 variabel peubah P,Q dan R. Agar isi Q
ditaruh di P, isi R ditaruh di Q dan isi P ditaruh di R, maka Algoritma yang
dapat ditulis adalah : ……….
Buatlah Algortimanya?
Setelah selesai cek lah algoritma nya, misalkan
dengan P=10, Q=20, R=30.
Sehingga hasil akhir menjadi : P=20,
Q=30 dan R=10.
4.
Diketahui
2 peubah K = 10 dan L = 20. Buat
Algoritma untuk mempertukarkan isi K dan L. :
Studi Kasus:
Algoritma TUKAR ISI BEJANA
A B
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah,
bejana B berisi larutan berwarna biru.
Pertukarkan isi kedua bejana itu sedemikian
sehingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna
merah.
algoritma :
Tuangkan
larutan dari bejana A ke dalam bejana B
Tuangkan
larutan dari bejana B ke dalam bejana A.
Apakah
cara di atas BENAR ?
Apakah
hasil yang didapat sesuai dengan penyelesaian masalah?
Apa hasil yang
didapat ?
Algoritma TUKAR ISI
BEJANA di atas tidak menghasilkan pertukaran yang benar.
Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan tersebut. |
Penyelesaian :
Untuk mempertukarkan
isi duah bejana, diperlukan sebuah bejana tambahan sebagai tempat penampungan
sementara, misalnya bejana C.
A B C
Algoritma yang
menghasikan pertukaran yang benar sebagai berikut:
1.
Tuangkan
larutan dari bejana A ke dalam bejana C.
2.
Tuangkan
larutan dari bejana B ke dalam bejana A.
3.
Tuangkan
larutan dari bejana C ke dalam bejana B.
SOAL MEMBUAT
ALGORITMA
1.
Seorang
Petani akan berpergian ke kota dengan
membawa seekor kambing, Anjing dan Rumput Yang ketiganya memliki berat
yang tidak jauh berbeda, ditengah jalan petani harus menyebrangi sungai dengan
menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan
membawa sekaligus bawaannya mengingat kapasitas kekuatan perahu tersebut, dan
untuk melaluinya petani harus membawa satu persatu bawaannya . Ditanya: berapa kali
petani tersebut harus melalui jembatan dengan memperhatikan bahwa kambing makan
rumput, anjing makan kambing ?
2.
Bagaimana
caranya untuk menyebrangkan tiga orang rahib yang sedang dikejar oleh Tiga
orang kanibal ke sisi pulau yang ada diseberangnya
Dengan
catatan :
Bila
misionarisnya Lebih sedikit dari dari kanibal, maka misionaris tersebut akan
dimakannya.
Jawaban:
1. Algoritmanya
a. petani ke pulau B, membawa kambing
b. petani ke pulau A,
c. petani
kepulau B, membawa rumput
d. petani kepulau A, membawa kambing
e. petani
kepulau B, membawa anjing dan meninggalkan kambing
f.
petani
kepulau A
g. petani kepulau B, membawa kambing
2. Algoritmanya adalah :
1. Dari Pulau A, 2 orang kanibal naik perahu dan
sebrangkan
2. Dipulau B, 1 orang kanibal ditempatkan di pulau
B
3.
1
kanibal balik menuju pulau A dan turunkan
4.
Dari
Pulau A, 2 orang kanibal naik perahu dan sebrangkan
5. Dipulau B, 1 orang kanibal ditempatkan di pulau
B
6.
1
kanibal balik menuju pulau A dan turunkan
7.
Dari
pulau A, 2 orang rahib naik perahu dan sebrangkan
8.
Dipulau
B, 1 orang rahib ditempatkan di pulau B
9.
1
orang rahib dan 1 orang kanibal balik menuju pulau A dan turunkan kanibal dari perahu
10.
Dipulau
A, 2 orang rahib naik perahu dan sebrangkan.
11.
Dipulau
B turunkan 2 orang rahib.
12. Selesai.
No
|
Pulau B
|
Perahu
|
Pulau A
|
Arah Perahu
|
0.
|
Kosong
|
Kosong
|
3 kanibal
3 Rahib
|
|
1
|
2 kanibal
|
1 kanibal
3 rahib
|
ß
|
|
2
|
1 kanibal
|
1 kanibal
|
1 kanibal
3 rahib
|
à
|
3
|
1 kanibal
|
2 kanibal
|
3 rahib
|
ß
|
4
|
2 kanibal
|
1 kanibal
|
3 rahib
|
à
|
5
|
2 kanibal
|
2 rahib
|
1 rahib
1 kanibal
|
ß
|
6
|
1 kanibal
1 rahib
|
1 kanibal
1 rahib
|
1 rahib
1 kanibal
|
à
|
7
|
1 kanibal
1 rahib
|
2 rahib
|
2 kanibal
|
ß
|
8
|
3 rahib
|
1 kanibal
|
2 kanibal
|
à
|
9
|
3 rahib
|
3 kanibal
|
Pertemuan 5 dan 6
KONSEP TIPE DATA
Bahasa Pemrograman PASCAL
Pascal , merupakan bahasa pemrograman tingkat tinggi.
Pascal dirancang oleh Prof. Niklaus Writh (Technical University di Zurich, Switzerland) pada tahun 1971
Nama Pascal diambil sebagai penghargaan kepada Blaise Pascal (ahli matematika dan philosopi dari Peancis).
Pascal dirancang oleh Prof. Niklaus Writh (Technical University di Zurich, Switzerland) pada tahun 1971
Nama Pascal diambil sebagai penghargaan kepada Blaise Pascal (ahli matematika dan philosopi dari Peancis).
TIPE DATA
1.
Tipe data
Sederhana
- Tipe Ordinal (berurutan)
Yang termasuk tipe data ordinal :
a.
Integer à tipe data untuk bilangan bulat (short
int,word, byte dll).
b.
Boolean à tipe data yang memiliki nilai TRUE dan FALSE
c.
Char à tipe data yang berisi 1 buah karakter.
d.
Terbilang
e.
Sub
Jangkauan
- Real à tipe data untuk menampung bilangan pecahan.
2.
Tipe data
String
tipe data yang terdiri dari sekumpulan karakter.
3.
Tipe data
Terstruktur
Array, Record, Set, File, objek
1. Tipe data Sederhana
TIPE ORDINAL
tipe data yang merupakan subset dari
tipe data sederhana, tipe sederhana adalah semua tipe data sederhana kecuali tipe
data numerik real.
Macam tipe data ordinal :
a.
Integer à tipe data yang digunakan untuk
menyimpan bilangan bulat.
Tipe
|
Jangkauan
|
Ukuran
|
Shortint
|
128…127
|
Signed
8 bit
|
Integer
|
-32768…32767
|
Signed
16 bit
|
Longint
|
-2147483648…2147483647
|
Signed
32 bit
|
Byte
|
0…255
|
UnSigned
8 bit
|
Word
|
0…65535
|
UnSigned
16 bit
|
b.
Boolean à yang hanya dapat bernilai benar atau salah (TRUE or
FALSE).
c.
Char à tipe
data
yang digunakan untuk menyimpan data alfanumeris, seperti
‘A’,’Z’,’@’,’$’,’1’,’9’ dsb.
d.
Terbilang à digunakan untuk memberi nama pada beberapa nilai tertentu.(tipe
data yang didefinisikan sendiri oleh pembuatnya à dikenal juga tipe data enumerated)
contoh :
Type
Hari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu ) ;
contoh :
Type
Hari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu ) ;
e.
Sub
Jangkauan à digunakan
untuk mendeklarasikan
tipe yang berada pada jangkauan tertentu. Pada dasarnya tipe subjangkuan hampir
sama dengan tipe bilangan bulat, bedanya kita bebas menentukan jangkauan dari
tipe ini, misalnya dari 1 sampai 100.
Contoh :
Type
Nilai = 0..100;
Type
Nilai = 0..100;
Karakteristik tipe Ordinal adalah
•
Merupakan
Himpunan Berurutan (ordered set). à nilai dari tipe data ordinal memiliki
nilai yang berurutan
•
Memiliki
Fungsi standard ORD/Ordinalitas (digunakan untuk menghasilkan nilai
urutannya.)
•
Memiliki
Fungsi standard PRED/Predecessor
(digunakan untuk menghasilkan nilai
urutan sebelumnya.).
•
Memiliki
Fungsi standard SUCC/Successor(digunakan untuk
menghasilkan nilai urutan sesudahnya)
Contoh Program :
uses
crt;
type
Colors = (MERAH,BIRU,HIJAU);
begin
clrscr;
Writeln('BIRU mempunyai nilai ordinal
',Ord(BIRU));
Writeln('kode ASCII dari "c"
adalah ', Ord('c'), ' desimal');
writeln;
Writeln('predecessor dari 5 adalah
',Pred(5));
Writeln('successor dari 10 adalah
',Succ(10));
if Succ(MERAH) = BIRU then
Writeln('DALAM TIPE Colors ,MERAH
merupakan ',
'predecessor dari BIRU.');
readln;
end.
|
HASIL
:
BIRU
mempunyai nilai ordinal 1
kode
ASCII dari "c" adalah 99 desimal
predecessor
dari 5 adalah 4
successor
dari 10 adalah 11
DALAM
TIPE Colors ,MERAH merupakan predecessor dari BIRU.
|
Note !
|
Fungsi
(seperti: ord,pred,succ,chr,length,concat dsb )adalah sebuah perintah
/ instruksi program yang digunakan untuk keperluan pemrograman yang
disediakan oleh bahasa pemrograman PASCAL
|
TIPE REAL
Tipe data yang
digunakan untuk menyimpan bilangan real/pecahan.
Tipe data
|
Jangkauan
|
Digit penting
|
Ukuran
|
Real
|
2.9 * 10-39 … 1.7 * 1038
|
11-12
|
6 byte
|
Single
|
1.5 * 10-45 … 3.4 * 1038
|
7-8
|
4 byte
|
Double
|
5.0 * 10-324 … 1.7 * 10308
|
15-16
|
8 byte
|
Extented
|
3.4 * 10-39 … 1.1 * 104932
|
19-20
|
10 byte
|
Comp
|
-263+1 … 1063-1
|
19-20
|
8byte
|
2. TIPE STRING
Tipe string digunakan untuk menyimpan data yang
berupa untaian karakter, seperti ‘ Pascal ’ , ’Algoritma ‘
Var
Kalimat : string;
Kalimat : string;
# ConCat[fungsi].
Untuk
menggabungkan 2 atau beberapa variabel string.
Sintaks: ConCat (s1 [,s2,...,sn]: String) : String;
contoh: ConCat ('ABC','DEF') { ABCDEF }
# Copy [fungsi].
Mengambil satu atau beberapa
karakter dari sebuah string.
Sintaks: Copy (S,Index,Count) : String;
Keterangan :
S = sebuah string (string).
Index = posisi
awal kita akan mengambil
beberapa
karakter
(integer)
Count = banyaknya karakter yang akan diambil
(integer).
# Delete [prosedur].
Menghapus sebagian karakter dari
sebuah string.
Sintaks: Delete (S,Index,Count);
Keterangan : sama dengan statemen
Copy.
# Insert [prosedur].
Menyisipkan satu atau beberapa
karakter ke dalam sebuah string.
Sintaks: Insert (Source,var S,Index);
Keterangan : Source = sumber
string untuk disisipi (string)
var S = string tujuan yang akan disisipi oleh
string Source (string)
Index = posisi mulai (integer).
#
Length [fungsi].
Memberikan nilai panjang dari suatu string (jumlah karakter
dalam string).
Sintaks: Length (S);
Keterangan : S = string
Length(S) menghasilkan nilai integer.
# Pos [fungsi].
Mencari posisi sebuah bagian string (substring) didalam
sebuah string.
Sintaks: Pos (Substr,S);
{menghasilkan nilai Byte}
Keterangan : Substr =
substring yang akan dicari
posisinya di dalam sebuah string S.
Bila bernilai 0 berarti nilai string yang dicari tidak ada.
# Str [prosedur].
Merubah nilai numerik ke dalam
nilai string.
Sintaks: Str (N,S);
Keterangan :
N = data tipe
integer,
S = data tipe string.
# Val
[prosedur].
Merubah nilai string ke dalam
nilai numerik.
Sintaks: Val (S,N,P);
Keterangan :
S = nilai string,
N = nilai real,
P = posisi salah.
Nilai string harus berisi angka,
plus atau minus, bila tidak
berarti kesalahan dan letak
kesalahannya ditunjukkan oleh va-
riabel posisi salah. Jika benar,
maka nilai variabel tsb = 0
(nol).
# UpCase
[fungsi].
Memberikan huruf kapital dari
argumen.
Sintaks: UpCase (S);
Keterangan :
S = variabel bertipe
karakter.
3. TIPE TERSTRUKTUR
a.
ARRAY /
larik
yaitu tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama. (mendeklarasikan kumpulan variabel yang bertipe sama)
penulisan :
yaitu tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama. (mendeklarasikan kumpulan variabel yang bertipe sama)
penulisan :
Var
Nama_larik : array [batas_bawah..batas_atas] of tipe larik;
Nama_larik : array [batas_bawah..batas_atas] of tipe larik;
Var
a: array[1..8] of longint;
a: array[1..8] of longint;
Sama artinya dengan :
a1, a2, a3, a4, a5, a6, a7, a8 : longint;
b.
RECORD / Rekaman
Tipe data ini digunakan untuk merepresentasikan kumpulan elemen/komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute.
Tipe data ini digunakan untuk merepresentasikan kumpulan elemen/komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute.
Type
TKaryawan = record;
Nama : string;
Alamat : string;
Gaji : longint;
End;
TKaryawan = record;
Nama : string;
Alamat : string;
Gaji : longint;
End;
c.
SET / Himpunan
digunakan untuk menyimpan kumpulan nilai ( disebut juga anggota himpunan) yang bertipe sama.
digunakan untuk menyimpan kumpulan nilai ( disebut juga anggota himpunan) yang bertipe sama.
Type
HimpunanKarakter = set of char;
HimpunanKarakter = set of char;
d.
FILE
tipe data untuk mengakses file.
tipe data untuk mengakses file.
Type
Nomorfile = file of integer;
Nomorfile = file of integer;
SUPLEMEN
MENGENAL PEMROGRAMAN PASCAL
Secara ringkas, struktur bahasa PASCAL dapat
terdiri dari:
- Judul Program
- Blok Program
-
deklarasi label
-
definisi konstanta
-
definisi tipe
-
deklarasi variabel
-
deklarasi prosedur
-
deklarasi fungsi
- Bagian Pernyataan (statetement program/baris perintah)
PROGRAM nama_program; {judul Program}
USES
nama_unit; {deklarasi unit yang
dipakai}
VAR
{ Deklarasi Variabel }
BEGIN
Blok Program Utama
END.
a.
Deklarasi
variabel
Untuk membuat variabel/pengenal/indentifier pada pascal yaitu dengan menuliskan
nama variabel dan tipe datanya pada bagian deklarasi
variabel
Format penulisan: [
nama_identifier : tipe_data; ]
contoh :
contoh :
Var
I : integer;
nama : string;
I : integer;
nama : string;
Jenis_kelamin
: boolean;
Luas,Panjang,Lebar
: integer;
b.
Operator
Aritmatika
Operator
|
Operasi
|
Tipe Operand
|
Tipe Hasil
|
*
|
Perkalian
|
real, real
integer, integer
real, integer
|
real
integer
real
|
DIV
|
Pembagian bulat
|
integer, integer
|
Integer
|
/
|
Pembagian real
|
real, real
integer, integer
real, integer
|
real
real
real
|
MOD
|
Sisa pembagian
|
integer, integer
|
integer
|
+
|
Penambahan
|
real, real
integer, integer
real, integer
|
real
integer
real
|
-
|
Pengurangan
|
real, real
integer, integer
real, integer
|
real
integer
real
|
Contoh :
operasi perkalian antara variabel PANJANG dan LEBAR di masukan kedalam variabel LUAS
LUAS := PANJANG * LEBAR;
operasi perkalian antara variabel PANJANG dan LEBAR di masukan kedalam variabel LUAS
LUAS := PANJANG * LEBAR;
c.
Operator
pemberi nilai (assignment operator)
Menggunakan sintax : “ := “ (titik dua sama dengan)
contoh:
contoh:
LUAS := PANJANG * LEBAR
(hasil perkalian PANJANG * LEBAR dimasukan kedalam variabel LUAS)
(hasil perkalian PANJANG * LEBAR dimasukan kedalam variabel LUAS)
d.
Pernyataan
masukan dan keluaran
READ dan READLN
Digunakan untuk meminta masukan dari papan ketik untuk diolah computer.
READ (nama); à memasukan nilai ke variabel
READ (nama); à memasukan nilai ke variabel
WRITE dan WRITELN
Digunakan untuk menampilkan data kelayar.
WRITE (‘Halo ’); menampilkan string halo
WRITE (nama); menampilkan isi variable nama.
WRITE (nama); menampilkan isi variable nama.
Perbedaan WRITE dengan
WRITELN yaitu ketika perintah write ini
dikerjakan kursor tidak akan ganti baris
(tetap diposisi semula) sedangkan ketika perintah writeln ini dikerjakan
kursor akan pindah baris.
PERTEMUAN7 dan8
LARIK (ARRAY)
Didalam
Bahasa Pemrograman Pascal (juga di bahasa pemrog. Yang lain) memiliki berbagai
macam tipe data.
Tipe data
dikelompokkan menjadi :
- Tipe data sederhana
- Tipe data terstruktur
- Tipe data enumerated
- Tipe data Pointer
Di Pertemuan
telah dibahas:
tipe data
sederhana (integer, Boolean, real, string, char dsb).
Tipe data
terstruktur
Didalam
tipe data terstruktur dikenal ada 2 tipe data:
- Larik (array)
- Record.
Larik/
Array à sekumpulan kotak (variable) yang
menyimpan sekumpulan elemen bertipe sama secara berurutan (sequential).
Bentuk umum :
Nama _larik:array[tipe indeks] of tipe larik
Ciri-ciri
Array :
-
setiap
elemen data array diacu melalui indeksnya
-
karena
elemen disimpan secara berurutan , indek array harus lah suatu tipe yang
mempunyai keterurutan (ada suksesor dan predecessor).
Contoh
bertipe data : integer, karakter atau tipe data enumerasi.
Jika
indeks integer maka keterturutan indeks sesuai dengan urutan integer
(0,1,2,3,4,5,6,..)
Jika
indeks Karakter maka keterturutan indeks sesuai dengan urutan karakter
(a,b,c,d,e ….).
contoh : x:array[1..11] of integer;
var gaji:array[5..10] of char;
var gaji:array[5..10] of char;
DIMENSI LARIK /ARRAY
- Larik dimensi 1 à larik yang memiliki 1 index
- Larik Dimensi 2 atau lebih à larik yang memiliki indek > 1. (larik dengan banyak dimensi)
Untuk
deklarasi Array 1 dimensi ada pada contoh diatas.
Untuk
deklarasi Array 2 dimensi:
nama array=array[tipeindeks1,tipeindeks2] of tipe array
contoh :
A : array[1..3,1..2] of byte;
Sallah satu implemantasi array 2 dimensi ini digunakan
untuk membuat program MATRIK (Aljabar Linear).
Contoh Matrik dengan ordo 2 x 2
|
5
|
||
2
|
4
|
Matrik A diatas adalah matrik dengan ordo 2x2 sehingga
matrik tersebut memiliki elemen : A[1,1] = 1, A[1,2] = 5, A[2,1]= 2 dan
A[2,2]=4.
Untuk
membuat deklarasi tipe array dari kasus diatas (dalam Bahasa Pascal) :
Var
A : array [1..2,1..2] of integer;
Untuk
mengisi elemen matrik A diatas :
A[1,1]
:= 1;
A[1,2]
:= 5;
A[2,1]
:= 2;
A[2,2]
:= 4;
|
Untuk
menampilkan isi elemen matrik A :
Write(A[1,1]);
Write(A[1,2]);
Write(A[2,1]);
Write(A[2,2]);
Selain cara
diatas, untuk mengefisienkan penulisan kode program dalam menampilkan isi
Matrik A, maka digunakan proses perulangan :
For i:=1 to 2 do
For j:=1 to 2 do
Write(A[i,j]);