Translate to your languages

Selamat Datang . Suatu kehormatan bagi saya atas kunjungan ini. Saya sangat berharap kunjungan berikutnya.

03 Desember 2008

ARRAY DIMENSI 1 & 2

ARRAY

Array Dimensi 1 ( I/O )

NO

NAMA

1

Muhammad

2

Zaidhan

3

Nail

4

Soni

5

Sotix


Program Contoh_Array_Input;

uses wincrt;

Var

Nama : array[1..5] of string[25];

i : integer;

Begin

for i:=1 to 5 do

Begin

readln(Nama[i]);

writeln('====================');

end;

for i:=1 to 5 do

Begin

Writeln(Nama[i]);

end;

end.

Array Beragam( I/O )

NO

NIM

NAMA

NILAI UTS

NILAI UAS

1

109008250

Muhammad

80

70

2

109008251

Zaidhan

70

80

3

109008252

Nail

60

70

4

109008253

Soni

80

80

5

109008254

Sotix

60

60

Program Contoh_Deklarasi_Array_Beragam;

Uses wincrt;

Var

NIM : array[1..2] of string[10];

Nama : array[1..2] of string[20];

Nilai_1 : array[1..2] of byte;

Nilai_2 : array[1..2] of byte;

i : integer;

Begin

For i := 1 to 2 Do

Begin

Write('NIM = '); readln(NIM[i]);

Write('Nama = '); readln(Nama[i]);

Write('Nilai UTS = '); readln(Nilai_1[i]);

Write('Nilai UAS = '); readln(Nilai_2[i]);

end;

{cetak varibel array}

Writeln(' =====================================================' );

Writeln(' NIM NAMA NILAI UTS NILAI UAS ' );

Writeln(' =====================================================' );

For i:= 1 to 2 do

Begin

Writeln(NIM[i]:

end;

end.

Array Dimensi 2( I/O )

NO

NILAI UTS

NILAI UAS

1

80

70

2

70

80

3

60

70

Program Deklarasi_Array_Dua_Dimensi;

Uses wincrt;

Var

Tabel : Array[1..3,1..2] of Integer;

i,j : Integer;

Begin

Tabel[1,1]:=80;

Tabel[1,2]:=70;

Tabel[2,1]:=70;

Tabel[2,2]:=80;

Tabel[3,1]:=60;

Tabel[3,2]:=70;

For I := 1 to 3 Do

Begin

For J:= 1 to 2 Do

Begin

Writeln('Nilai ',i,',',j,'= ',tabel[i,j]);

End;

End;

End.

Array Matrix( I/O )

Penggunaan array dua dimensi dalam aplikasi penjumlahan matrik :

Program Penjumlahan_Matrik;

Uses winCrt;

Var

Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;

i,j : Integer;

Begin

ClrScr;

{ input matrik ke satu }

Writeln(' Elemen matrik satu');

For i := 1 to 3 Do

Begin

For j := 1 to 2 Do

Begin

Write('Elemen baris -',i,' Kolom -',j,'= ');

Readln(matrik1[i,j]);

end;

End;

{input matrik ke dua}

Writeln('input elemen matrik dua');

For i:= 1 to 3 Do

Begin

For j:= 1 to 2 Do

Begin

Write('Elemen baris -',i,' kolom -',j,'= ');

Readln(matrik2[i,j]);

end;

End;

{proses penjumlahan tiap elemen}

For i := 1 to 3 Do

Begin

For j:= 1 to 2 Do

Begin

Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];

end;

end;

{proses cetak hasil}

For i:= 1 to 3 Do

Begin

For j:= 1 to 2 Do

Begin

Write(Hasil[i,j]:6);

end;

Writeln;

End;

End.

05 November 2008

ARRAY

ARRAY


Larik (array) : adalah tipe terstruktur dari sejumlah komponen yang mempunyai tipe sama. Pada pemrograman menggunakan pascal, larik harus dideklarasikan terlebih dahulu :

Var

Nama_variabel: array[tipe_indek] of tipe_larik;

Contoh:

Var

X: array[1..100] of integer;

Larik x telah dideklarasikan sebagai larik dengan tipe integer, jumlah elemen maksimumnya adalah 100 dan tiap elemen bisa diisi data bertipe integer.

Cara mengisi data pada elemen larik pemrograman adalah seperti berikut ini :

X[1]:= 4;

X[2]:= 3;

X[3]:= 2;

X[4]:= 1;

Untuk menampilkan data dari sebuah elemen larik dengan cara writeln(x[1]); berarti akan menampilkan isi dari elemen 1 larik x.

1) Larik Berdimensi Satu

Larik berdimensi satu dapat digambarkan seperti kotak panjang yang terdiri dari beberapa kotak kecil yang tersusun berurutan, banyaknya kotak kecil yang membentuk kotak panjang adalah menunjukkan banyaknya elemen larik yang dibuat.

Contoh program dengan larik berdimensi satu untuk menyimpan daftar jenis olahraga :

uses crt;

const

max:= 6;

