0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan

IS1313-06 Array & String

Dokumen tersebut memberikan penjelasan tentang konsep array dan string dalam pemrograman, termasuk pengertian array, elemen array, indeks array, array satu dimensi dan multidimensi, contoh penggunaan array, dan teknik pengurutan data dalam array.

Diunggah oleh

Renal Farhan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan

IS1313-06 Array & String

Dokumen tersebut memberikan penjelasan tentang konsep array dan string dalam pemrograman, termasuk pengertian array, elemen array, indeks array, array satu dimensi dan multidimensi, contoh penggunaan array, dan teknik pengurutan data dalam array.

Diunggah oleh

Renal Farhan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

Materi kuliah

ARRAY & STRING


(IS1313)

Ir. Roedi Goernida, MT.


([email protected])

Program Studi Sistem Informasi – Fakultas Rekayasa Industri


Institut Teknologi Telkom
Bandung
2009
Pengertian Array (1/2)

● Array merupakan tipe data terstruktur yang memiliki


suatu nilai variabel yang dapat menyimpan data
yang bertipe sama & dapat lebih dari satu nilai yang
sama.
● Komponen array → Elemen array, index array & nilai
elemen array
Elemen-elemen Array

1 2 3 4 5 Indeks Array

Array DaftarMusik

Hand-out: Array & String IS1313 - 06 Hal. 1


Pengertian Array (2/3)

● Setiap nilai yang tersimpan di dalam array disebut


elemen array.
● Tipe elemen array berupa tipe sederhana & tipe
bentukan.
● Setiap elemen diakses langsung dengan index.
● Index array harus tipe data yang menyatakan
keterurutan.
● Banyaknya elemen array harus sudah diketahui
sebelum program dieksekusi. → struktur data statik

Hand-out: Array & String IS1313 - 06 Hal. 2


Pengertian Array (3/3)

● Bentuk umum:
Nama_array : ARRAY[Index_range] OF tipe_data;

● Deklarasi array terbagi atas:


Tipe peubah
→ NamaMHS:ARRAY['Ozzy'..'Mirel'] of STRING;

Tipe baru/bentukan
→ type merek_comp:ARRAY['a'..'b'] of STRING;
harga:ARRAY[1..10] of INTEGER;

Konstanta
→ const grade:ARRAY[1..5]=('A','B','C','D','E');

Hand-out: Array & String IS1313 - 06 Hal. 3


Mengapa harus array?

VAR nim1,nim2,nim3,nim4,nim5,nim6,nim7,nim8,nim9,nim10:REAL

BEGIN
WRITELN('Masukkan NIM-1 :'); READLN(nim1);
WRITELN('Masukkan NIM-2 :'); READLN(nim2);
WRITELN('Masukkan NIM-3 :'); READLN(nim3);
WRITELN('Masukkan NIM-4 :'); READLN(nim4);
WRITELN('Masukkan NIM-5 :'); READLN(nim5);
WRITELN('Masukkan NIM-6 :'); READLN(nim6);
WRITELN('Masukkan NIM-7 :'); READLN(nim7);
WRITELN('Masukkan NIM-8 :'); READLN(nim8);
WRITELN('Masukkan NIM-9 :'); READLN(nim9);
WRITELN('Masukkan NIM-10 :'); READLN(nim10);
END.

CONS maks=10;
VAR n:ARRAY[1..maks] of REAL;
i:INTEGER;
BEGIN
FOR i:=1 TO maks DO
WRITELN('Masukkan NIM-',i,' : '); READLN(n[i]);
END.

Hand-out: Array & String IS1313 - 06 Hal. 4


Array Multidimensi

● Selain array berdimesi satu, terdapat juga array ber-


dimensi dua & berdimensi tiga.
● Array berdimensi dua memiliki dua buah elemen yang
dapat direpresentasikan dengan baris (row) & kolom
(column).
● Bentuk umum:
Nama_array : ARRAY[1..BanyakBaris,1..BanyakKolom) OF
tipe_data;

Contoh: Array2D:[1..3,1..4] of integer;


Array2D[2,4]:=100

Hand-out: Array & String IS1313 - 06 Hal. 5


Contoh 1

PROGRAM Array0;

USES crt;

CONST
Hari:ARRAY[0..6] OF String[6]=
('Senin','Selasa','Rabu','Kamis','Jumat','Sabtu','Minggu');
Bulan:ARRAY[1..12] OF String[11]=
('Jan','Peb','Mar','Apr','Mei','Jun','Jul','Agt','Sep','Okt',
'Nop','Des');

