MODUL PRAKTIKUM
Algoritma dan pemrograman
BAB 1
STRUKTUR UMUM TURBO PASCAL
Struktur utama dari bahasa pemrograman turbo Pascal terdiri dari beberapa bagian umum seperti Komentar, Preposesor Directive, Global Declaration, User Define Function, dan Main Program.
1. Komentar
Adalah bagian program yang berguna untuk memberi keterangan program atau keterangan pada fungsi dari program, dan biasanya komentar tersebut diapit oleh tanda { dan }, sehingga apapun yang tertulis didalam kedua tanda tersebut tidak akan dieksekusi contoh :
{ program sederhana untuk menampilkan string }
2. Preprosesor Directive
Preprosesor Directive adalah persiapan penggunaan fungsi uses yang nantinya akan menggunakan file-file yang telah disediakan pada direktori doc, contoh :
Uses wincrt;
Uses printer;
3. Global Declaration
Global declaration adalah pendeklarasian fungsi dan variable secara global, pendeklarasian ini bermaksud bahwa semua fungsi dan variable yang ada dapat dikenal diseluruh program, contoh :
Var Angka : Integer;
Begin
End
4. Main Program
Main program atau program utama berisi keseluruhan perintah pada sebuah program yang dapat berupa perintah langsung atau berupa pemanggilan fungsi-fungsi :
var nama: string;
Begin
clrscr;
write(‘ Masukan nama anda : ”);
readln(nama);
write(‘Selamat datang’, nama);
readln;
End.
5. User Define Function
Adalah tempat penulisan fungsi-fungsi yang telah dideklarasikan sebelumnya, bagian ini akan dibahas lebih lanjut pada pembahasan fungsi dan prosedur.
Hampir semua perintah pada Turbo Pascal diakhiri dengan tanda titik koma (;).Turbo Pascal adalah bahasa pemrograman yang incase-sensitive yang berarti tidak membedakan penggunaan huruf besar dan kecil.
Berikut table standar penggunaan short-cut pada Turbo Pascal
Tombol | Keterangan |
F2 | Menyimpan File |
F3 | Membuka File |
F5 | Membesarkan jendela halaman kode program |
F6 | Berpindah halaman kode program |
CTRL+F9 | Menjalankan Program |
ALT+F9 | Mengkompile Program |
BAB 2
TIPE DATA, INPUT DAN OUTPUT
1. Tipe Data
Setiap variabel yang ditulis pada turbo Pascal memiliki tipe data tertentu, sehingga dalam membuat pendeklarasiannya pun berbeda pula. Beberapa tipe data yang umum digunakan adalah :
a. Integer
Berupa kumpulan angka numerik bulat. Cara mendeklarasikannya adalah
namavar : integer;
b. Real
Berupa kumpulan angka numeric pecahan. Cara mendeklarasikannya adalah
Namavar : real ;
c. Char
Berupa sebuah karakter tunggal atau sebuah karakter. Cara mendeklarasikannya adalah namavar : char;
d. String
Berupa kumpulan dari karakter dengan jumlah tertentu. Cara mendeklarasikannya adalah : namavar : string;
e. Boolean
Tipe data yang hanya memiliki 2 nilai yaitu true dan false. Cara mendeklarasikannya adalah : namavar : Boolean;
2. Perintah Input
Perintah yang digunakan untuk mengambil sebuah masukan dari keyboard yang dipakai pada Turbo Pascal adalah: Read/Readln, Contoh :
Uses wincrt;
Var Nama:string;
Begin
Clrscr;
Write(‘Masukan Nama Anda : ’);
Readln(Nama);
Readln;
End.
3. Perintah Output
Perintah yang digunakan untuk membuat sebuah nilai keluaran pada Turbo Pascal adalah: write/writeln, Contoh :
Uses wincrt;
Var Nama:string;
Begin
Clrscr;
Write(‘Masukan Nama Anda : ’);
Readln(Nama);
Writeln(‘Selamat Datang : ’,Nama);
Readln;
End.
Buat sebuah program yang menerima input nama, alamat, umur, pekerjaan dan mengeluarkan output nama, alamat, umur dan pekerjaan.
BAB 3
VARIABEL, KONSTANTA DAN OPERATOR
1. Variabel
Seperti yang telah dijelaskan sebelumnya pada pembahasan tipe data, turbo Pascal mengenal bermacam-macam tipe data baik itu tipe data numeric dan data karakter atau string. Variabel yang memiliki tipe data numeric ( integer, real ) adalah variable yang dapat melakukan proses perhitungan sedangkan variable yang memiliki tipe data karakter atau string ( char, string ) tidak dapat melakukan prose perhitungan. Berikut contoh-contoh penulisannya :
A : Integer;
A,B,C : Real;
A : Char;
A,B,C : string;
2. Konstanta
Konstanta adalah sebuah nilai yang tetap dan tidak berubah, pendeklarasian sebuah konstanta sedikit berbeda dengan pendeklarasian variable karena diperlukan inisialisasi sebuah nilai awal dan diletakkan sebelum/sesudah deklarasi variabel:
Const phi=3.14;
Const Pass=’AADC’
3. Operator
Operator aritmatika digunakan untuk memproses segala jenis data bilangan baik bilangan bulat maupun bilangan pecahan. Berikut table operator aritmatika :
Opeator | Fungsi | Contoh | Hasil |
* | Perkalian | 2*3 | 6 |
+ | Pertambahan | 1+3 | 4 |
/ | Pembagian | 9/3 | 3 |
- | Pengurangan | 5-3 | 2 |
Mod | Sisa bagi | 7 mod 2 | 1 |
Div | Hasil Bagi | 9 div 2 | 4 |
:= | Pemberian Nilai | A:=7 | |
() | Prioritas | 2*(3+2) | 10 |
Selain operator aritmatika pada Turbo Pascal juga dikenal operator logika dan operator kondisi, seperti yang ditunjukan pada table berikut :
Operator | Fungsi | Keterangan |
NOT | NOT | Lawan/Pembalik |
AND | AND | Salah satu salah , maka salah semua |
OR | OR | Salah satu benar, maka benar semua |
X>Y | X lebih besar dari Y | |
X<Y | X lebih kecil dari Y | |
X>=Y | X lebih besar sama dengan Y | |
X<=Y | X lebih kecil sama dengan Y | |
X=Y | X sama dengan Y | |
X<>Y | X tidak sama dengan Y |
Studi Kasus 2
Buat sebuah program perhitungan nilai akhir
Input : nama, tugas, quiz, uts, dan uas
Proses : nilai = 10%*tugas, 20%*quiz + 30%*uts, dan 40%*uas.
Output : nama, dan nilai
BAB 4
STRUKTUR UMUM IF – THEN – ELSE
Fungsi logika if adalah salah satu cara yang paling umum dalam melakukan pengkondisian pada sebuah program. Beberapa contoh dari struktur if diantaranya :
1. Struktur IF sederhana
If (kondisi) Then
Begin
pernyataan bila kondisi dipenuhi
End
Pada struktur ini, pernyataan yang diapit oleh Begin..End hanya akan dieksekusi bila kondisi if terpenuhi. Jika pernyataan pada kondisi if lebih dari satu, diharuskan menggunakan Begin..End ini bila hanya satu, hal itu bisa dihilangkan.
Contoh :
Uses wincrt;
Var A,B:integer;
Begin
A:=2;B:=8;
if (a<b) then
Write(A,’ lebih kecil dari ’, B);
End
2. Struktur IF ganda
if (kondisi) then
Begin
pernyataan bila kondisi dipenuhi
End
else
Begin
pernyataan bila kondisi tidak dipenuhi
End
Struktur ini memungkinkan dilakukannya aksi yang berbeda tergantung dari hasil pengkondisian. Bila kondisi dipenuhi maka pernyataan pada blok if dieksekusi, bila tidak, maka pernyataan pada blok else dieksekusi. Contoh :
Uses wincrt;
Var A,B:integer;
Begin
A:=7; B:=12;
If (a<b) Then
Begin
textcolor(red); Write(A,’ lebih kecil dari ’, B);
end
else
Begin
textcolor(blue); Write(A,’ lebih besar dari ’, B);
End;
End;
3. Struktur IF bersarang
if (kondisi1) then
begin
if (kondisi2) then
begin
pernyataan bila kondisi2 dipenuhi
end
else if (kondisi3) then
begin
pernyataan bila kondisi3 dipenuhi
end
end
else
begin
pernyataan bila kondisi1 tidak dipenuhi
end;
Struktur if bersarang ini memungkinkan terjadi if didalam if yang mengakibatkan adanya sebuah kondisi dalam kondisi yang lain, penulisannya cukup rumit sehingga agar lebih mudah diharapkan penulisan kondisi seperti ini dibuat lebih sistematis. Contoh:
Uses wincrt;
Var A,B:integer;
Begin
if (a<b) then
begin
textcolor(red); Write(A,’ lebih kecil dari ’, B);
end
else if (a=b) then
begin
Write(A,’ sama dengan ’, B);
end
else
begin
Write(A,’ lebih besar dari ’, B);
end;
end.
Studi Kasus 3
Buat sebuah program perhitungan gaji pegawai
Input : nama, gajipokok, status, jumlah_anak
Proses : gajibersih=gajipokok+tunjangan
tunjangan=tunjangan_istri + tunjangan_anak
tunjangan_istri=10%*gajipokok
tunjangan_anak=jumlah_anak*5%*gajipokok
Output : nama, dan gajibersih
Keterangan :
Status hanya menerima 3 buah input, bila status = 1(menikah) maka perlu dilakukan proses perhitungan tunjangan istri dan anak(bila ada), bila status =2(belum menikah) proses perhitungan tunjangan istri dan anak diabaikan, bila status=3(cerai) maka proses perhitungan tunjangan istri diabaikan dan lakukan proses perhitungan tunjangan anak(bila ada).
JAWABAN
Studi Kasus 3
Program Kasus3;
Uses wincrt;
Var Nama:string;
Status,Ja:integer;
T,ti,Ta,……………,………………:real;
Begin
Clrscr;
write('Masukan Nama Pegawai : ');readln(Nama);
write('Masukan Gaji Pokok : ');readln(Gapok);
write('Masukan Status : ');readln(Status);
if status=……………… then
ta:=0.05*ja*gapok;
t:=ti+ta;
end
else if status=…………… then
begin
t:=0;
end
else if status=3 then
begin
write('Masukan Jumlah Anak : ');readln(ja);
ti:=0;
ta:=0.05*Ja*Gapok;
………………:=Ti+Ta;
end;
Gaber:=Gapok+T;
Write('Nama : ',Nama,' Gaji Bersih Anda : ',Gaber:10:2);
readln;
End.
begin
write('Masukan Jumlah Anak : ');readln(Ja);
ti:=0.1*gapok;
BAB 5
STRUKTUR UMUM CASE - OF
Fungsi case of merupakan struktur kondisi yang majemuk yang biasanya digunakan untuk melakukan kondisi sederhana dalam jumlah banyak. Struktur umum case of adalah sebagai berikut :
case (kondisi) of
a : pernyataan solusi untuk kondisi a;
b : pernyataan solusi untuk kondisi b;
c : pernyataan solusi untuk kondisi c
else pernyataan solusi selain dari a,b,c;
end;
Berikut contoh penggunaannya :
Uses wincrt
Var A:integer;
Begin
writeln(‘Masukan hari ke : ‘);readln(A);
Case (a) Of
1 : write (“Hari ke ’,A,’ adalah Senin’);
2 : write (“Hari ke ’,A,’ adalah Selasa’);
3 : write (“Hari ke ’,A,’ adalah Rabu’);
4 : write (“Hari ke ’,A,’ adalah Kamis’);
5 : write (“Hari ke ’,A,’ adalah Jumat’);
6 : write (“Hari ke ’,A,’ adalah Sabtu’);
7 : write (“Hari ke ’,A,’ adalah Minggu’)
else write(“Salah ketik tuh !!!”);
End;
End.
Bila pada penggunaan case of ini, pernyataan yang akan dieksekusi lebih dari satu baris maka diharuskan menggunakan pengapit Begin..End disetiap kondisi case.
Studi Kasus 4
Buat sebuah program perhitungan gaji pegawai
Input : nama, golongan, status, jumlah_anak
Proses : gajibersih=gajipokok+tunjangan
tunjangan=tunjangan_istri + tunjangan_anak
tunjangan_istri=10%*gajipokok
tunjangan_anak=jumlah_anak*5%*gajipokok
Output : nama, dan gajibersih
Keterangan :
Golongan hanya menerima 4 buah input, bila golongan=’A’ maka gajipokok=4000, bila golongan=’B’ maka gajipokok=3000, bila golongan=’C’ maka gajipokok=2000, dan bila golongan=’D’ maka gajipokok=1000.
Status hanya menerima 3 buah input, bila status = 1(menikah) maka perlu dilakukan proses perhitungan tunjangan istri dan anak(bila ada), bila status =2(belum menikah) proses perhitungan tunjangan istri dan anak diabaikan, bila status=3(cerai) maka proses perhitungan tunjangan istri diabaikan dan lakukan proses perhitungan tunjangan anak(bila ada).
BAB 6
STRUKTUR UMUM PENGULANGAN
1. Struktur umum for to do
For (kondisi awal) to (kondisi akhir) do
Begin
proses selama kondisi benar
End
Struktur for to do diatas memiliki kondisi awal dan kondisi akhir. Kondisi awal adalah kondisi untuk pertama kalinya pengulangan dilakukan dan kondisi akhir adalah sampai kapan pengulangan itu berlangsung. Proses pengubahan variable pada for to do dilakukan otomatis dan penambahan atau pengurangannya sebanyak satu-satu. Contoh :
Uses wincrt
Var X : integer;
Begin
for X:=1 to 10 do
Begin
write(‘ angka ’,x); End;
End.
Contoh diatas dapat dibaca sebagai : cetak angka dari satu sampai sepuluh dengan, angka awalnya adalah satu dan angka akhir adalah sepuluh dengan pertambahan satu-satu. Kebalikan dari contoh diatas adalah :
Uses wincrt
Var X : integer;
Begin
for X:=10 downto 1 do
Begin
write(‘ angka ’,x); End;
End.
2. Struktur umum while - do
While (kondisi) do
Begin
proses selama kondisi terpenuhi
End;
Struktur ini akan melakukan proses setelah sebelumnya dilakukan sebuah pengkondisian dengan kata lain minimal pengulangan yang mungkin terjadi pada struktur ini adalah 0 kali.
Contoh :
Uses wincrt;
Var A:integer;
Begin
A:=1;
while ( A <= 10 ) do
Begin
write(‘ angka ’,A);
A:=A+1;
End;
End.
Contoh diatas dapat dibaca sebagai : cetak angka dari satu sampai sepuluh dengan, angka awalnya adalah satu dan angka akhir adalah sepuluh dengan pertambahan satu-satu. Satu hal yang perlu diingat, pertambahan variable penunjuk pengulangan (A:=A+1;) harus ditulis dan disimpan pada blok pengulangan bila tidak, maka pengulangan tidak akan pernah berhenti.
3. Struktur umum repeat - until
Repeat
proses selama kondisi terpenuhi
Until (kondisi)
Struktur ini akan melakukan proses terlebih dahulu baru kemudian dilakukan sebuah pengkondisian dengan kata lain minimal pengulangan yang mungkin terjadi pada struktur ini adalah 1 kali. Contoh :
Uses wincrt;
Var A:integer;
Begin
A:=1;
Repeat
write(‘ angka ’,A);
A:=A+1;
Until A>10;
End.
Studi Kasus 5
- Buat sebuah program penjumlahan bilangan 1 sampai 100
- Buat sebuah program penjumlahan bilangan genap/ganjil 1 sampai 100
JAWABAN
Studi Kasus 5
Program Kasus5;
Uses wincrt;
Var I,Jum:integer;
Begin
Clrscr;
Jum:=……………………;
Write('Penjumlahan bilangan dari 1 - 100 adalah : ');
for ………………………………………………… do
Jum:=Jum…………………;
Write(……………);
Readln;
End.
Program Kasus5;
Uses wincrt;
Var I,Jum:integer;
Begin
Clrscr;
Jum:=0;
Write('Penjumlahan bilangan Genap dari 1 - 100 adalah : ');
for I:=1 to 100 do
…………………………………………………………………
Jum:=Jum+I;
Write(Jum);
Readln;
End.
BAB 7
PROSEDUR DAN FUNGSI
Suatu program merupakan kumpulan dari beberapa pernyataan solusi, kadang kala pernyataan solusi tersebut dapat berulang pada blok-blok tertentu program. Bila pernyataan tersebut ditulis ulang, akan sangat tidak efisien dan memakan waktu, sehingga akan lebih baik bila pernyataan tersebut dibuat menjadi sebuah fungsi/prosedur tersendiri sehingga lebih mudah dalam pemanggilannya. Secara garis besar, fungsi adalah proses yang mengirimkan sebuah nilai keluaran sedangkan procedure tidak mengirimkan nilai keluaran.
1. Procedure
Bentuk umum dari penulisan sebuah prosedur adalah sebagai berikut:
Procedure NamaProsedur
Begin
pernyataan prosedur
End;
Bila kita telah menyatakan sebuah prosedur tersendiri, maka perintah yang ada didalamnya dapat kita gunakan dengan hanya memanggil nama prosedurnya saja. Berikut contoh dari penulisan prosedur :
Program cobaprosedur;
uses wincrt;
var a:integer;
procedure inputnama;
var nama:string;
begin
clrscr;
write('masukan Nama Anda : ');readln(nama);
write('halo ',nama);
readln;
end;
begin
inputnama;
end.
2. Function
Bentuk umum dari penulisan sebuah fungsi adalah sebagai berikut:
Function NamaFungsi(parameter):tipe fungsi;
Begin
pernyataan fungsi
End;
Fungsi sedikit lebih rumit dari prosedur karena dia selain menerima parameter, fungsi juga dapat menghasilkan nilai keluaran dari hasil pemrosesannya sehingga dalam pemanggilannya pun sedikit berbeda, berikut contohnya :
Program cobafungsi;
uses wincrt;
function inputnama(x:string):string;
var salam:string;
begin
salam:='Selamat Datang '+X;
inputnama:=salam;
end;
var nama,kalimat:string;
begin
clrscr;
write('masukan Nama Anda : ');readln(nama);
kalimat:=inputnama(nama);
write(kalimat);
readln;
end.
Disarankan dalam pemakain fungsi, sebaiknya segala bentuk perintah penerimaan input dilakukan diluar fungsi sehingga fungsi hanya menerima parameter, melakukan proses dan mengeluarkan output tanpa harus menerima input dari keyboard.
Studi Kasus 6
Buat sebuah program pencari huruf mutu mahasiswa dengan menggunakan fungsi dengan ketentuan :
Nilai > 75 <=100 Ã A Buat dengan fungsi
Nilai > 65 <=75 Ã B
Nilai > 50 <=65 Ã C
Nilai > 40 <=50 Ã D
Nilai >= 0 <=40 Ã E
Program Kasus6;
Uses wincrt;
function carihuruf(X:integer):char;
var jawab:char;
begin
jawab:='?';
if (x>75) and (X<=100) then
jawab:='A'
else if (x>65) and (X<=75) then
jawab:='B'
else if (x>50) and (X<=65) then
jawab:='C'
else if (x>40) and (X<=50) then
jawab:='D'
else if (x>0) and (X<=40) then
jawab:='E';
carihuruf:=jawab;
end;
Var nilai:integer;
hurufmutu:char;
Begin
Clrscr;
Write('Masukan Nilai : ');readln(nilai);
hurufmutu:=carihuruf(nilai);
Write('Huruf Mutu : ',hurufmutu);End.
BAB 8
ARRAY / LARIK
Array/Larik adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama, setiap elemen diakses langsung melalui indeksnya. Deklarasi array secara umum adalah sebagai berikut :
Namavar : array[ panjang array]of tipedata
Tipedata berisi jenis data atau tipe data variable yang digunakan, Namavar adalah nama dari variabel nya sendiri, dan panjang array adalah panjang dari array yang telah dipersiapkan. Contoh:
Nilai : Array[1..10] of integer; Ã deklarasi array tipe integer sebanyak 10 buah
Nama: Array[1..20] of string; Ã deklarasi array tipe string sebanyak 20 buah
Berikut adalah beberapa contoh program yang menggunakan array :
Program ArrayAngka;
uses wincrt;
var a:array[1..100] of integer;
i:integer;
begin
clrscr;
for i:=1 to 10 do
begin
write('Masukan Angka : ');readln(a[i]);
end;
for i:=1 to 10 do
begin
writeln('Angka ke ',i,' adalah : ',a[i]);
end;
readln;
end.
Contoh lainnya:
Program ArrayNama;
uses wincrt;
var nama:array[1..100] of string;
i:integer;
begin
clrscr;
for i:=1 to 10 do
begin
write('Masukan Nama Anda : ');readln(nama[i]);
end;
for i:=1 to 10 do
begin
writeln('Nama Ke ',i,' adalah : ',nama[i]);
end;
readln;
end.
Catatan : Indeks array pada turbo Pascal dimulai dari angka 1,2,3 dan seterusnya.
Studi Kasus 7
Buat sebuah program perhitungan nilai akhir 5 orang mahasiswa
Input : nama, tugas, quiz, uts, dan uas
Proses : nilai = 10%*tugas + 20%*quiz + 30%*uts+ 40%*uas.
Output : nama, dan nilai ditampilan menurut index
Jawaban
Program Kasus7;
Uses wincrt;
Var Nama:array[1..5]of string;
I,Tugas,Quiz,UTS,UAS:integer;
Nilai:array[1..5]of real;
Begin
for I:=1 to 5 do
begin
Clrscr;
write('Masukan Nama : ');readln(Nama[I]);
write('Masukan Tugas : ');readln(Tugas);
write('Masukan Quis : ');readln(Quiz);
write('Masukan UTS : ');readln(UTS);
write('Masukan UAS : ');readln(UAS);
Nilai[I]:=0.1*Tugas+0.2*Quiz+0.3*UTS+0.4*UAS;
end;
Clrscr;
for I:=1 to 5 do
writeln('Nama : ',Nama[I],' mendapat nilai : ',nilai[i]:5:2);
readln;
End.
BAB 9
RECORD
Record adalah sekumpulan data yang memiliki tipe data yang berbeda, atau dapat dikatakan sebagai sejumpulan data yang bervariasi tipe datanya. Walaupun tipe datanya berbeda, biasanya merupakan suatu kesatuan yang menjelaskan sebuah variable. Struktur umumnya :
Struct nama_struktur
{ Pendeklarasian variabel };
Struct nama_struktur namavar;
Pemasukan data kedalam suatu record hars didahului dengan nama variable utamanya diikuti dengan variable yang ada didalamnya. Berikut contoh penggunaan record secara lengkap :
Program cobarecord;
uses wincrt;
type data= record
nim:string;
nama:string;
nilai:integer;
end;
var i:integer;
mahasiswa : data;
begin
clrscr;
write('Masukan NIM : ');readln(mahasiswa.nim);
write('Masukan Nama : ');readln(mahasiswa.nama);
write('Masukan Nilai : ');readln(mahasiswa.nilai);
writeln('NIM : ',mahasiswa………………………);
writeln('Nama : ',mahasiswa………………………);
writeln('Nilai : ',mahasiswa………………………………);
readln;
end.
Penggunaan record juga bisa digabungkan dengan array sehingga sebuah variable yang mengandung record dapat terdiri dari banyak variable yang serupa yang dibedakan dengan nomor indeksnya. Berikut contoh lengkapnya :
Program recorddanarray
uses wincrt;
type data= ………………………
nim:string;
nama:string;
nilai:integer;
end;
var x,i:integer;
mahasiswa : array[1..100] of data;
jawab:…………………………;
begin
i:=………………;
repeat
clrscr;
write('Masukan NIM : ');readln(mahasiswa ?.nim);
write('Masukan Nama : ');readln(mahasiswa ?.nama);
write('Masukan Nilai : ');readln(mahasiswa ?.nilai);
write('Masukan data lagi Y/T ?');
readln(……………………………);
I:=i+1;
……………………… (jawab='t') or (jawab='T');
for x:=1 to …………… do
begin
writeln('NIM : ',mahasiswa ?.nim);
writeln('Nama : ',mahasiswa ?.nama);
writeln('Nilai : ',mahasiswa ?.nilai);
end;
readln;
end.
BAB 10
KUMPULAN STUDI KASUS
Studi Kasus 1
Program Kasus1;
Uses wincrt;
Var Nama,Alamat:string;
Umur:integer;
Begin
Clrscr;
write('Masukan Nama Anda : ');readln(Nama);
write('Masukan Alamat Anda : ');readln(Alamat);
write('Masukan Umur Anda : ');readln(Umur);
writeln('Nama : ',Nama);
writeln('Alamat : ',Alamat);
writeln('Umur : ',Umur);
readln;
End.
Studi Kasus 2
Program Kasus2;
Uses wincrt;
Var Nama:string;
Tugas,Quiz,UTS,UAS:integer;
Nilai:real;
Begin
Clrscr;
write('Masukan Nama : ');readln(Nama);
write('Masukan Tugas : ');readln(Tugas);
write('Masukan Quis : ');readln(Quiz);
write('Masukan UTS : ');readln(UTS);
write('Masukan UAS : ');readln(UAS);
Nilai:=0.1*Tugas+0.2*Quiz+0.3*UTS+0.4*UAS;
writeln('Nama : ',Nama,' mendapat nilai : ',nilai:5:2);
readln;
End.
Studi Kasus 3
Program Kasus3;
Uses wincrt;
Var Nama:string;
Status,Ja:integer;
T,ti,Ta,gapok,gaber:real;
Begin
Clrscr;
write('Masukan Nama Pegawai : ');readln(Nama);
write('Masukan Gaji Pokok : ');readln(Gapok);
write('Masukan Status : ');readln(Status);
if status=1 then
begin
write('Masukan Jumlah Anak : ');readln(Ja);
ti:=0.1*gapok;
ta:=0.05*ja*gapok;
t:=ti+ta;
end
else if status=2 then
begin
t:=0;
end
else if status=3 then
begin
write('Masukan Jumlah Anak : ');readln(ja);
ti:=0;
ta:=0.05*Ja*Gapok;
T:=Ti+Ta;
end;
Gaber:=Gapok+T;
Write('Nama : ',Nama,' Gaji Bersih Anda : ',Gaber:10:2);
readln;
End.
Studi Kasus 4
Program Kasus1;
Uses wincrt;
Var Nama:string;
Golongan:char;
Status,Ja:integer;
T,ti,Ta,gapok,gaber:real;
Begin
Clrscr;
write('Masukan Nama Pegawai : ');readln(Nama);
write('Masukan Golongan : ');readln(Golongan);
Golongan:=Upcase(Golongan);
Case Golongan Of
'A' : Gapok:=1000;
'B' : Gapok:=2000;
'C' : Gapok:=3000;
'D' : Gapok:=4000
Else Exit;
End;
write('Masukan Status : ');readln(Status);
Case Status Of
1 : begin
write('Masukan Jumlah Anak : ');readln(Ja);
ti:=0.1*gapok;
ta:=0.05*ja*gapok;
t:=ti+ta;
end;
2 : begin
t:=0;
end;
3 : begin
write('Masukan Jumlah Anak : ');readln(ja);
ti:=0;
ta:=0.05*Ja*Gapok;
T:=Ti+Ta;
end
Else Exit;
end;
Gaber:=Gapok+T;
Write('Nama : ',Nama,' Gaji Bersih Anda : ',Gaber:10:2);
readln;
End.
Studi Kasus 5
Program Kasus5;
Uses wincrt;
Var I,Jum:integer;
Begin
Clrscr;
Jum:=0;
Write('Penjumlahan bilangan dari 1 - 100 adalah : ');
for I:=1 to 100 do
Jum:=Jum+I;
Write(Jum);
Readln;
End.
Program Kasus5;
Uses wincrt;
Var I,Jum:integer;
Begin
Clrscr;
Jum:=0;
Write('Penjumlahan bilangan Genap dari 1 - 100 adalah : ');
for I:=1 to 100 do
If I mod 2 = 0 Then
Jum:=Jum+I;
Write(Jum);
Readln;
End.
Studi Kasus 6
Program Kasus6;
Uses wincrt;
function carihuruf(X:integer):char;
var jawab:char;
begin
jawab:='?';
if (x>75) and (X<=100) then
jawab:='A'
else if (x>65) and (X<=75) then
jawab:='B'
else if (x>50) and (X<=65) then
jawab:='C'
else if (x>40) and (X<=50) then
jawab:='D'
else if (x>0) and (X<=40) then
jawab:='E';
carihuruf:=jawab;
end;
Var nilai:integer;
hurufmutu:char;
Begin
Clrscr;
Write('Masukan Nilai : ');readln(nilai);
hurufmutu:=carihuruf(nilai);
Write('Huruf Mutu : ',hurufmutu);
Readln;
End.
Studi Kasus 7
Program Kasus7;
Uses wincrt;
Var Nama:array[1..5]of string;
I,Tugas,Quiz,UTS,UAS:integer;
Nilai:array[1..5]of real;
Begin
for I:=1 to 5 do
begin
Clrscr;
write('Masukan Nama : ');readln(Nama[I]);
write('Masukan Tugas : ');readln(Tugas);
write('Masukan Quis : ');readln(Quiz);
write('Masukan UTS : ');readln(UTS);
write('Masukan UAS : ');readln(UAS);
Nilai[I]:=0.1*Tugas+0.2*Quiz+0.3*UTS+0.4*UAS;
end;
Clrscr;
for I:=1 to 5 do
writeln('Nama : ',Nama[I],' mendapat nilai : ',nilai[i]:5:2);
readln;
End.
Studi Kasus Pilihan 1
Buatlah sebuah program yang dapat memberikan output seperti dibawah ini :
a. 1 b. 12345 c. x d. xxxxx
12 1234 xx xxxx
123 123 xxx xxx
1234 12 xxxx xx
12345 1 xxxxx x
Program KasusPilihan;
Uses wincrt;
Var I,J:Integer;
Begin
Clrscr;
For I:=1 to 5 Do
Begin
For J:=1 to I Do
Write('*');
Writeln;
End;
Readln;
End.
Program KasusPilihan;
Uses wincrt;
Var I,J:Integer;
Begin
Clrscr;
For I:=5 downto 1 Do
Begin
For J:=1 to I Do
Write(J);
Writeln;
End;
Readln;
End.
Studi Kasus Pilihan 2
Buatlah sebuah program yang dapat memberikan tampilan animasi
a. Teks bergerak ke kanan dan ke kiri
b. Teks bergerak ke atas dan kebawah
c. Teks bergerak memutari layar monitor
Program KasusPilihan;
Uses wincrt;
Var I,J,Pos:Integer;
Begin
I:=1; J:=50; Pos:=0;
Repeat
If (I<=50) and (Pos=0) Then
Begin
Textcolor(I);
Clrscr;
Gotoxy(i+1,5);
write(' ANIMASI ');
delay(100);
I:=I+1;
If I>50 Then
Begin
Pos:=1;
J:=50;
End;
End;
If (J>=2) and (Pos=1) Then
Begin
Textcolor(J);
Clrscr;
Gotoxy(J-1,5);
write(' ANIMASI ');
delay(100);
J:=J-1;
If J<2 Then
Begin
Pos:=0;
I:=1;
End;
End;
Until Keypressed;
Readln;
End.
Studi Kasus Pilihan 3
Buatlah sebuah program yang dapat memberikan tampilan menu dengan isi menu
a. Penjumlahan, pengurangan, perkalian, dan pembagian
b. Pemasukan Data Mahasiswa, Tampilan Data Mahasiswa, Pencarian Nilai Mutu
Bantuan : Untuk proses pembuatan kotak dapat disisipkan prosedur dibawah ini, sehingga dalam pembuatan kotak hanya perlu dipanggil nama prosedur+parameternya saja J.
Kotak(Posx:integer;Posy:integer;Baris:integer;Kolom:integer;
Warna:integer);
Program KasusPilihan;
Uses wincrt;
Procedure Kotak(Posx:integer;Posy:integer;Baris:integer;Kolom:integer;Warna:integer);
var I:integer;
Begin
Textcolor(Warna);
Gotoxy(posx+1,posy+1);write('ALT+202');
For I:=1 to Kolom Do write('ALT+205'); write('ALT+187');
For I:=1 to Baris+1 Do
Begin
Gotoxy(posx+1,posy+1+i);write('ALT+186');
Gotoxy(posx+2+kolom,posy+1+i);write('ALT+186');
End;
Gotoxy(posx+1,posy+2+baris);write('ALT+200');
For I:=1 to Kolom Do write('ALT+205'); write('ALT+188');
End;
procedure penjumlahan;
var a,b,c:integer;
begin
clrscr;
kotak(20,5,9,40,12);
gotoxy(32,9);textcolor(10);write('PROGRAM PENJUMLAHAN');
textcolor(15);
gotoxy(27,11);write('Masukan Bilangan Pertama : ');
readln(a);
gotoxy(27,12);write('Masukan Bilangan Kedua : ');
readln(b);
c:=a+b;textcolor(14);
gotoxy(27,14);write('Hasil Dari ',a,' + ',b,' adalah ',c);
readln;
end;
procedure pengurangan;
var a,b,c:integer;
begin
clrscr;
kotak(20,5,9,40,12);
gotoxy(32,9);textcolor(10);write('PROGRAM PENGURANGAN');
textcolor(15);
gotoxy(27,11);write('Masukan Bilangan Pertama : ');
readln(a);
gotoxy(27,12);write('Masukan Bilangan Kedua : ');
readln(b);
c:=a-b;textcolor(14);
gotoxy(27,14);write('Hasil Dari ',a,' - ',b,' adalah ',c);
readln;
end;
procedure perkalian;
var a,b,c:integer;
begin
clrscr;
kotak(20,5,9,40,12);
gotoxy(33,9);textcolor(10);write('PROGRAM PERKALIAN');
textcolor(15);
gotoxy(27,11);write('Masukan Bilangan Pertama : ');
readln(a);
gotoxy(27,12);write('Masukan Bilangan Kedua : ');
readln(b);
c:=a*b;textcolor(14);
gotoxy(27,14);write('Hasil Dari ',a,' x ',b,' adalah ',c);
readln;
end;
procedure pembagian;
var a,b,c:real;
begin
clrscr;
kotak(20,5,9,40,12);
gotoxy(32,9);textcolor(10);write('PROGRAM PEMBAGIAN');
textcolor(15);
gotoxy(27,11);write('Masukan Bilangan Pertama : ');
readln(a);
gotoxy(27,12);write('Masukan Bilangan Kedua : ');
readln(b);
c:=a/b;textcolor(14);
gotoxy(27,14);write('Hasil Dari ',a:2:0,' / ',b:2:0,' adalah ',c:2:2);
readln;
end;
var jawab:integer;
Begin
Repeat
clrscr;
kotak(25,5,10,30,12);
gotoxy(35,8);textcolor(14);write('MENU PILIHAN');
textcolor(11);
gotoxy(30,10);write('1. Program Penjumlahan');
gotoxy(30,11);write('2. Program Perkalian');
gotoxy(30,12);write('3. Program Pengurangan');
gotoxy(30,13);write('4. Program Pembagian');
gotoxy(30,14);write('5. Keluar');
textcolor(15);
gotoxy(30,16);write('Masukan Pilihan Anda ? ');
readln(jawab);
case jawab of
1 : penjumlahan;
2 : perkalian;
3 : pengurangan;
4 : pembagian;
end;
Until jawab=5;
Readln;
End.
TIPS : Gunakan SHIFT+Tanda Panah untuk melakukan Blok dan CTRl + Insert untuk melakukan COPY atau SHIFT + DEL untuk melakukan CUT dan SHIFT + Insert untuk melakukan PASTE.
Sumber : bpk Suhanda,ir.,M.T.
Sumber : bpk Suhanda,ir.,M.T.