b Variabel berindeks
PERTEMUAN 7 Larik 2 Dimens
Misalkkan Matrik C ukuran 3x4 yang merupakan hasil penjumlahan dari Matrik A ukuran 3x4 dan Matrik B ukuran 3x4.
A=
(
a b c de f g h
i
j k l
)
danB=
(
m n o pq r s t
u v w x
)
C=
(
a+m b+n c+o d+p
e+q
f+r
g+s
h+t
i+u
j+v k+w
l+x
)
Maka algoritma dari permasalahan tersebut dapat dituliskan : Deklarasi
Type larik : Array [1..Indeks, 1..indeks2] of integer X : Larik
N : Integer
Procedure Input_ArrayA(output x : Larik; Input M,N : integer); Deklarasi I,j : integer Deskripsi For I := 1 to m do For J := 1 to n do Read ( A[I,j]) End for Endfor
Procedure Input_ArrayB(output x : Larik; Input M,N : integer); Deklarasi I,j : integer Deskripsi For I := 1 to m do For J := 1 to n do Read ( B[I,j])
End for Endfor
Procedure Jumlah_Array(Input x : Larik; Input M,N : integer); Deklarasi
I,j : integer Deskripsi
For I := 1 to m do For J := 1 to n do C[I,j] := A[I,j] + B[I,j] Write ( C[I,j] ) End for Endfor Deskripsi Read (N) Input_ArrayA(x,M,N) Input_ArrayB(x,M,N) Jumlah_Array(x,M,N)
Implementasinya dalam bahasa Pemrograman Pascal : Uses Crt;
Type
Latih = array [ 1..10, 1..10] of integer; Var
I,j,n,m : Integer; A,B,C : latih;
Procedure InputA(var x : latih; m,n : integer); Begin
For I := 1 to m do Begin
For J := 1 to n do Begin
Write(‘Masukkan suku A[‘,I,’] = ‘); Raedln(A[I,j](;
End; End;
End;
Procedure InputB(var x : latih; m,n : integer); Begin
For I := 1 to m do Begin
Begin
Write(‘Masukkan suku B[‘,I,’] = ‘); Raedln(B[I,j](;
End; End;
End;
Procedure Keluaran(var x : latih; m,n : integer); Begin For I := 1 to m do Begin For J := 1 to n do Begin C[I,j]:=A[I,j]+ B[I,j] Writeln(‘C[‘,I,’]=’, C[I,j]); End; End; End; Begin Write(‘Masukkan m (mak 10) :’); Readln(m); Write(‘Masukkan n (mak 10) :’); Readln(n); InputA(a,m,n); InputB(a,m,n); Writeln; Writeln; Keluaran(c,m,n); Readln; End.
Pengurutan Data pada Array
Permasalahan lain dalam array yang juga banyak digunakan adalah bagaimana mengurutkan elemen-elemen dari variabel array tersebut. Perhatikankembali Contoh 5.24. Pada contoh tersebut terlihat bahwa isi elemen- elemen dari array tidak dalam posisi berurutan. Bagaimanakah caranya agar isi elemenelemen tersebut terurut dari besar ke kecil atau sebaliknya? Ada beberapa algoritma yang dapat digunakan untuk mengurutkan sekumpulan bilangan, antara lain bubble sort, selection sort, shell sort, quick sort, dan lain- lain. Pada buku ini kita akan membahas satu algoritma yaitu bubble sort. Meskipun kinerjanya tidak sebaik algoritma yang lain, algoritma ini mudah dimengerti dan banyak digunakan.
File seringkali digunakan untuk menyimpan data agar data tidak hilang. Data atau yang ada dan dihasilkan pada program akan hilang ketika program diakhiri, sehingga file digunakan untuk menyimpan data tersebut. Ada dua jenis file yaitu file program dan file data. File program berisi kode-kode program sedangkan file data hanya berisi data. File data terdiri dari dua jenis yaitu file data berurutan (sequential data file) dan file data acak (random-access data file).
PERTEMUAN 8
Algoritma Penulisan Data pada File
Algoritma yang digunakan untuk penulisan data untuk file data berurutan maupun acak secara rinsip sama, hanya modusnya yang berbeda.
Berikut ini adalah algoritma penulisan data.
Open “modus”, <buffer number>, “nama file data” Write <record number>,
field 1, field 2, .. field n
Close buffer number Modus O menunjukkan file ini dibuka untuk ditulisi. Contoh 5.25.
Contoh Penerapan algoritma penulisan data.Misalkan kita punya file data dengan nama “siswa.dat” yang field-nya adalah nama siswa, alamat, nomor telepon. Maka untuk menuliskan data adalah sebagai berikut :
Open “O”, #1, “siswa.dat”
Write #1, <nama>, <alamat>, <no.telepon> Close #1
Notasi #1 menunjukkan siswa.dat akan ditempatkan dalam buffer no 1. Notasi ini harus sama digunakan di seluruh progam di atas.
Artinya kalau kita menempatkan suatu file dengan nomor buffer #1 maka ketika membuka, menulis, membaca dan menutup harus menggunakan notasi tersebut. Demikian juga bila kita menempatkan pada buffer no #2.
Algoritma Pembacaan Data pada File
Algoritma membaca data algoritmanya hampir sama dengan menuliskan data, tetapi modus yang digunakan tidak O tetapi I. I adalah input yang berarti file data dibuka untuk dibaca datanya sebagai input.
Berikut ini algoritmanya dalam SE.
Open “modus”, <buffer number>, “nama file data” While not EOF:
Input <record number>, field 1, field 2, .. field n
Print field 1, field 2, .. field n End while
Close buffer number
Pernyataan While Not EOF digunakan untuk memeriksa apakah sudah ada pada baris terakhir dari data. Jika belum maka baris-baris data akan dibaca dan dicetak sampai baris terakhir. Pernyataan input digunakan untuk mengambil data dari file untuk dimuat ke dalam program. Sedangkan Pernyataan print digunakan untuk mencetak data ke layar komputer. Contoh 5.26.
Contoh penerapan algoritma penulisan data. File data dengan nama “siswa.dat” seperti pada contoh 5.25 yang field-nya adalah nama siswa, alamat, nomor telepon. Maka untuk membaca data adalahsebagai berikut.
Open “I”, #2, “siswa.dat” While not EOF:
Input #2, <nama>, <alamat>, <no.telepon> Print <nama>, <alamat>, <no.telepon> End while
Close buffer number
Contoh dalam bahasa pemrograman dasar : Uses Crt;
Var
I,n,x : integer;
Procedure Inputan ( var x,n : integer); Begin
For i := 1 to n do Begin
Write (’masukkan suku ke-’,i,’=’); Readln(x);
End; End;
Procedure Keluaran ( var x,n : integer); Begin For i := 1 to n do Write (‘x[’,i,’]=’,x); End; Begin Clrscr; Write(’Masukkan N (mak 100) :’); Readln(n); Inputan(x,n); Writeln; Writeln; Keluaran(x,n); Readln; End.
PERTEMUAN 9
Percabangan dengan 2 kondisi
Struktur satu kondisi (perintah if)
Struktur ini merupakan struktur yang paling sederhana karena hanya melibatkan satu buah ekspresi akan diperiksa. Pada konstruksi perintah if, C++ tidak memiliki kata kunci (keyword) then.
Bentuk umum: if (kondisi) pernyataan; atau if (kondisi) { statemen1; statemen2; … } Contoh: if (detik == 60) menit = menit + 1; if (Angka %2 == 0) cout<<”Bilangan genap”; if (sisi > 0) {
Luas = panjang * lebar; Isi = Luas*tinggi;
}
Keterangan :
Kondisi digunakan untuk menentukan pengambilan keputusan, operator yang digunakan adalah relational dan logical operators.
Contoh program:
#include <iostream.h> int main()
int nilai;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan bulat: “; cin>>nilai;
//menampilkan teks jika nilai yang tersimpan lebih besar dari 0 if (nilai > 0)
cout<<“Nilai yang Anda masukkan adalah bilangan positif“; return 0; }
Hasil eksekusi program di atas bersifat dinamis artinya tidak setiap proses eksekusi program akan menghasilkan hasil yang sama. Jika user memasukkan angka lebih besar dari 0 maka program ini akan menampilkan teks “Nilai yang Anda masukkan adalah bilangan positif”.
Selain itu kita juga _omp nenggunakan operator || dan && dalam menentukan sebuah ekspresi. Contoh program:
#include <iostream.h> int main()
{
int bilangan; char huruf;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan bulat: “; cin>>bilangan;
if ((bilangan > 0) && (bilangan < 10))
cout<<bilangan<<” lebih besar dari nol dan lebih kecil dari sepuluh”; //memasukkan huruf
cout<<“\n“;
cout<<”Masukkan sebuah huruf: “; cin>>huruf;
if ((huruf == ‘A’) || (huruf == ‘a’) || (huruf == ‘I’) || (huruf == ‘i’) || (huruf == ‘U’) || (huruf == ‘u’) || (huruf == ‘E’) || (huruf == ‘e’) || (huruf == ‘O’) || (huruf == ‘o’))
{
cout<<huruf<<” adalah huruf _ompu”; }
return 0; }
PERTEMUAN 10
Penggunaan If Majemuk
Struktur dua kondisi (perintah if – else)
Struktur percabangan jenis ini sedikit lebih kompleks bila dibandingkan dengan struktur yang hanya memiliki satu kondisi. Konsep ini sangat sederhana yaitu pada struktur jenis ini terdapat sebuah statemen khusus yang berguna untuk mengatasi kejadian apabila kondisi yang didefinisikan tersebut tidak terpenuhi (bernilai salah). Perintah ini memberikan satu omputer e dari dua kemungkinan.
Bentuk umum: if (kondisi) { statement_jika_kondisi_terpenuhi; } else { statement_jika_kondisi_tidak_terpenuhi; } Contoh: #include <iostream.h> int main() { int nilai;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan bulat: “; cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak if (nilai %2 == 0)
{
cout<<nilai<<“adalah bilangan genap“; }
else {
cout<<nilai<<“adalah bilangan ganjil“; }
return 0; }
Contoh program:
int main() {
int nilai;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan yang akan diperiksa: “; cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak if (nilai > 0)
{
cout<<nilai<<“ adalah bilangan positif“; }
else if (nilai < 0) {
cout<<nilai<<“ adalah bilangan *omputer“; }
else {
cout<<“Anda memasukkan bilangan NOL“; }
return 0; }
Contoh Program :
Implementasinya dalam bahasa Pemrograman Pascal : Uses Crt;
Type
Latih = array [ 1..10, 1..10] of integer; Var
I,j,n,m : Integer; A,B,C : latih;
Procedure InputA(var x : latih; m,n : integer); Begin
For I := 1 to m do Begin
For J := 1 to n do Begin
Write(‘Masukkan suku A[‘,I,’] = ‘); Raedln(A[I,j](;
End; End;
Procedure InputB(var x : latih; m,n : integer); Begin For I := 1 to m do Begin For J := 1 to n do Begin
Write(‘Masukkan suku B[‘,I,’] = ‘); Raedln(B[I,j](;
End; End;
End;
Procedure Keluaran(var x : latih; m,n : integer); Begin For I := 1 to m do Begin For J := 1 to n do Begin C[I,j]:=A[I,j]+ B[I,j] Writeln(‘C[‘,I,’]=’, C[I,j]); End; End; End; Begin Write(‘Masukkan m (mak 10) :’); Readln(m); Write(‘Masukkan n (mak 10) :’); Readln(n); InputA(a,m,n); InputB(a,m,n); Writeln; Writeln; Keluaran(c,m,n); Readln; End.
Lampiran 2
INSTRUMEN TES URAIAN