VAR HH,BB,TT,IdxHH,IdxBB:INTEGER;

BEGIN
clrscr;
WRITE('Masukkan hari ke : '); READ(HH);
WRITE('Masukkan bulan ke : '); READ(BB);
WRITELN('Hari ke ',HH,' adalah ', Hari[HH]); READLN;
WRITELN('Bulan ke ',BB,' adalah ', Bulan[BB]); READLN;
END.

Hand-out: Array & String IS1313 - 06 Hal. 6


Contoh 2

PROGRAM Array1;

CONST SumKelas=6;

VAR Score:ARRAY[1..SumKelas] OF REAL;


Average,SumNilai:REAL;
Index:INTEGER;

BEGIN
FOR Index := 1 TO SumKelas DO
BEGIN
WRITE('Masukkan nilai kela# ',Index,':'); READLN(Score[Index])
END;
SumNilai:=0;
FOR Index := 1 TO SumKelas DO
SumNilai:=SumNilai+Score[Index];
Average:=SumNilai/SumKelas;
WRITELN;
WRITELN('Jumlah nilai = ',SumNilai:0:2);
WRITELN('Nilai rata-rata = ',Average:0:2);
WRITELN;
WRITELN('Tekan ENTER untuk lanjut.');
READLN
END.

Hand-out: Array & String IS1313 - 06 Hal. 7


Contoh 3

PROGRAM Array2;
WRITELN;
CONST SumKelas=6; WRITELN(Tab1,'Kelas');
Tab=' '; WRITE(' ');
Tab1=' '; FOR Index:=1 TO SumKelas DO
WRITE(Index:7);
VAR WRITELN;
Score:ARRAY[1..SumKelas] OF REAL; WRITE(Tab);
Average,SumNilai :REAL; FOR Index:=1 TO SumKelas DO
Index :INTEGER; WRITE('-------');
WRITELN;
BEGIN WRITE('NILAI');
FOR Index:=1 TO SumKelas DO FOR Index:=1 TO SumKelas DO
BEGIN WRITE(Score[Index]:7:2);
WRITE('Masukkan nilai kelas# ', WRITELN;
Index,': '); WRITE(Tab);
READLN(Score[Index]) FOR Index:=1 TO SumKelas DO
END; WRITE('-------');
WRITELN;
SumNilai:=0; WRITELN('Jumlah nilai = ',
FOR Index := 1 TO SumKelas DO SumNilai:0:2);
SumNilai:=SumNilai+Score[Index]; WRITELN('Nilai rata-rata = ',
Average:=SumNilai/SumKelas; Average:0:2);
WRITELN;
WRITELN; WRITELN('Tekan ENTER untuk lanjut.');
WRITE(Tab); READLN
FOR Index:=1 TO SumKelas DO END.
WRITE('-------');

Hand-out: Array & String IS1313 - 06 Hal. 8


Contoh 4
PROGRAM Array4;

VAR nama :array[1..10]of string[20];


alamat :array[1..20]of string[20];
jml_gaji :array[1..20]of real;
i,j :byte;

BEGIN
WRITE('Jumlah Data Input : '); READLN(j);
WRITELN;
FOR i:= 1 TO j DO
BEGIN
WRITELN('Data input ke-',i);
WRITE('Nama Karyawan : '); READLN(nama[i]);
WRITE('Alamat : '); READLN(alamat[i]);
WRITE('Gaji dasar : '); READLN(jml_gaji[i]);
WRITELN;
END;
WRITELN(' DATA GAJI KARYAWAN');
WRITELN('======================================');
WRITELN('No. Nama Karyawan Alamat Total Gaji ');
WRITELN('======================================');
FOR i:=1 to j do
BEGIN
WRITELN(i:1,nama[i]:10,alamat[i]:12,jml_gaji[i]:15:0);
END;
WRITELN('======================================');
READLN
END.

Hand-out: Array & String IS1313 - 06 Hal. 9


Pengurutan dalam Array (1/2)

● Merupakan proses pengurutan data yang sebelumnya


teracak agar tersusun secara teratur sesuai aturan tertentu.
● Terdapat beberapa metoda pengurutan (sorting) data array
pada pemrograman.
● Metoda pengurutan yang biasa digunakan antara lain buble-
sort, max/min sort & selection sort.

