Hell Yeah Pointer 3 MOHAMAD YUSUF: TUTORIAL LENGKAP PEMROGRAMAN PASCAL
SELAMAT DATANG DI MOHAMADYUSUF17.BLOGSPOT.COM JANGAN LUPA TINGGALKAN COMMENT {SEMOGA BERMANFAAT TERIMAKASIH}

Halaman

Selasa, 15 Desember 2020

TUTORIAL LENGKAP PEMROGRAMAN PASCAL

Analisis kasus adalah konstruktor terpenting dalam algoritma pemrograman sehingga membuat teks algoritma yang sama dapat menghasilkan eksekusi yang berbeda-beda. Setiap statement dalam pascal normalnya dijalankan secara sekuensial ( beruntun ), dari atas kebawah seperti yang tertulis pada source code programnya. Analisis kasus dapat merubah urutan eksekusi.

Jika kita mendefinisikan analisis kasus berarti juga mendefinisikan :

Kondisi : yang berupa suatu ekpresi Boolean yang menghasilkan true atau false.

Aksi : yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan dipenuhi.

Suatu aksi hanya akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan terpenuhi (bernilai true). Penentuan kondisi Boolean dan aksi yang dilakukan bergantung pada jumlah kasus yang terdapat pada masalah tersebut.

Ungkapan kondisi dapat dihasilkan dengan operator perbandingan dan operator logika. ungkapan kondisi dapat dibentuk dengan mengkombinasikan operand yang bertipe sama dengan salah  satu operator.

Contoh Kondisi:

X > y

A + b >1

Str = ‘daspro’

Ketemu = true

I >= 100

Not true

( x < 0) and (y>20)

( x<0) or (y > 20)

Struktur if…then

Satu kasus

Bentuk ini menunjukan, jika (if) kondisi yang diseleksi adalah  benar( true ) maka statement yang mengikutinya akan diproses. Sebaliknya jika tidak benar (false) maka statement berikutnya tidak diproses.

Sintaks dalam pascal
If kondisi then

Aksi;

If kondisi then

Begin

Aksi 1;

Aksi 2;

End;

Jika kondisi true (benar), maka aksi dikerjakan. Jika kondisi false ( tidak benar) maka tidak terjadi apa-apa (efek neto “kosong”)

Program Menerima masukan sebuad nama,jika nama tidak diisi tampilkan pesan

Program Name;
	Uses crt;
	var nama:string;
begin
	clrscr;
	write('ketikan nama anda:'); readln(nama);
	if nama='' then writeln('isi dulu nama anda!!');
	readln;
 end.

Program untuk mengecek apakah sebuah bilangan termasuk bilangan genap atau bukan. Jika termasuk bilangan genap tampilkan pesan.

program Bilangan_genap;
uses crt;
	var bil:integer;
begin
	clrscr;
	write('Masukan bilangan :'); readln(bil);
	if bil mod 2=0 then
	begin
	writeln('bilangan genap'); writeln('pengecekan bilangan selesai');
	end;
readln;
end.

Dua kasus komplementer. (Bahasa kerennya If-Else bercabang)

Sintaks untuk analisis dengan dua kasus adalah dengan menggunakan struktur IF-ELSE

Sintaks dalam pascal
If kondisi then

Aksi1

Else

Aksi2;

If kondisi then

Begin

Aksi1; …..

End

Else

Begin Aksi2; . . . .

End;

Aksi satu akan dilaksanakan jika kondisi bernilai true (benar), tetapi jika kondisi bernilai false (salah), maka aksi-aksi yang akan dilaksanakan, ‘else’ menyatakan ingkaran/negasi dari kondisi.

Program untuk mengecek apakah sebuah bilangan termasuk bilangan genap atau bilangan ganjil.Jika termasuk bilangan genap,tampilkan pesan ’bilangan genap’,Jika termasuk bilangan ganjil tampilkan pesan’bilangan ganjil’

program genap_ganjil;
uses crt;
	var bil:integer;
begin
    clrscr;
	write('masukan bilangan :'); readln(bil);
	if bil mod 2 = 0 then
		writeln('bilangan genap')
	else
		writeln('bilangan ganjil');
	readln;
end.

Program untuk menentukan bilangan terbesar diantara dua bilangan yang dimasukkan.

program bilangan_terbesar;
uses crt;
	var bill,bil2:integer;
begin
	clrscr;
	write('masukan 2 bilangan :');
	readln(bill,bil2);
	
	if bill>bil2 then
	begin 
		writeln(bill,'>',bil2);
		writeln(bill,'bilangan terbesar');
	end
	
	else
	
	begin
		writeln(bil2,'>',bill);
		writeln(bil2,'bilangan terbesar');
	end;
	readln;
end.

Struktur case…of

Struktur case-of dapat menyederhanakan penulisan if-else yang bertingkat-tingkat pada permasalahan dengan dua kasus atau lebih.

Sintaks dalam pascal
Case nama_variabel of

Nilai1 : nilai2;

Nilai2 : aksi2;

. . .

nilaiN : aksiN;

[else aksiX;]

End;

Case nama_variabel of

Nilai1 : begin

Aksi1; Aksi2;

. . . .

End;

Nilai2 : aksi3;

. . .

nilaiN : aksiN;

[else aksiX;]

End;

Nama variable sudah dideklarasikan sebelumnya dan sudah berisi nilai tertentu yang memiliki tipe data yang sama dengan nilai1, nilai2,…..nilaiN