type

sport= array[1..max] of string;

var

olahraga: sport;

indek: integer;

begin

clrscr;

{mengisi data setiap elemen array}

olahraga[1]:= 'sepak bola';

olahraga[2]:= 'basket';

olahraga[3]:= 'tenis';

olahraga[4]:= 'bulu tangkis';

olahraga[5]:= 'voley';

olahraga[6]:= 'renang';

{menampilkan isi array}

for indek:=1 to max do

writeln(olahraga[indek]);

readln;

end.


Contoh program untuk pencarian data pada larik :

uses crt;

const

nama: array[1..10] of string

= ('SUSI','BAMBANG','AGUS','WANDA','TONI','PARDI','TINCE','LIDYA',

'FATUR','ZAHRA' );

var

varnama: string;

indek: integer;

begin

clrscr;

write('Masukkan nama yang dicari : ');

readln(varnama);

{merubah data ke huruf kapital}

for indek:=1 to 10 do

varnama[indek]:= upcase(varnama[indek]);

{membandingkan masukan dengan data pada array}

indek:=0;

repeat

inc(indek);

until (indek>10) or (varnama=nama[indek]);

if indek>10 then

writeln('Nama tidak ditemukan')

else

writeln('Nama ada pada elemen = ',indek);

readln;

end.


Contoh program untuk mencari nilai rata-rata dari data elemen-elemen larik :

uses crt;

var

banyakData, indek: integer;

total: real;

nilai: array[1..5] of real;

begin

clrscr;

{membatasi banyak data}

repeat

write('Banyak nilai yang diinginkan (max 5) = ');

readln(banyakData);

until (banyakData>0) and (banyakData<6);

{memasukkan data nilai}

for indek:=1 to banyakData do

begin

write('Data ke ',indek,' : ');

readln(nilai[indek]);

end;

{menghitung rata-rata}

total:= 0;

for indek:= 1 to banyakData do

total:= total + nilai[indek];

writeln('Nilai rata-rata = ', total/banyakData:0:2);

readln;

end.


Contoh mengurutkan data elemen larik berdasarkan alfabet menggunakan metode bubble :

uses crt;

var

dataNama: array[1..10] of string;

jml, indek, x, y: integer;

tempat: string;

begin

clrscr;

{membatasi jumlah dan membaca masukan data}

repeat

writeln('DATA NAMA AKAN DIURUTKAN ALFABETIKAL');

write('jumlah yang dimasukkan (max 10) = ');

readln(jml); writeln;

until (jml>0) and (jml<11);

for indek:= 1 to jml do

begin

write('data ke ',indek,'= ');

readln(dataNama[indek]);

end;

{mengurutkan data dengan metode bubble}

for x:=1 to jml-1 do

for y:=x+1 to jml do

if dataNama[x] > dataNama[y] then

begin

tempat:= dataNama[x];

dataNama[x]:= dataNama[y];

dataNama[y]:= tempat;

end;

{menampilkan data setelah diurutkan}

writeln;

writeln('DATA SETELAH DIURUTKAN');

writeln;

for indek:= 1 to jml do

writeln(indek,'. ',dataNama[indek]);

readln;

end.


29 Oktober 2008

PENGULANGAN

PENGULANGAN


 

Struktur pengulangan terdiri atas dua bagian :

  1. Kondisi pengulangan : ekspresi boolean yg harus dipenuhi untuk melaksanakan pemrograman pengulangan. Kondisi ini ada yg dinyatakan secara eksplisit oleh pemrogram atau dikelola sendiri oleh komputer(implisit).
  2. Badan (body) pengulangan : satu atau lebih aksi yg akan diulang.

Struktur pengulangan biasanya disertai dengan bagian :

  1. inisialisasi : aksi yg dilakukan sebelum pengulangan dilakukan pertama kali;
  2. terminasi : aksi yg dilakukan setelah pengulangan selesai dilaksanakan.

3 macam notasi struktur pengulangan :

  1. struktur WHILE-DO ;
  2. struktur REPEAT-UNTIL : statement perulangan dapat dilakukan min 1X;
  3. struktur FOR : jika banyak pengulangan yg harus dilakukan sudah diketahui; jika banyak pengulangan belum diketahui harus ditambahkan lagi keadaannya.

Tabel Translasi Notasi Algoritmik Pengulangan ke Notasi bahasa Pascal

Struktur 

Algoritmik 

Pascal

Keterangan 

WHILE-DO 

While <kondisi> do

aksi

endwhile 

While kondisi do

aksi;

(*endwhile*)

 

REPEAT-

UNTIL 

Repeat

Aksi 1

Until <kondisi>

repeat

aksi;

until kondisi;

 

FOR 

FOR menaik :

for peubah←a to b do

aksi

endfor

FOR menaik :

for peubah :=a to b do

aksi;

(*endfor*)

 
  

for peubah:=a to b do

begin

aksi 1;

aksi 2;

.

.

.

end; (*for*)

bila aksi lebih dari satu buah, runtunan aksi diawali dengan begin dan end.


 