sorting sorting

Hand-out: Array & String IS1313 - 06 Hal. 10


Pengurutan dalam Array (2/2)

● Metoda bubble sort → pengurutan dengan perbandingan


data untuk ascending/descending.
Ascending : A[1] ≤ A[2] ≤ A[3] ≤ A[4] ≤ … ≤ A[n]
Descending : D[1] ≥ D[2] ≥ D[3] ≥ D[4] ≥ … ≥ D[n]

● Metode max/min sort → nilai max/min dalam elemen array


diletakkan di ujung array (elemen pertama & elemen
terakhir).
● Metoda selection sort → memilih salah satu nilai elemen
dengan menganggap sebagai nilai terkecil untuk
dibandingkan dengan elemen lain pada posisi berikutnya.

Hand-out: Array & String IS1313 - 06 Hal. 11


Contoh 1
PROGRAM Array0D; END;
VAR A : array [0..99] of integer ; END;
END;
i,j,N,temp:integer; WRITELN('Hasil setelah pengurutan : ');
pilih:char; FOR j:=0 TO (N-1) DO
BEGIN BEGIN
WRITE(' Jumlah masukan nilai '); WRITELN(A[j]);
WRITE('(max.100) = ') END;
READLN(N); END;
WRITELN; if (pilih= 'd') or (pilih='D') then
FOR j:=0 TO (N-1) DO BEGIN
BEGIN FOR i:=1 TO (N-1) DO
WRITE(' Data yang ke-',j+1,' = '); BEGIN
READLN(A[j]); FOR j:=i DOWNTO 1 DO
END; BEGIN
WRITELN; if A[j] >A[j-1] then
BEGIN
WRITE('Hasil ditampilkan Ascending'); temp:=A[j];
WRITE('atau Discending (A or D) ? '); A[j]:=A[j-1];
READLN(pilih); A[j-1]:=temp;
IF (pilih='a') OR (pilih='A') THEN END;
BEGIN END;
FOR i:=1 TO (N-1) DO END;
BEGIN WRITE ('Hasil setelah pengurutan : ');
FOR j:=i DOWNTO 1 DO FOR j:=0 TO(N-1) DO
BEGIN BEGIN
IF A[j] < A[j-1] THEN WRITE(A[j]:3);
BEGIN END;
temp:=A[j]; END;
A[j]:=A[j-1]; READLN
A[j-1]:=temp; END.

Hand-out: Array & String IS1313 - 06 Hal. 12


Contoh 2

PROGRAM Array5;
panas:=temp[i,j];
TYPE suhu=array[1..2,1..3] OF real; FOR i:=1 TO 2 DO
BEGIN
VAR temp:suhu; FOR j:=1 TO 3 DO
i,j :integer; BEGIN
panas:real; IF temp[i,j] > panas THEN
BEGIN
BEGIN panas:=temp[i,j]
FOR i:=1 TO 2 DO END;
BEGIN END;
FOR j:=1 TO 3 DO END;
BEGIN WRITELN('suhu terpanas : ',panas:5:2);
WRITE('Masukkan ushi [',i,',',j,']: '); READLN;
READLN(temp[i,j]); END.
END;
END;

WRITELN;
WRITELN('tabel suhu');
WRITELN('..........');
FOR i:=1 TO 2 DO
BEGIN
FOR j:=1 TO 3 DO
BEGIN
WRITE(temp[i,j]:0:2,' ');
END;
WRITELN;
END;

Hand-out: Array & String IS1313 - 06 Hal. 13


Record dalam Array

● Elemen dalam array yang berupa record berisi data seperti


integer, char real & lainnya.
● Array dapat berisi record atau record yang berisi array.
● Mis: - TYPE T_Mhs = record
NIM :string(9);
Nama :string(25);
T_TotalMhs = array [1..150] of T_Mhs;
END;
VAR A:T_TotalMhs;

- TYPE record
NIM :string[9]
Nama :string[25];
Nilai :array[1..3] of real;
END;

Hand-out: Array & String IS1313 - 06 Hal. 14


Contoh 1

PROGRAM Array6; WRITE;


