programpersegipanjang;usescrt;varP,L,Luas,Keliling:integer;beginclrscr;writeln('HITUNG KELILING & LUAS Persegi Panjang');write('Masukkan Panjang = ');readln(P);write('Masukkan Lebar = ');readln(L);Luas:=P*L;writeln('Luas Persegi Panjang = ',Luas);Keliling:=2*(P+L);writeln('Keliling Persegi Panjang = ',Keliling);readln;end.
IF STATEMENT (Pernyataan Kondisi IF)
IF then else
If Then Else adalah suatu pernyataan kondisi yang akan dijalankan jika kondisi itu benar, dan jika kondisi itu salah maka akan menjalankan atau mengeksekusi pernyataan yang salah.
Sumber : https://www.tutorialspoint.com/pascal
Contoh Deklarasi If Then Else Menampilkan Bilangan Ganjil Genap :
Nested If Statement (IF Bersarang)
Contoh If Bersarang Menentukan Bilangan Ganjil Genap :
Contoh Hitung Nilai Rata-rata
Case Of
Pada materi sebelumnya, Anda telah mengamati bahwa pernyataan if-then-else memungkinkan untuk menerapkan beberapa keputusan dalam suatu program. Ini juga dapat dicapai menggunakan pernyataan kasus dengan cara yang lebih sederhana.
Di mana, L1 , L2 ... adalah label huruf atau nilai input, yang bisa berupa bilangan bulat, karakter, boolean atau data yang disebutkan. S1 , S2 , ... adalah pernyataan Pascal, masing-masing pernyataan ini mungkin memiliki satu atau lebih dari satu label kasus yang terkait dengannya. Ekspresi ini disebut pemilih kasus atau indeks kasus . Indeks kasus dapat mengasumsikan nilai yang sesuai dengan label kasus.
Pernyataan kasus harus selalu memiliki pernyataan akhir yang terkait dengannya. Aturan berikut berlaku untuk pernyataan kasus
Ekspresi yang digunakan dalam pernyataan kasus harus memiliki tipe integral atau enumerasi atau menjadi tipe kelas di mana kelas memiliki fungsi konversi tunggal ke tipe integral atau enumerated.
Anda dapat memiliki sejumlah pernyataan kasus dalam sebuah kasus. Setiap kasus diikuti oleh nilai yang akan dibandingkan dan titik dua.
Label kasus untuk suatu kasus harus merupakan tipe data yang sama dengan ekspresi dalam pernyataan kasus, dan harus berupa konstanta atau literal.
Compiler akan mengevaluasi ekspresi huruf. Jika salah satu nilai label kasus cocok dengan nilai ekspresi, pernyataan yang mengikuti label ini dieksekusi. Setelah itu, program berlanjut setelah akhir.
Jika tidak ada label case yang cocok dengan nilai ekspresi, daftar pernyataan setelah yang lain atau kata kunci lainnya dieksekusi. Ini bisa menjadi daftar pernyataan kosong. Jika tidak ada bagian lain yang hadir dan tidak ada kasus konstan yang cocok dengan nilai ekspresi, aliran program berlanjut setelah akhir akhir.
Pernyataan kasus dapat berupa pernyataan gabungan (yaitu, blok Begin ... End).
Contoh Diagram Alir CASE OF
Sumber https://www.tutorialspoint.com/pascal
Berikut Contoh dengan Konsep Case Of
Looping (Perulangan)
For Loop
Pada Struktur ini anda akan menjalankan blok program beberapa kali, dimana pernyataan yang dieksekusi secara berurutan. Pernyataan pertama dalam fungsi dijalankan pertama, diikuti oleh yang kedua, dan seterusnya.
Bahasa pemrograman menyediakan berbagai struktur kontrol yang memungkinkan jalur eksekusi lebih rumit.
Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau kelompok pernyataan beberapa kali dan mengikuti adalah bentuk umum dari pernyataan loop di sebagian besar bahasa pemrograman
Contoh Diagram Alir FOR
Sumber : https://www.tutorialspoint.com/pascal
Contoh Deklarasi Perulangan FOR secara Naik atau ASCENDING
Jika Anda Runnig maka angka akan tampil dari kecil ke besar, seperti berikut:
Contoh Deklarasi Perulangan FOR Downto secara turun atau DESCENDING
Jika Anda Runnig maka angka akan tampil dari besar ke kecil, seperti berikut:
Nested For Loops
Dari kondisi diatas merupakan Penggunaan FOR Bersarang, dimana proses eksekusi berdasarkan variable n yang diinput lihat pada baris 6 (enam). Dan kondisi berikutnya menampilkan perulangan pada variable j untuk menampilkan simbol (*).
Dalam matematika, bilangan prima adalah bilangan asli yang lebih besar dari angka1, yang faktor pembaginya adalah 1 dan bilangan itu sendiri. 2 dan 3 adalah bilangan prima. 4 bukan bilangan prima karena 4 bisa dibagi 2.
Jika suatu bilangan yang lebih besar dari satu bukan bilangan prima, maka bilangan itu disebut bilangan komposit. Cara paling sederhana untuk menentukan bilangan prima yang lebih kecil dari bilangan tertentu adalah dengan menggunakan saringan Eratosthenes.
Berikut adalah 168 bilangan prima pertama (semua bilangan prima kurang dari 1000): (Sumber : Wikipedia)
FOR & IF Mencari Bilangan Prima
While Do
Sebuah pernyataan while do dalam Pascal memungkinkan perhitungan berulang sampai beberapa kondisi pengujian terpenuhi. Dengan kata lain, itu berulang kali mengeksekusi pernyataan target asalkan kondisi yang diberikan benar.
Contoh Diagram alir While:
Sumber : https://www.tutorialspoint.com/pascal
Berikut Contoh Deklarasi While dengan Program Pascal:
Contoh While untuk menentukan Deret Angka Kelipatan 2 Dan Deret Angka Kelipatan 3 :
Menampilkan Nested dengan WHILE
Repeat Until
Perulangan dengan menggunakan Repeat Until, tidak sama seperti perulangan dengan FOR dan WHILE. Perbedaananya adalah Repeat Until membatasi perulangan yang dieksekusi paling bawah.
Diagram Alir Repeat Until
Sumber : https://www.tutorialspoint.com/pascal
Penulisan Kondisi Repeat Until:
Array
Array adalah konsep struktur untuk tipe data. Ini mengelompokkan unsur-unsur dari jenis yang sama. Array menyediakan akses acak ke setiap elemennya, juga dikenal sebagai komponen, dengan indeks linear.
Bahasa pemrograman pascal menyediakan struktur data yang disebut array, yang dapat menyimpan kumpulan sekuensial tetap dari elemen-elemen tipe yang sama. Array digunakan untuk menyimpan kumpulan data, tetapi seringkali lebih berguna untuk memikirkan sebuah array sebagai kumpulan variabel dari jenis yang sama.
Mendeklarasikan variabel individual, seperti angka1, angka2, ..., dan angka100, Anda menyatakan satu variabel array seperti angka dan menggunakan angka [1], angka [2], dan ..., angka [100] untuk mewakili variabel individu. Elemen tertentu dalam larik diakses oleh indeks.
Semua array terdiri dari lokasi memori yang berdekatan. Alamat terendah sesuai dengan elemen pertama dan alamat tertinggi ke elemen terakhir.
Sumber : https://www.tutorialspoint.com/
Deklarasi Array
Deklarasi array adalah seperti berikut N: array[0..10] of integer; Dimana N adalah variabel array[0..10] adalah Panjang Array dan Of Integer adalah Tipe Data.
Semisal anda ingin mengawali indeks array dari 1 hingga 5 maka, anda deklarasikan seperti ini nama_array : array[1..5] of tipe data.
Contoh Kode Program Pascal Array
Deklarasikan ARRAY dengan FOR
Perhatikan deklarasi variable baris 4 array[1..5] berarti Indeks array dimulai dari 1 hingga 5, dan jika contoh berikut nya dengan while perhatikan baris 4 array[0..10] yang diasusmsikan indeks array dimulai dari 0 hingga ke 10
Mengurutkan Nilai Array tanpa mendefinisikan Nilainya:
program GanjilGenap;
uses crt;
var angka : Integer;
begin
clrscr;
writeln('Menentukan Bilangan');
write('Masukkan Angka '); readln(angka);
if angka mod 2 = 0 then
begin
write('Bilangan Genap');
end
else
begin
write('Bilangan Ganjil');
end;
readln;
end.
PASCAL NESTED IF STATEMENT
program if_bersarang;
uses crt;
var angka:integer;
begin
clrscr;
write('Masukkan sebuah angka: ');readln(angka);
if (angka mod 2 = 0) then
begin
write('Angka yang anda masukkan merupakan bilangan genap ');
if (angka >= 10) then
begin
writeln('dan besar dari 10');
end
else
begin
writeln('dan kecil dari 10');
end;
end
else
begin
write('Angka yang anda masukkan merupakan bilangan ganjil ');
if (angka > 10) then
begin
writeln('dan besar dari 10');
end
else
begin
writeln('dan kecil dari 10');
end;
end;
readln;
end.
Program hitungnilai;
var
nama:string;
npm,absensi,tugas,uts,uas,nilai: integer;
grade: char;
rata_rata: double;
begin
writeln('Data Nilai Mahasiswa');
writeln('====================');
writeln('');
write('NPM :');readln(npm);
write('Nama :');readln(nama);
write('Absensi :');readln(absensi);
write('Tugas :');readln(tugas);
write('UTS :');readln(uts);
write('UAS :');readln(uas);
rata_rata := ((absensi*10)/100) +((tugas*20)/100)+((uts*30)/100)+((uas*40)/100);
If rata_rata >= 79.5 Then
begin
grade := 'A';
end
else if rata_rata >= 69.5 Then
begin
grade := 'B';
end
else if rata_rata >= 59.5 Then
begin
grade := 'C';
end
else if rata_rata >= 49.5 Then
begin
grade := 'D';
end
else
begin
grade := 'E';
end;
writeln('Hasil :', rata_rata:0:0);
writeln('Grade :', grade);
readln;
end.
PASCAL CASE OF
program contoh_case_of;
uses crt;
var
grade: char;
begin clrscr;
write ('Pilih Grade = ');readln(grade);
case (grade) of
'A' : writeln('Sangat Bagus!' );
'B' : writeln('Bagus!' );
'C' : writeln('Cukup' );
'D' : writeln('Buruk' );
'F' : writeln('Sangat Buruk' );
end;
writeln('Grade Nilai Anda adalah = ', grade);
end.
PASCAL PERULANGAN (FOR ASCENDING)
program contoh_for;
var a,b,c:Integer;
begin
for a := 1 to 10 do
begin
writeln('Nilai Ke => ', a);
end;
writeln('########################');
for b := 0 to 8 do
begin
writeln('Nilai Ke => ', b);
end;
end.
PASCAL PERULANGAN (FOR DESCENDING)
program forPas;
var a,b,c:Integer;
begin
for a := 10 downto 1 do
begin
writeln('Nilai Ke => ', a);
end;
writeln('########################');
for b := 8 downto 0 do
begin
writeln('Nilai Ke => ', b);
end;
end.
PASCAL FOR NESTED (Bersarang)
program NestedFor;
uses crt;
var i,j,n : Integer;
begin clrscr;
write('Masukkan Jumlah Baris '); readln(n);
for i := 1 to n do
begin
for j := 1 to i do
write('*');
writeln;
end;
readln;
end.
PASCAL BILANGAN PRIMA
program bilanganPrima;
var
i, j:integer;
begin
for i := 2 to 50 do
begin
for j := 2 to i do
if (i mod j)=0 then
break;
if(j = i) then
writeln(i , ' Adalah Bilangan prima' );
end;
end.
while ekspresi kondisi do
begin
Pernyataan Benar atau Salah
end;
PASCAL WHILE
program contoh_while;
uses crt;
var a, b:Integer;
begin clrscr;
a:=1;
while a <= 5 do
begin
writeln('Hitung Naik ',a);
a:= a + 1;
end;
writeln('#############################');
b:=5;
while b >= 0 do
begin
writeln('Hitung Turun: ',b);
b:= b - 1;
end;
readln;
end.
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 2;
writeln('Deret Angka kelipatan 2: ');
while i <= 10 do
begin
write(i,' ');
i:= i + 2;
end;
writeln();
writeln('####################################');
i:= 3;
writeln('Deret Angka kelipatan 3: ');
while i <= 10 do
begin
write(i,' ');
i:= i + 3;
end;
readln;
end.
program ProgramName;
var
x,y, angka: Integer;
begin
write('Masukkan Angka '); read(angka);
x := 1;
while x <= angka do
begin
y := 1;
while y <= x do
begin
write('*');
y := y + 1;
end;
writeln;
x := x + 1;
end;
end.
repeat
S1;
S2;
...
...
Sn;
until condition;
PASCAL REPEAT UNTUL
program repeat_unti;
uses crt;
var
i: integer;
begin clrscr;
i:= 0;
repeat
begin
writeln('Repeat Ke = ', i);
i:= i + 1;
end;
until i = 10;
writeln();
writeln('#################################');
i:= 10;
writeln('Berikut deret untuk kelipatan 10: ');
repeat
begin
write(i,' ');
i:= i + 10;
end;
until i > 100;
readln;
end.
Pascal Array
program contoh_array;
uses crt;
var
N: array[0..10] of integer;
nama_buah : array[0..5] of String;
begin
clrscr;
N[0]:= 10;
N[1]:= 20;
N[2]:= 30;
N[3]:= 40;
writeln('INDEKS N Ke 0 : ', N[0]);
writeln('INDEKS N Ke 1 : ', N[1]);
writeln('INDEKS N Ke 2 : ', N[2]);
writeln('INDEKS N Ke 3 : ', N[3]);
writeln('##########################');
nama_buah[0]:='Apel';
nama_buah[1]:='Melon';
nama_buah[2]:='Pear';
nama_buah[3]:='Mangga';
writeln(nama_buah[0]);
writeln(nama_buah[1]);
writeln(nama_buah[2]);
writeln(nama_buah[3]);
readln;
end.
ARRAY Output Dengan FOR
program array_for;
uses crt;
var
nama_buah : array[1..5] of String;
j : Integer;
begin
clrscr;
nama_buah[1]:='Apel';
nama_buah[2]:='Melon';
nama_buah[3]:='Pear';
nama_buah[4]:='Mangga';
nama_buah[5]:='Jambu';
for j:= 1 to 5 do
begin
writeln('Ini Elemen Array [', j, '] = ', nama_buah[j] );
end;
end.
program array_while;
uses crt;
var
angka: array[0..10] of integer;
i : integer;
begin clrscr;
angka[0]:= 10;
angka[1]:= 20;
angka[2]:= 30;
angka[3]:= 40;
angka[4]:= 50;
angka[5]:= 60;
angka[6]:= 70;
angka[7]:= 80;
angka[8]:= 90;
angka[9]:= 100;
i:=0;
while i < 10 do
begin
writeln('INDEKS KE = [', i ,'] VALUE ARRAY = ' , angka[i]);
i:= i + 1;
end;
readln;
end.
PASCAL ARRAY DERET ASCENDING
program ArrayDeret;
uses crt;
var
angka: array [1..100] of integer;
i, j: integer;
begin clrscr;
for i := 1 to 100 do
angka[i] := i;
for j:= 1 to i do
writeln('Indeks Array [', j, '] Value Array = ', angka[j] );
end.
PASCAL ARRAY DERET DESCENDING
program ArrayDeretx;
uses crt;
var
angka: array [1..100] of integer;
i, j: integer;
begin clrscr;
for i := 100 downto 1 do
angka[i] := i;
for j:= 100 downto 1 do
writeln('Indeks Array [', j, '] Value Array = ', angka[j] );
end.
program biodata_mahasiswa;
Type
AngkaHuruf = String[25];
MhsRecord =
Record
NPM, Nama : AngkaHuruf;
Usia : Integer;
End;
Procedure Biodata(var newData : MhsRecord);
Begin
writeln('############# Isi Biodata #############');
write('NPM: ');readln(newData.NPM);
write('Nama: ');readln(newData.Nama);
write('Usia: ');readln(newData.Usia);
end;
Var
DataMahasiswa : Array[1..5] of MhsRecord;
i : 1..5;
Begin
for i := 1 to 5 do
Biodata(DataMahasiswa[i]);
writeln('###################################################');
write('Isikan 1 - 5 untuk Tampilkan Dari 5 array tersebut : ');readln(i);
writeln('Hasil Record #',i,':');
writeln;
writeln('NPM: ', DataMahasiswa[i].NPM);
writeln('Nama: ', DataMahasiswa[i].Nama);
writeln('Usia: ', DataMahasiswa[i].Usia);
readln;
end.