Nilai1, nilai2,….,nilaiN adalah nilai yang bertipe integer, char, atau Boolean.

Program penentuan nama bulan jika diinput nomor bulannya

Program Nama_bulan;
Uses crt;
	Var bulan:integer;
begin
	clrscr;
	write('masukan nomor bulan: ');
	readln(bulan);
case bulan of
	1:writeln('januari');
	2:writeln('februari');
	3:writeln('maret');
	4:writeln('april');
	5:writeln('mei');
	6:writeln('juni');
	7:writeln('juli');
	8:writeln('agustus');
	9:writeln('september');
	10:writeln('oktober');
	11:writeln('november');
	12:writeln('desember');
else
	writeln('bukan bulan yang benar');
end;
	readln;
end.

Beberapa contoh program silahkan di analisa sendiri. Contoh:

program determinan;
uses crt;
	var
	a,b,c,d : real;
	hasil_determinan : string;
begin
     clrscr;
     writeln(‘Ini adalah program mencari determinan’);
     write('a : '); readln(a); write('b : '); readln(b);
     write('c : '); readln(c); D := b*b -4.0*a*c;
     if (D<0) then
     hasil_determinan := 'negatif'
     else if (D=0) then
     hasil_determinan := 'nol'
     else hasil_determinan := 'positif' ;
     writeln; writeln;
     write('Determinannya bernilai ', hasil_determinan);
     readln;
end.

Analisa:

Logika program : program akan terlebih dahulu menampilkan kata “Ini adalah program mencari determinan”. Kemudian user diminta menginput a, b dan c. Kemudian determinan dicari dengan rumus D = b2 – 4ac. Jika determinan < 0, hasil_determinan akan menjadi “negatif”, jika determinan = 0, hasil_determinan akan menjadi “nol” dan jika determinan > 0, hasil_determinan akan menjadi “positif”. Program akan mengeluarkan output “Determinannya bernilai = hasil_determinan”.

Proses pemilihan ada pada penentuan hasil_determinan. Program terlebih dahulu akan mengecek kondisi yang disyaratkan pada if (D<0) then jika terpenuhi maka akan dieksekusi kode hasil_determinan := ‘negatif’ dan pada contoh diatas kondisi tidak terpenuhi, maka program akan mengeksekusi blok else. Pada blok else pun program akan kembali menemukan percabangan dimana program akan mengecek kondisi else if (D=0) then jika terpenuhi akan mengeksekusi blok hasil_determinan := ‘nol’ dan jika tidak, akan mengeksekusi blok else. Pada contoh diatas pengecekan kondisi else if (D=0) then terpenuhi.

Program indeks_nilai_ujian;
uses crt;
var 
	nama, nim :string;
	nilai:real;
	indeks:char;
begin
	clrscr;
	write('masukan nama:');readln(nama);
	write('nim:');readln(nim);
	write('nilai:');readln(nilai);
	writeln;
	if nilai>=80 then 
		indeks:='A'
	else  
	if(nilai>=70) and (nilai=55) and (nilai=40) and (nilai<55) then
		indeks:='D'
	else
		indeks:='E';
	writeln ('Mahasiswa bernama ',nama,' dengan nim ',nim,' memperoleh nilai ',indeks);
	readln;
end.
program luas ;
uses crt;
var p,pj,lb,s : integer; l : real ;
begin
	clrscr;
	writeln('******MENU*****');
	writeln('1.luas bujursangakar');
	writeln('2.luas persegi panjang');
	writeln('3.luas lingkaran ');
	writeln;
	write('masukan pilihan :');
	readln(p);
	writeln;
	case p of
		1 :
		begin 
			writeln('#anda memilih menu luas bujur sangkar #');
			write('input sisi bujursangkar : ');
			readln(s);
			l :=s*s;
			writeln;
			writeln('luas bujur sangkar = ',l:0:2);
		end;
		2 :
		begin
			writeln ('#anda memilih menu luas persegi panjang#');
			write('input panjang persegi panjang :');
			readln(pj); 
			write('input luas persegi panjang :');
			readln(lb); 
			l :=pj*lb; 
			writeln;
			writeln('luas persegi panjang = ',l:0:2); 
		end;
		3 : 
		begin 
			writeln('#anda memilih menu lingkaran#'); 
			write('input jari jari lingkaran :');
			readln(l); 
			l :=3.14*l*l; 
			writeln;
			writeln('luas lingkaran = ',l:0:2); 
		end;
		else 
			writeln ('tidak ada pilihan'); 
	end;
	readln;
end.

Program indeks_nilai_ujian;
uses crt;
	var nama, nim :string; nilai:integer; indeks:char;
begin
	clrscr;
	write('masukan nama : ');
	readln(nama);
	write('nim : ');
	readln(nim);
	write('nilai : ');
	readln(nilai);
	writeln;
	case nilai of
		80..100: indeks := 'A'; 70..79 : indeks := 'B';
		55..69 : indeks := 'C'; 40..54 : indeks := 'D';
		0..39  : indeks := 'E';
	else
		writeln('Nilai yang anda masukkan tidaklah benar');
	end;
	writeln;
	writeln ('Mahasiswa bernama ',nama,' dengan nim ',nim,' memperoleh nilai ',indeks);
	readln;
end.

Tidak ada komentar:

Posting Komentar