WRITELN('DAFTAR MHS');
CONST Max = 100;
WRITELN('---------------------------------------');
TYPE WRITELN(' NIM ','':2,' NAMA MAHASISWA
T_Mhs = record ');
NIM : string[9];
WRITELN('---------------------------------------');
Nama: string[25];
FOR i:=1 to N do
END; BEGIN
T_Tot_Mhs = array[1..Max] of T_Mhs; WITH A[i] do
BEGIN
VAR WRITE(NIM:9, '':2, Nama);
A : T_Tot_Mhs; END;
i,N : integer; END;
READLN;
BEGIN END.
WRITE('Jumlah Mhs yang akan diinput: ');
READLN(N);
WRITELN;
WRITELN('Memasukan data');
WRITELN('-------------------------');
FOR i:=1 to N do
BEGIN
WRITELN('Data Mhs ke-',i);
WRITE('NIK : '); READLN(A[i].NIM);
WRITE('Nama : '); READLN(A[i].Nama);
WRITELN;
END;

Hand-out: Array & String IS1313 - 06 Hal. 15


Contoh 2
PROGRAM Array7;

CONST Max = 100; WRITE;


WRITELN('DAFTAR NILAI MAHASISWA');
TYPE T_Mhs = record
NIM : string[9] WRITELN('---------------------------------------
Nama : string[25]; ----');
Nilai : array[1..3] of real; WRITELN('NIM':9, '':2,'NAMA MAHASISWA':25,
END; '':2,'NILAI');
T_Tot_Mhs = array[1..Max] of T_Mhs;
WRITELN('---------------------------------------
VAR A : T_Tot_Mhs; ----');
i,N : integer; FOR i:=1 to N do
NA : real; BEGIN
WITH A[i] do
BEGIN BEGIN
WRITE('Jumlah Mhs yang akan diinput: '); NA:=(0.1*Nilai[1]) + (0.4*Nilai[2]) +
READLN(N); (0.5*Nilai[3]);
WRITELN; WRITELN(NIM:9, '':2,Nama:25, '':2,NA:0:2);
WRITELN('Memasukkan data'); END;
WRITELN('-------------------------'); END;
FOR i:=1 to N do BEGIN READLN;
WRITELN('Data Mhs ke-',i); END.
with A[i] DO
BEGIN
WRITE('NIK : '); READLN(A[i].NIM);
WRITE('Nama : '); READLN(A[i].Nama);
WRITELN('Nilai');
WRITE('Nilai kuis : '); READLN(Nilai[1]);
WRITE('Nilai UTS : '); READLN(Nilai[2]);
WRITE('Nilai UAS : '); READLN(Nilai[3]);
END;
WRITELN;
END;

Hand-out: Array & String IS1313 - 06 Hal. 16


Pencarian data pada array

Pencarian elemen data pada Pascal terbagi atas:


● Sequeantial searching
→ dengan membandingkan
→ digunakan pada data yang masih acak & berurut.
● Binary searching
→ dengan membagi dua data : (N+1) div 2
→ digunakan pada data yang berurut

Hand-out: Array & String IS1313 - 06 Hal. 17


Contoh 1

PROGRAM Array8;

CONST
A : array[1..5] of integer = (67,42,11,97,20);

VAR
i,x,index : integer;

BEGIN
WRITE('Nilai yang dicari: '); READLN(x);
index := 0;
FOR i:=1 to 5 DO
BEGIN
IF A[i] = x THEN
BEGIN
index := i
END;
END;
WRITELN('Ditemukan pada index ke-',index);
READLN;
END.

Hand-out: Array & String IS1313 - 06 Hal. 18


Contoh 2

PROGRAM Array9; BEGIN


IF A[k] < x THEN
USES crt; BEGIN
idxAwal := k + 1;
CONST END
A : array[1..10] of integer = ELSE
(23,37,42,50,61,73,77,85,92,99); BEGIN
idxAkhir := k -1;
VAR END;
idxAwal,idxAkhir,k,x : integer; END;
find : boolean; END;
IF find THEN
BEGIN BEGIN
WRITE('Nilai yang dicari: '); READLN(x); WRITELN(x,' ditemukan pada index ke-',k);
idxAwal := 1; END
idxAkhir:=10; ELSE
find := false; BEGIN
WHILE (not find) AND (idxAwal <= idxAkhir) DO WRITELN(x,' tidak ditemukan.');
BEGIN END;
k := (idxAwal) + (idxAkhir) DIV 2; READLN;
IF A[k] = x THEN END.
BEGIN
find := true
END
ELSE

Hand-out: Array & String IS1313 - 06 Hal. 19


Hand-out: Array & String IS1313 - 06 Hal. 16
Selesai

Anda mungkin juga menyukai