For menurun :

for peubah←b downto a do

Aksi

Endfor

For menurun :

for peubah :=b downto a do

aksi;

(*endfor*)

 
  

for peubah :=b downto a do

begin

aksi 1;

aksi 2;

.

.

.

end; (*for*)

bila aksi lebih dari satu buah runtunan aksi diawali dengan begin dan end..


 

Struktur WHILE-DO

Contoh1 : Algoritma menghitung jumlah Deret 1 + 2 + 3+ … +N.

ALGORITMIK

Algoritma JUMLAH_DERET_1

{ Menjumlahkan deret

1 + 2 + 3+ … +N

dengan N adalah bilangan bulat Positif yang dibaca dari piranti masukan. Jumlah deret dicetak ke piranti keluaran.}


 

DEKLARASI

N : integer
{banyaknya suku deret}

Angka : integer
{ suku deret}

Jumlah : integer
{jumlah deret}


 

DESKRIPSI


read (N) { banyaknya suku deret }

jumlah←0 {inisialisasi jumlah deret}

angka←1 {suku deret}


while angka ≤ N do

jumlah←jumlah + angka { jumlah deret sekarang}

angka←angka + 1 { suku deret berikutnya}


endwhile

(angka > N ) {kondisi setelah pengulangan berhenti}

write (jumlah)


 

PASCAL

Program JUMLAH_DERET_1;

Uses wincrt;

var

N         : integer;

Angka     : integer;

Jumlah     : integer;


 

begin


write ('Berapa banyak suku deret ?'); read (N)

jumlah := 0 ;

angka := 1;


while angka <= N do

begin

Jumlah := jumlah + angka;

Angka := angka + 1;


end;


writeln ('Jumlah deret = ', jumlah);

end.


 

Struktur REPEAT-UNTIL

Contoh2 : Algoritma menghitung jumlah Deret 1 + 2 + 3+ … +N.

ALGORITMIK

Algoritma JUMLAH_DERET_2

{ Menjumlahkan deret

1 + 2 + 3+ … +N

dengan N adalah bilangan bulat Positif yang dibaca dari piranti masukan. Jumlah deret dicetak ke piranti keluaran.}


 

DEKLARASI

N : integer
{banyaknya suku deret}

Angka : integer
{ suku deret}

Jumlah : integer
{jumlah deret}


 

DESKRIPSI


read (N) { banyaknya suku deret }

jumlah←0 {inisialisasi jumlah deret}

angka←1 {suku deret}


repeat

jumlah←jumlah + angka { jumlah deret sekarang}

angka←angka + 1 { suku deret berikutnya}


until angka > N


write (Jumlah)


 

PASCAL

Program JUMLAH_DERET_2;

Uses wincrt;

var

N         : integer;

Angka     : integer;

Jumlah     : integer;

begin


write ('Berapa banyak suku deret ?'); read (N)

jumlah := 0 ;

angka := 1;


repeat

begin

Jumlah := jumlah + Angka;

Angka := Angka + 1;


until angka > N;


writeln ('Jumlah deret = ', jumlah);

end.


 

Struktur FOR-TO-DO

Contoh3 : Algoritma menuliskan deret angka

ALGORITMIK

ALGORITMA DERET_ANGKA1

{ menuliskan angka mulai 1 sampai dengan batas }


 

DEKLARASI

i : integer
{banyaknya suku deret}

batas : integer
{ batas deret}


 

DESKRIPSI

baca (i)


for i
ß 1 to batas do


write (i)


endfor


 

PASCAL

Program DERET_ANGKA1;

Uses wincrt;

var

i : integer;

batas : integer;


 

begin

write ('Masukkan batas bilangan yang akan ditampillkan ?'); readln (batas);


for i := 1 to batas do


write (i, ' ' ) ;

end.


 


 

Struktur FOR-DOWNTO-DO

Contoh4 : Algoritma menuliskan deret angka

ALGORITMIK

ALGORITMA DERET_ANGKA2

{ menuliskan deret mulai batas sampai dengan 1 }


 

DEKLARASI

i : integer
{banyaknya suku deret}

batas : integer
{ batas deret}


 

DESKRIPSI

baca (i)


for i
ß batas to 1 do


write (i)


endfor


 

PASCAL

Program DERET_ANGKA2;

Uses wincrt;

var

i : integer;

batas : integer;


 

begin

write ('Masukkan batas bilangan yang akan ditampillkan ?'); readln (batas);


for i := batas downto 1 do


write (i, ' ' ) ;

end.


 

TUGAS :

Buatlah Program menggunakan bahasa pascal untuk algoritma berikut ini !!!

ALGORITMIK

ALGORITMA SUDAH_BISA

{ menanyakan jawaban sampai jawaban yang diberikan valid }


 

DEKLARASI

jawab : char
{banyaknya suku deret}


 

DESKRIPSI


baca (jawab)


while not ((jawab = 'Y') or (jawab = 'T'))


baca (jawab)


endfor