Showing posts with label Pascal. Show all posts

Program Pascal Regula falsi

program regulafalsi;
uses crt;
label ulang;
var
x1,x2,x3,y1,y2,y3 : real;
i : integer;
Ab :char;
data1 : real;
begin
    ulang:
    clrscr;
    writeln('Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Regula Falsi');
    write('Masukan nilai x1 = ');readln(x1);
    y1 := x1 * x1 * x1 + x1 * x1 - 3 * x1 - 3;
    writeln(' Nilai f(x1)= ',y1:0:4);
    repeat
    begin
      write( 'Masukan nilai x2 = ' ); readln(x2);
      y2 := x2 * x2 * x2 + x2 * x2 - 3 * x2 - 3;
      write(' Nilai f(x2)= ',y2:0:4);
    end;
    if (y1*y2)<0 then
      Writeln(' Syarat Nilai Ok')
    else
      Writeln(' Nilai X2 Belum Sesuai');
    until ( y1 * y2 ) <0;
    writeln;
    writeln('Penyelesaian persamaan karekteristik dengan metoda regula falsi');
    writeln('----------------------------------------------------------------------');
    writeln(' n          x                    f(x)               error ');
    writeln('----------------------------------------------------------------------');
    repeat
    begin
      i:= i + 1; x3 := ( x2-( y2 / ( y2 - y1))*(x2-x1));
      y3 := x3 * x3 * x3 + x3 * x3 - 3 * x3 - 3;
    if i<10 then
      writeln(' ',i,' : ',x3,' : ',y3,' : ',abs(y3),' : ')
    else
      writeln(i,' : ',x3,' : ',y3,' : ',abs(y3),' : ');
    if ( y1 * y3 ) <0 then
      begin
      x2 := x3 ; y2 := y3 ;
      end
    else
    begin
      x1 := x3 ; y1 := y3;
    end;
    end;
    until abs( y3 ) < 1E-07;
    writeln('----------------------------------------------------------------------');
    writeln('Akar persamaannya= ',x3);
    writeln('Errornya=' ,abs( y3 ));
    writeln('----------------------------------------------------------------------');
    write('Apakah anda ingin mengulangi (y/t): ');
    readln(ab);
    if (ab='y') or (ab='Y') then
      begin
      goto ulang;
      end
    else
end.



Hasil Outputnya akan seperti ini : (jika di isi Nilai X1 = 1 & X2 = 2 )





Jika di kerjakan secara manual maka akan seperti ini :


xc = xb - (f(xb) / f(xb) - f(xa)) *(xb - xa)

Carilah penyelesaian dari persamaan nonlinear di bawah ini dengan metode Regula Falsi:
f(x) = x3 + x2 - 3x - 3 = 0

Penyelesaian:

Langkah 1: Menentukan dua titik nilai f(x) awal, f(x1) dan f(x2) dan harus memenuhi hubungan f(x1)*f(x2)<0. misalkan nilai x1 = 1 dan x2 = 2.
f(x1)= 13 + 12 - 3(1) – 3 = -4
f(x2)= 23 + 22 - 3(2) – 3 = 3

Di dapat F(x1)*f(x2)<0 maka titik penyelesaian berada di antara nilai x1 = 1 dan x2 = 2.

Langkah 2: mencari nilai x3 dengan persamaan :
x3 = x2 - (f(x2) / f(x2) - f(x1)) *(x2 - x1)
Dan f(x3)= 1.571423 + 1.57142 2 - 3(1.57142) – 3 = -1.3644314869

Langkah 3: Melakukan Iterasi dengan persamaan 2.1 pada hasil langkah 2 nilai f(x3) hasilnya negative, dan untuk memnentukan nilai x4 harus f(xa*f(xb)<10 maka yang memenuhi syarat nilai yang digunakan yaitu x2 dan x3 karena nilai f(x2)*f(x3)<0 maka :

x4 = 2 - (3 / 3 - (-1.3644)) *(3 - 1.57142) = 1.7054108216
Dan f(x4) = 1.705413 + 1.705412 - 3(1.70541) – 3 = -0.247745

Iterasi selanjutnya mencari nilai x5 dan f(x5) dan begitu seterusnya sampai didapatkan nilai error lebih kecil dari 10-7. Maka dari hasil perhitungan didapatkan nilai x = 1.7320508074.
dengan nilai errornya f(x)= 2.0008883439E-09


sumber : http://myleaf-clover.blogspot.com/2013/04/la-matlan-2-iii.html
Continue Reading »

Program Pascal Metode Biseksi

program biseksi;
uses wincrt;
label ulang;
var
x1,x2,x3,y1,y2,y3 : real;
i : integer;
ab : char;
begin
ulang :
clrscr;
writeln('Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Metode Biseksi');
write( 'Masukan nilai x1 = ' );
readln( x1 );
y1 := x1 * x1 * x1 + x1 * x1 - 3 * x1 -3;
writeln(' Nilai f(x1)= ',y1:0:4);
repeat
begin
write( 'Masukan nilai x2 = ');
readln(x2);
y2 := x2 * x2 * x2 + x2 * x2 - 3 * x2 - 3;
write(' Nilai f(x2)= ',y2:0:4);
end;
if (y1*y2)<0 then
Writeln(' Syarat Nilai Ok')
else
Writeln(' Nilai X2 Belum Sesuai');
until ( y1 * y2 ) < 0;
I :=2;
Writeln;
writeln('Penyelesaian Persamaan Dengan Metode Biseksi, Nilai x1= ',x1:0:2,' & x2= ',x2:0:2);
writeln('--------------------------------------------------------------------------');
writeln('n x f(x) error ');
writeln('--------------------------------------------------------------------------');
repeat
begin
i :=i + 1 ; x3 := ( x1 + x2) / 2;
y3 := x3 * x3 * x3 + x3 * x3 - 3 * x3 -3;
if (i mod 10)=0 then readln;
if i<10 then
writeln(' ',i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::')
else writeln(i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::');
if ( y1* y3) <0 then
begin
x2 :=x3;
end else
begin
x1 := x3;
end;
end;
until abs( y3 )<1E-07;
writeln('-------------------------------------------------------------------------');
writeln('akar persamaanya = ',x3);
writeln('errornya =',abs( y3 ));
writeln('-------------------------------------------------------------------------');
write('Apakah anda ingin mengulanginya (y/t): ');
readln(ab);
if (ab='y') or (ab='Y') then
begin
goto ulang;
end
end.


Outputnya :




Continue Reading »

Program Pascal Metode Newton Raphson

program Newton_raphson;
uses crt;
label ulang;
var
x, x1, y, y1, z, f, f1, f2 : real;
i:integer;
ab : char;
begin
ulang:
clrscr;
repeat
begin
writeln('tentukan akar persamaan dari (x)=3x+sin(x)+exp x dengan metode newton raphson');
writeln;
write('masukan nilai x1= ');
readln(x1);
y1 := 3 * x1+ sin(x1) - exp(x1);
f1 := 3 + cos(x1) - exp(x1);
f2 := -sin(x1) - exp(x1);
z :=(y1*f2)/(f1*f1);
writeln('nilai f(x1) = ',y1:0:5);
writeln('nilai f^(x1) = ',f1:0:5);
writeln('nilai f^^(x1) = ',f2:0:5);
if abs(z) < 1 then
writeln('nilai x1 OK (',z:0:5,') <1');
end;
until abs(z)<1;
readln;
i := 1;
writeln('penyelesaian persamaan karakteristik dengan  newton raphson');
writeln('-----------------------------------------------------------');
writeln('      n                  x          F(x)             error ');
repeat
begin
i:= i + 1 ; x := x1-(y1/f1);
y:= 3* x + sin(x) - exp(x);
f:= 3 + cos(x) -exp(x);
if i < 10 then
writeln('::',i,'::',x,'::',y,'::',abs(y),':')
else
writeln('::',i,'::',x,'::',y,'::',abs(y),':');
x1:= x;
y1:= y;
f1:=f;
end;
until abs(y) < 1E-08;
writeln('--------------------------------------------------------------');
writeln('akar persamaannya x= ',x);
writeln('errornya = ',abs(y));
write('apakah anda ingin mengulanginuya (y/t) =');
readln(ab);
if (ab='y') or (ab='Y') then
begin
goto ulang;
end
end.

Hasil Outputnya adalah :


ketika kita menginput x1 = 1, maka akan muncul hasil seperti di atas, hasil di atas menunjukan bahwa nilai 1, tidak memenuhi persamaan di atas.


Ketika Kita menginput Nilai X1 = 2 maka akan muncul tabel yang menunjukan letak persamaan dan errornya.

Continue Reading »

SEKILAS TENTANG PROGRAMMING

Kampus TI | SEKILAS TENTANG PROGRAMMING | Komputer adalah sebuah mesin yang bahasanya hanya terdiri dari karakter 1 dan 0 atau bilangan biner. Oleh karena itu agar komputer dapat dioperasikan oleh oleh manusia seperti biasanya, maka dibutuhkan penterjemah bahasa manusia ke bahasa mesin komputer. Dalam hal ini adalah    software    atau perangkat lunak yang menghubungkan manusia (brainware) dengan komputer dan komponennya (hardware).

Dalam proses pembuatan suatu sistem operasi atau aplikasi-aplikasi lainnya yang biasa disebut programming dibutuhkan sebuah compiler yang bertindak sebagai penghasil penterjemah bahasa manusia ke dalam bahasa mesin atau sebuah program atau aplikasi. 

Dalam proses compile, dibutuhkan suatu code-code compiler atau code-code pemograman yang tergantung jenis dan bahasa compilernya dalam hal ini melanjut ke dalam programming. Menurut versi-nya ada dua jenis bahasa pemograman yang berkembang saat ini, pertama yang    menggunakan sistem    console    dan    kedua menggunakan sistem visual.

Sistem Console
Sistem console adalah pemograman yang mengandalkan dalam peng-code-an (coding), tanpa adanya kemudahan dalam klick    &    drag    dan dengan interface yang kurang menarik. Akan tetapi dalam pemograman yang berbasis sistem operasi Linux atau Unix, sistem seperti ini masih digunakan karena akan menambah kemampuan seseorang dalam meng-coding. Contoh bahasa pemograman yang menggunakan sistem console : Pascal, Java, C++, dll

Sistem Visual / Object
Sistem Visual adalah perkembangan dari sistem console dengan yang berbasis object frame oriented dengan interface (tampilan grafis) yang lebih bagus dibanding console dan memfokuskan pada kemudahan dalam memprogram suatu aplikasi dengan metode klik & drag. Sistem visual ini mencakup juga pada pemograman animasi yang bersifat    design grafis, akan tetapi tetap saja dibutuhkan code-code dalam memprogram. Contoh bahasa pemograman yang menggunakan sistem ini adalah : Borland Delphi (Pascal), Visual Basic (Basic), Visual C++ (C++), Visual Foxpro (Foxpro), Dll


Continue Reading »

Contoh Algoritma Dalam Turbo Pascal

Kampus TI | Contoh Algoritma Dalam Turbo Pascal  | Assalamu'alaikum kawan kampus TI. Sebenernya di postingan kali ini saya akan posting tugas saya untuk matakuliah "Struktur data" dan sekalian saya share kepada kawan kampus ti semua khususnya kawan-kawan mahasiswa jurusan Teknik Informatika. Tugas yang diberikan oleh dosen Struktur Data yang bernama Bpk Fajar Subhiyanto, S.Pd.,S.Kom.,M.Si.  menugaskan saya untuk memposting Contoh Algoritma Dalam Turbo Pascal. Sebelum ke contohnya saya akan bahas apa itu algoritma. Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal
yang memenuhi kriteria, berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugas selesai. 
Jadi Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis.Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.


1. Algoritma Bilangan Ganjil dan Genap

Bilangan-bilangan yang paling dikenal adalah bilangan bulat 0, 1, -1, 2, - 2, ... dan bilangan-bilangan asli 1, 2, 3, ..., keduanya sering digunakan untuk berhitung dalam aritmatika. Himpunan semua bilangan bulat dalam buku-buku teks aljabar biasanya dinyatakan dengan lambang Z dan sedangkan himpunan semua bilangan asli biasanya dinyatakan dengan lambang N.

Algoritma untuk menentukan suatu bilangan termasuk bilangan genap atau bilangan ganjil disajikan dengan flowchart dibawah ini :kampus ti
Bilangan genap adalah bilangan bulat yang habis (tidak mempunyai sisa) apabila dibagi 2. Sedangkan bilangan ganjil adalah bilangan bulat yang tidak habis apabila dibagi 2.

2. Algoritma Menghitung Keliling dan Luas Lingkaran

Lingkaran adalah himpunan semua titik pada bidang dalam jarak tertentu yang disebut jari-jari dari suatu titik tertentu, yang disebut titik pusat. Lingkaran adalah contoh dari kurva tertutup sederhana, membagi bidang menjadi bagian dalam dan bagian luar.
Algoritma untuk menghitung luas dan keliling lingkaran disajikan dengan flowchart dibawah ini :
3. Algoritma menampilkan bilangan ganjil antara 10-30

Bilangan ganjil antara 10 dan 30 adalah 11,13,15,17,19,21,23,25,27,29. Sedangkan yang akan ditampilkan adalah kecuali bilangan 21 dan 27. Jadi output yang diharapkan adalah 11,13,15,17,19,23,25,29.kampus ti

Algoritma untuk menampilkan bilangan ganjil antara 10-30 kecuali bilangan 21 dan 27 disajikan dengan flowchart dibawah ini :

Sebagai proses seleksi pertama agar program tidak mencetak bilangan 21 dan 27, diberikan syarat apakah bilangan = 21 atau bilangan = 27. Sebagai batas akhir supaya program tidak melebihi batas 30, maka diberikan syarat apakah bilangan < 29.kampus ti

4. Algoritma tahun Kabisatkampus ti

Tahun kabisat adalah tahun yang mempunyai 1 ekstra hari yang bertujuan supaya dalam kalender bisa sinkron dengan keadaan astronomi dan musim tahunan. Sebagai contoh, Bulan Februari mempunyai 29 hari pada tahun kabisat. Pada kalender Julian, setiap tahun yang bisa dibagi dengan 4 merupakan tahun kabisat. Tetapi pada kalender Gregorian, tahun yang bisa dibagi dengan 100 hanya dianggap sebagai tahun kabisat jika tahun ini juga bisa dibagi dengan 400. Misalkan tahun 1700, 1800 dan 1900 bukan tahun-tahun kabisat. Tetapi tahun 1600 dan 2000 merupakan tahun kabisat.

Algoritma untuk menentukan tahun kabisat disajikan dengan flowchart dibawah ini :
Algoritma diatas adalah untuk menentukan tahun kabisat pada kalender Julian saja, yaitu menggunakan syarat habis dibagi dengan 4 atau tidak. Selain itu batasan tahun yang boleh diinput adalah dalam rentang tahun 1900-2020.kampus ti

5. Algoritma menampilkan bilangan genap dari 2 sampai < n, kecuali bilangan genap tersebut kelipatan 4

Bilangan genap adalah bilangan bulat yang habis (tidak mempunyai sisa) apabila dibagi 2. Deret yang diatampilkan adalah deret bilangan genap dari 2 sampai ke n kecuali bilangan tersebut adalah kelipatan 4.

Algoritma untuk menampilkan deret bilangan genap dari 2 sampai ke n kecuali bilangan tersebut kelipatan 4 disajikan dengan flowchart dibawah ini :

Misalkan input n=5, maka output deret yang ditampilkan adalah 2,6,10,14,18. Untuk menyeleksi bilangan genap menggunakan syarat bil % 2 apakah mempunyai sisa apa tidak. Selain itu untuk menyeleksi bilangan
kelipatan 4 menggunakan syarat bil % 4 apakah mempunyai sisa apa tidak.kampus ti

6. Algoritma menghitung harga yang harus dibayar setelah mendapatkan diskon

Algoritma untuk menghitung jumlah yang harus dibayar oleh pembeli setelah mendapatkan diskon 10% dengan syarat jumlah total pembelian < Rp.1.500.000,-
Algoritma untuk menghitung harga yang harus dibayar setelah mendapatkan diskon disajikan dengan flowchart dibawah ini :
Jumlah barang bersifat dinamik sesuai input n dari user. Apabila jumlah total kurang dari 1500000 maka tidak akan mendapatkan diskon.

7. Algoritma mencari max dan min dari deret bilangan
Mencari nilai maks dan min dari suatu n deret bilangan yang diinput oleh user. Algoritma untuk mencari max-min dari suatu deret bilangan disajikan dengan flowchart dibawah ini :kampus ti
Jumlah deret dan nilai deret diinput oleh user. Sedangkan sebagai inisialisasi, max dan min diisi dengan nilai deret yang pertama. Contoh n = 4, bil = 4,8,6,7 , maka max =8 dan min=4.

8. Algoritma kalkulator sederhana 2 bilangan

Kalkulator Sederhana yang dapat melakukan operasi +(penambahan), - (pengurangan), *(perkalian) dan /(pembagian). Kalkulator bersifat sederhana karena hanya melakukan perhitungan terhadap 2 bilangan saja.
Algoritma kalkulator sederhana disajikan dengan flowchart dibawah ini :kampus ti


9. Algoritma menghitung angka angka dari suatu bilangankampus ti

Algoritma untuk menghitung angka-angka dari suatu bilangan yang diinput oleh user. Algoritma tersebut disajikan dengan flowchart dibawah ini :

10. Algoritma membalik kalimat

Algoritma untuk menampilkan kalimat dengan urutan terbalik. Struktur data yang digunakan adalah Stack. Untuk membalik bilangan, huruf huruf dari kalimat tersebut kita masukkan dalam stack menggunakan metode Push, setelah stack terisi, maka kita keluarkan kembali menggunakan metode Pop.

Pada algoritma mambalik kalimat, penggunaan struktur data stack diimplementasikan pada array. Dalam implementasinya pada array, kita harus menyiapkan sebuah array dengan panjang sama dengan jumlah huruf dalam kalimat yang akan dibalik.kampus ti

Dalam gambar dibawah ini tiap huruf dari kalimat dimasukkan kedalam array dengan index ke-0 sampai ke-n dengan metode push.kampus ti

Lalu huruf huruf tersebut dikeluarkan mulai dari index ke-n sampai index ke-0.kampus ti

Maka kalimat yang dibalik menjadi kalimat dengan susunan huruf terbalik.kampus ti

Mungkin hanya 10 contoh algoritma dalam turbo pascal yang saya berikan. Semoga bermanfaat bagi kawan kampus TI semua (^_^). kampus ti
Continue Reading »

Pascal - Contoh pascal program pengurutan data

program pengurutan_data;
uses wincrt;
const NilaiMaksimum = 1000;
type Larik = array[1..NilaiMaksimum] of integer;
var
L : Larik;
batas : integer;
           procedure masukan (var L : Larik; n : integer);
           var
                 a : integer;
           begin
             for a := 1 to n do
                 begin
                    write('Masukkan Nilai Ke-' ,a,' : '); readln(L[a]);
                    end;
                 end;
           procedure pengurutan (var L : Larik; n : integer);
           var
                 i : integer;
                 k : integer;
                 temp : integer;
           begin
             for i := 1 to (n-1) do
               for k := n downto i+1 do
                 if L[k] < L[k-1] then
                 begin
                 temp := L[k];
                 L[k] := L[k-1];
                 L[k-1] := temp;
               end;
             end;
           procedure keluaran(var L : Larik; n : integer);
           var
                i : integer;
           begin
             for i := 1 to n do
                    write(L[i]:5);
             end;
begin
  writeln ('*******************************************') ;
  write('Masukkan Jumlah Elemen yang diinginkan : '); readln(batas);
  writeln ('*******************************************') ;
  writeln;
  masukan(L,batas) ; writeln;
  pengurutan (L,batas); writeln;
  writeln ('************************') ;
  writeln('Hasil Pengurutan Larik :  ');
  writeln ('************************') ;
  keluaran(L,batas);
end.
Continue Reading »

Contoh program pencarian beruntun bagi dua

program pencarian_beruntun_bagi_dua;
uses wincrt;

var
L : array [1..100] of integer;
n1,x1,m,hasil :integer;

function BinarySearch2(n :integer; x : integer) : integer;

var
i,j : integer;
idx, k : integer;

ketemu : boolean;
begin
i := 1;
j := n;

ketemu := false;
while (not ketemu) and (i <= j) do
begin
k:=(i + j) div 2;
if (L[k] = x) then                            
ketemu:= true
else
if (x > l[k]) then
i := k + 1
else
j := k - 1;
end;

if (ketemu) then
idx := k
else
idx := -1;

BinarySearch2:=idx;
end;

begin
write ('masukkan jumlah data ');
readln (n1);

for m:=1 to n1 do
begin
write ('masukkan isi larik ke ' ,m, ' ');
        readln (L[m]);
end;

write ('inputkan data yang ingin dicari ');
readln (x1);


hasil:=BinarySearch2 (n1,x1);

if (hasil = -1) then
writeln ('tidak ditemukan di larik')
else
writeln ('data inputan ditemukan di larik ke ', hasil);

end.
Continue Reading »

Belajar Pascal Yuk !!!

Kampus TI | Belajar Pascal Yuk !!! | Assalamu'alaikum kawan Kampus TI semuanya. Gimana neh kabar hari ini semoga dalam keadaan baik yah. Sebagai mana judulnya yaitu Belajar Pascal Yuk !!! disini saya mau sharing tentang pascal kepada kawan Kampus TI semuanya yang ingin mempelajari pemrograman menggunakan bahasa pascal. Untuk itu kawan Kampus TI bisa mendownload tutorialnya disini.kampusti
kampusti
Tutorial Pascal Klik Disini Kawan
kampusti
Software Turbo Pascal For Win98 Klik Disini Kawan
kampusti
Software Turbo Pascal v7.1 Klik Disini Kawan
kampusti
Semoga tutorial yang saya sharing dapat bermanfaat bagi kita semua. Ammiinn :)kampusti
Continue Reading »

Arti Pesan Error Saat Program Pascal di Compile

Kampus TI | Arti Pesan Error Saat Program Pascal di Compile | Selamat hari minggu kawan Kampus TI semua. Kali ini saya akan mencoba share tentang Pemrograman Pascal. Namun disini saya tidak akan membahasa cara membuat program menggunakan Bahasa Pemrograman Pascal melainkan yang saya bahasa yaitu tentang Arti Pesan Error Saat Program Pascal di Compile yang semoga saja dapat membantu kawan Kampus TI dalam pembuatan pemrograman menggunakan Pascal. Untuk itu langsung aja yuk menuju TKP cekidot kawan...kampusti

  1. Out Of Memory : Memory tak cukup untuk melakukan proses (misalnya mengkomplikasi) kalau sedang berada dalam IDE dianjurkan mengkomplikasi program ke disk. kampusti
  2. Identifier Expected : Pengenal (variable) diperlukan pada posisi yang ditunjukkan kemungkinan disebabkan yang dipakai adalah reserved word (kata tercadang). 
  3. Unknow Identifier : Pengenal belum dideklarasikan. 
  4. Duplikate Identifier : Ada pengenal dengan nama yang sama. 
  5. Sintax Error : Ada karakter yang tidak diperkenankan, biasanya disebabkan kekurangan tanda petik pada string. 
  6. Error In Real Constant : Salah dalam penulisan konstanta real. 
  7. Error In Integer Constant : Salah dalam penulisan konstanta integer. 
  8. String Constant Exred Line : Salah karena string belum diakhiri dengan tanda petik. 
  9. To Many Masted Files : File include yang memanggil file include perlu dikurangi. 
  10. Unexpeted End Of File : Biasanya disebabkan salah penulisan Begin dan End atau ada suatu kompentar yang belum ditutup. 
  11. Line To Long : Panjang karakter dalam baris melebihi 126 karakter. kampusti
  12. Type Identifier Expected : Pengenal type belum diberikan. 
  13. Too Many Open File : Terlalu banyak file yang dibuka (dapat diatur melalui file CONFIG.SYS). 
  14.  Infalid File Name : Nama file salah. 
  15. File Not Found : File tidak ditemukan. 
  16. Disk Full : Disk penuh. 
  17. Infalid Compiler Directive : Pengarah computer yang ditunjukkan tidak dikenal. 
  18. Too Many Files : Terlalu banyak file yang dilibatkan sewaktu melibatkan komplikasi unit atau program. 
  19. Undifined Type In Pointer Definition : Type yang digunakan pada pendenifisian pointer belum dideklarasikan. 
  20. Variable Identifier Expected : Pengenal yang ditunjuk seharusnya menyatakan sebuah variable. 
  21. Error In Type : Kesalahan dalam pendefinisian type. kampusti
  22. Structure Too Large : Type struktur terlalu besar (ukuran maksimal yang diperkenankan yaitu 65520 byte). 
  23. Set Base Type Out Of Range : Type dasar dari himpunan harus berbeda dalam kawasan 0 sampai 255 atau berupa type enumerasi yang jumlah kemungkinannya tidak lebih dari 256 buah. 
  24. File Compotitions My Not Be Files : Komponen dari file tidak boleh berupa file. 
  25. Invalid String Length : Panjang string dalam pendeklarasian haruslah terletak antara 1 sampai 155. 
  26. Type Mismach : Type tidak cocok. 
  27. Invalid Subrange Base Type : Kesalahan pada type dasar subrange. 
  28. Lower Bound Greater Than Upper Bound : Dalam mendeklarasikan subrange, nilai awal harus lebih kecil daripada nilai akhir. 
  29. Ordinal Type Expected : Type yang diperkenalkan adalah type original. 
  30. Integer Constant Expected : Mengharapkan suatu konstanta.
  31. Constant Expected : Mengharapkan suatu konstanta. 
  32. Integer Or Real Constant Expected : Mengharapkan konstanta real/integer. 
  33. Type Identifier Expected : Mengharapkan pengenal type. 
  34. Infalid Function Result Type : Type keluaran fungsi salah (seharusnya berupa type sederhana, string / pointer). 
  35. Label Identifier Expected : Mengharapkan pengenalan label. 
  36. Begin Expected : Kurang Begin 
  37. End Expected : Kurang End. 
  38. Integer Expression Expected : Mengaharapkan ungkapan integer. 
  39. Ordinal Expression Expected : Mengharapkan ungkapan ordinal. 
  40. Boolean Expression Expected : Mengaharapkan ungkapan Boolean. 
  41. Operand Types Do Not Match Oprator : Type operand tidk sesuai dengan operator. 
  42. Error In Expression : Kesalahan dalam penulisan ungakapan . 
  43. Illegal Usignment : Kesalahan dalam pernyataan penugasan. 
  44. Field Identifier Expected : Mengaharapkan field dari record. 
  45. Object File Too Large : File object yang berukuran lebih dari 64 kb tidak dapat di link oleh turbo pascal. 
  46. Undefined External : Prosedur / fungsi eksternal belum di definisikan. 
  47. Invalid Object File Record : Ada suatu object record dalam file object yang tidak sah. 
  48. Code Segment Too Large : Kode dalam segment kode terlalu besar prosedur / fungsi perlu dipecah dalam beberapa unit. 
  49. Data Segment Too Large : Data dalam segmen data terlalu besar tempatkan data dalam heap.kampusti 
  50. Do Expected : Kurang Do. 
  51. Invalid Public Definition : Kesalahan yang berkaitan dengan bahasa assembly. 
  52. Invalid Extrn Definition : Kesalahan yang berkaitan dengan bahasa assembly. 
  53.  Too Many Extrn Definition : Kesalahan yang berkaitan dengan bahasa assembly. 
  54. Of Expected : Kurang Of. 
  55. Interface Expected : Kurang Interface. 
  56. Then Expected : Kurang Then. 
  57.  To Or Down To Expected : Kurang To atau DownTo. 
  58. Underfined Forward : Definisi dari prosedur / fungsi belum diberikan. 
  59. Too Many Procedures : Terlalu banyak prosedur / fungsi jumlah fungsi. 
  60. Invalid TypeCast : Kesalahan dalam melakukan typecast (konversi type). 
  61. Division By Zero : Kesalahan karena pembagian bilangan dengan nol (0).kampusti 
  62. Invalid File Type : Type file yang digunakan tidak mengenal prosedur . fungsi penangan file yang ditunjuk (misalnya file teks tidak mengenal prosedur seek). 
  63. Cannot Read Or Write Variables Of This Type : Type dari variable yang ditunjuk tidak dapat dikenalkan pada instruksi Write dan Writeln atau Read dan Readln 
  64. Pointer Variable Expected : Mengaharapkan variable pointer.kampusti   
Itu adalah pesan-pesan error yang sering di jumpai dalam bahasa pemrograman pascal. Mudah - mudahan artikel ini dapat membantu kawan Kampus TI semua dalam pemecahan masalah dalam pembuatan program menggunakan Pascal.kampusti
Continue Reading »

Contoh Program Pascal

 

Program 1 : menghitung luas/keliling bangunan

Yup… sekarang kita buat program yang pertama, menghitung luas dan keliling bangunan. Bangunan yang dijadikan contoh adalah segitiga. Perhatikan contoh di bawah ini:
1: Program Menghitung_Luas_dan_Keliling;
2: var alas, tinggi, sisimiring, luas, keliling: real;
3: Begin
4:   writeln(‘MENGHITUNG LUAS DAN KELILING SEGITIGA’);
5:   writeln(‘————————————-’);
6:   write(‘Masukkan alas : ‘);readln(alas);
7:   write(‘Masukkan tinggi : ‘);readln(tinggi);
8:   luas:= 0.5*alas*tinggi;
9:   sisimiring:=sqrt(sqr(alas)+sqr(tinggi));
10:   keliling:= alas+tinggi+sisimiring;
11:   writeln;
12:   writeln(‘luas segitiga : ‘, luas:0:2);
13:   writeln(‘keliling segitiga : ‘, keliling:0:2);
14:   readln;
15: end.
Pada baris 6 dan 7 adalah tempat memasukkan alas dan tinggi segitiga yang akan diproses di baris 8 sampai 10. Ingat kan rumus menghitung sisi miring segitiga? yaitu akar dari jumlah kuadrat sisi-sisinya. Fungsi “sqrt” adalah untuk mengakarkan dan sqr untuk mengkuadratkan.
Sekarang kebaris 12 dan 13. Apa yang beda hayoo…? betul.. setelah variabel luas dan keliling dicetak ke layar ada tambahan “:0:2″. Itu artinya :banyaknya alokasi angka:jumlah desimal.
Gampangkan? iya donk, kan tinggal maen logika… :D

Program 2 : menentukan bilangan ganjil, genap dan prima

Pernah kan pas di SD kita disuruh nentuin bilangan ini ganjil apa genap, prima apa bukan. Sekarang kita jadiin program.
1: Program JenisBilangan;
2: var bil: longint;
3: begin
4:   writeln(‘MENENTUKAN JENIS BILANGAN’);
5:   writeln(‘————————-’);
6:   write(‘Masukkan angka: ‘);readln(bil);
7:   if ((bil=2) or (bil=3) or (bil=5) or (bil=7)) then
8:     write(‘bilangan prima’)
9:   else if ((bil mod 2 <> 0) and (bil mod 3 <> 0) and
(bil mod 5 <> 0) and (bil mod 7 <> 0)) then
10:     write(‘bilangan prima’)
11:   else write(‘bukan bilangan prima’);
12:   if bil mod 2 = 0 then
13:     writeln(‘ dan genap’)
14:   else
15:     writeln(‘ dan ganjil’);
16:   readln;
17: end.
Pada baris ke-7 sampai 12 adalah tempat menentukan bilangan prima atau bukan. Masih ingat kan karateristik bilangan prima? bilangan yang hanya bisa dibagi 1 dan dirinya sendiri dan juga hampir semuanya ganjil. Berhubung bilangan prima dibawah 10 adalah persyaratan untuk bilangan diatas 10 (perhatikan baris ke 7 dan 9), jadi bilangan prima dibawah 10 ditulis manual. Fungsi “mod” pada baris 9 dan 13 adalah sebagai sisa dari pembagian. Jika ditulis “7 mod 3″ maka hasilnya adalah 1, artinya sisa dari 7/3 (tujuh dibagi tiga) adalah 1.
Gimana? Tinggal maen logika… kan? :P

Program 3 : menentukan bilangan terbesar (dengan if)

Ini adalah program terakhir untuk mematangkan penggunaan kondisi if. Pernah kah kalian membuat program dengan susah payah tetapi setelah ditunjukkan dengan orang lain, mereka bilang “Hanya gitu doank kerjanya?”. He he he… sakit hati emang :-( , kalo bisa rasanya pengen nimpuk tu orang dengan hardisk SEAGATE BARACUDA 80 giga lima biji :) ). Ini salah satu program yang panjang, tapi fungsinya… yaa… gitulah :D
1: Program BilanganTerbesar;
2: Var bil1, bil2, bil3 :real;
3: Begin
4:   Write(‘Masukkan Bilangan Pertama : ‘);Readln(bil1);
5:   Write(‘Masukkan Bilangan Kedua : ‘);Readln(bil2);
6:   Write(‘Masukkan Bilangan Ketiga : ‘);Readln(bil3);
7:   If (bil1=bil2) and (bil2=bil3) then
8:     Writeln(‘Semua bilangan yang anda masukkan sama
besar ‘,bil1:0:0)
9:   Else If (bil1=bil2) or (bil1=bil3) or (bil2=bil3) then
10:     Begin
11:       If bil1=bil2 then
12:         Begin
13:           Writeln(‘Bilangan Pertama dan Kedua Adalah Sama’);
14:           If Bil1 < bil3 then
15:             Writeln(‘Bilangan Terbesar Adalah ‘,bil3:0:0)
16:           Else
17:             Writeln(‘Bilangan Terbesar Adalah ‘,bil1:0:0)
18:         End
19:       Else If bil1=bil3 then
20:         Begin
21:           Writeln(‘Bilangan Pertama dan Ketiga Adalah Sama’);
22:           If Bil1 < bil2 then
23:             Writeln(‘Bilangan Terbesar Adalah ‘,bil2:0:0)
24:           Else
25:             Writeln(‘Bilangan Terbesar Adalah ‘,bil1:0:0)
26:         End
27:       Else If bil2=bil3 then
28:         Begin
29:           Writeln(‘Bilangan Kedua dan Ketiga Adalah Sama’);
30:           If Bil1 < bil3 then
31:             Writeln(‘Bilangan Terbesar Adalah ‘,bil3:0:0)
32:           Else
33:             Writeln(‘Bilangan Terbesar Adalah ‘,bil1:0:0)
34:         End
35:     End
36:   Else If bil1 > bil2 then
37:     Begin
38:       If bil1 > bil3 then
39:         Writeln(‘Bilangan terbesar adalah ‘,bil1:0:0)
40:       Else
41:         Writeln(‘Bilangan terbesar adalah ‘,bil3:0:0);
42:     End
43:   Else If bil1 < bil2 then
44:     Begin
45:       If bil2 > bil3 then
46:         Writeln(‘Bilangan terbesar adalah ‘,bil2:0:0)
47:       Else
48:         Writeln(‘Bilangan terbesar adalah ‘,bil3:0:0);
49:     End;
50:   readln;
51: End.
Hue he he… keren kan? dengan bermodalkan if kita bisa menentukan bilangan mana yang terbesar dari 3 bilangan yang dimasukkan. Selain itu program ini bisa mendekteksi jika ada bilangan yang sama. Yup, hanya itu intinya. Prinsip utama
program ini hanya membandingkan bilangan satu dengan yang lain. Mudah bukan? lebih baik kalian ngerjain yang ini tanpa ngeliat tu program, biar logikanya jalan…
Program 4 : penggurutan angka (looping)

Pernahkah kalian dikasih nilai ulangan siswa lalu disuruh ngurutin dari yang kecil ke gede? Kalo jumlahnya dibawah 10 sih gak masalah, lah kalo ada 100 biji kan berabe… Ini solusinya:
1: Program Pengurutan;
2: var i, j: integer;
3:   k : longint;
4:   a: array[1..5] of longint;
5: begin
6:   writeln(‘PROGRAM MENGGURUTKAN ANGKA’);
7:   writeln(‘————————–’);
8:   for i:=1 to 4 do
9:     begin
10:       write(‘Masukkan bilangan ke- ‘, i, ‘ : ‘);readln(a[i])
11:     end;
12:   for j:=2 to 4 do
13:     begin
14:       k:=a[j];
15:       i:=j-1;
16:       while (i>0) and (a[i]>k) do
17:         begin
18:           a[i+1]:=a[i];
19:           i:=i-1;
20:         end;
21:       a[i+1]:=k
22:     end;
23:   for i:=1 to 4 do
24:     writeln(a[i]);
25:   readln;
26: end.
Hhmmm… sebenarnya gak perlu dijelasin lagi yach tu program, gua harap kalian bisa nge-trace (menelusuri) algoritma programnya. Program ini dibatasi untuk 4 angka saja, bisa diubah sesuai keinginan. Pada prinsipnya program ini memasukkan input ke dalam array, kemudian membandingkannya, bila ternyata angka sebelumnya lebih besar, maka dipindah posisinya (coba dech di trace, pasti ngerti).
Program ini berguna banget buat kalian yang hobi ngitung, apa lagi buat anak smu. Untuk pengembanganya kalian bisa menghitung mean, modus dan median
Program 5  : bintang (looping)

Setelah sebelumnya kita bermain dengan if, sekarang ke for. Program di bawah ini akan memunculkan output berupa sekumpulan bintang yang membentuk tangga
1: Program BintangTangga;
2: const akhir=18;
3: var baris, kolom: integer;
4: begin
5:   for baris:=1 to akhir do
6:   begin
7:     for kolom:=1 to baris do
8:     write(‘*’);
9:   writeln;
10:   end;
11: readln;
12: end.
Coba dech dijalankan, gimana hasilnya? menarik bukan?. Sekarang kita coba menampilkan sekumpulan bintang yang membentuk kubus.
1: Program BintangKubus;
2: uses crt;
3: Var i, j, x, y:integer;
4: Begin
5:   clrscr;
6:   Write(‘Masukkan Dimensi Kubus: ‘);Readln(x);
7:   y:=0;
8:   For i:=1 to x do
9:   Begin
10:     for j:=1 to x do
11:       Begin
12:         y:=y+1;
13:         write(y:4);
14:         if y mod x=0 then
15:           Writeln;
16:       End;
17:     End;
18: readkey;
19: End.
Gimana? baguskan? Sekarang tugas kamu membuat sekumpulan bintang berbentuk piramida dan berbentuk tangga terbalik (seperti program pertama di atas tetapi terbalik)
Program 6 : penggabungan program 1, 2 dan 4 dengan membuat menu (prosedur, fungsi)

Setelah dari tadi belajar logika, sekarang kita menggabungkan beberapa program sebelumnya dan dibuat menu. Untuk contoh ini kita memanfaatkan repeat.
1: Program Gabung;
2: uses crt;
3: var pilih: integer;
4: Procedure luas;
5:   {copy dan paste program 1}
6: end;
7: Procedure JenisBilangan;
8:   {copy dan paste program 2}
9: end;
10: Procedure Pengurutan;
11:   {copy dan paste program 4}
12: End;
13: begin {program utama}
14:   repeat
15:     clrscr;
16:     writeln(‘ PILIHAN’);
17:     writeln(‘——————————————-’);
18:     writeln(‘ 1. Menghitung Luas’);
19:     writeln(‘ 2. Jenis Bilangan’);
20:     writeln(‘ 3. Pengurutan’);
21:     writeln(‘ 4. Exit’);
22:     writeln(‘——————————————-’);
23:     writeln;
24:     writeln;
25:     write(‘ Pilih Angka untuk Memilih Pilihan : ‘);
26:     readln(pilih);
27:     case pilih of
28:       1 : luas;
29:       2 : JenisBilangan;
30:       3 : Pengurutan;
31:       4 : exit;
32:     end;
33:   until pilih = 4;
34: end.
Ngertikan prisip kerjanya? Jadi program ini hanya akan berakhir jika user memilih no 4.
Program 7 : toko (record dengan array)

Pada tutorial 5 telah dijelaskan cara penggunaan array dan record. Sekarang kita akan menggabungkan array dan record tersebut. Perhatikan program di bawah ini:
1: Program Array_dan_Record;
2: type dmhs=record
3:   nrp:string[10];
4:   nama:string[25];
5:   alamat:string[50];
6: end;
7: var data:array[1..3] of dmhs;
8:     i:integer;
9: begin
10:   for i:=1 to 3 do
11:     begin
12:       write(‘nrp : ‘);readln(data[i].nrp);
13:       write(‘nama : ‘);readln(data[i].nama);
14:       write(‘alamat : ‘);readln(data[i].alamat);
15:     end;
16:   writeln;
17:   writeln(‘Data ditampilkan’);
18:   for i:=1 to 3 do
19:     begin
20:       writeln(‘nrp : ‘, data[i].nrp);
21:       writeln(‘nama : ‘, data[i].nama);
22:       writeln(‘alamat : ‘, data[i].alamat);
23:     end;
24:   readln;
25: end.
Di dalam program tersebut dideklarasikan bahwa dmhs (data mahasiswa) itu adalah record yang mempunyai field nrp, nama dan alamat (lihat baris 2 sampai 6). Selanjutnya variabel data dideklarasikan bertipe dmhs yang berbentuk array (baris ke 7). Kemudian seperti biasa untuk memasukkan data ke field digunakan “readln(data[i].nrp)”, dst (baris 10 sampai 15). Untuk menampilkannya bisa dilihat dibaris ke 18 sampai 23.
Program 8 : Operasi String

Yang ini sebenarnya program tambahan, habis program-program sebelumnya kan kebanyakan bermain logika matematik (tentang angka melulu). Ehh… dipikir-pikir, operasi tentang string kok gak ada? Tenaaannggg…. sekarang udah ada kok :p
1: var nama : string;
2:     urutan, posisi: integer;
3: begin
4:   nama:=’Dijas Keren’;
5:   writeln(‘Yang ini delete’);
6:   for urutan:=1 to 11 do
7:     begin
8:       posisi:= 13 – urutan;
9:       delete(nama, posisi, 1);
10:       writeln(nama);
11:     end;
12:   writeln;
13:   nama:=’DijasKeren’;
14:   writeln(‘Yang ini insert’);
15:   writeln(‘Sebelum di Insert : ‘, nama);
16:   insert(‘-’, nama, 6);
17:   writeln(‘Setelah di Insert : ‘, nama);
18:   readln;
19: end.
Outputnya seperti di bawah ini
Yang ini delete
Dijas Keren
Dijas Kere
Dijas Ker
Dijas Ke
Dijas K
Dijas
Dijas
Dija
Dij
Di
D
Yang ini insert
Sebelum di Insert : DijasKeren
Setelah di Insert : Dijas-Keren
Jadi isi penggunaan delete itu => delete(string, posisinya, jumlah yang di hapus). Sedangkan insert => insert(yang mau disisipkan, string, posisinya). Gampang kan? Dengan ini bisa dibuat kayak Program 5 loh (tentang bintang).
Bagaimana jika suatu saat kamu pengen ngerubah string jadi numerik atau numerik jadi string?
str(angkanya:desimal yang diambil, variabel string tempat hasilnya disimpan)
prosedur ini untuk mengubah numerik ke string
val(string, variabel numerik tempat hasilnya disimpan, posisi salah)
prosedur ini untuk mengubah string ke numerik. Khusus posisi salah, yang dideteksi adalah posisi salah yang pertama (walaupun ada 5 biji yang salah, yang ke tangkap yang pertama)
Concat(string, string, string) : string
Yang ini untuk menggabungkan string, ini fungsi loohh.. jadi hasil penggabungannya ditampung di Concat
Ini program terakhir tentang operasi string, program pembalik kata
1: program pembalik_kata;
2: var kata,hasil,tmp:string; i:integer;
3: begin
4:   write(‘Kata : ‘);readln(kata);
5:   hasil:=”;
6:   for i :=length(kata) downto 1 do
7:     begin
8:       tmp:=copy(kata,i,1);
9:       hasil:=hasil+tmp;
10:     end;
11:   write(‘Dibalik ‘,hasil);
12:   readln;
13: end.
Di program ini ada dua fungsi operasi string baru yang digunakan.
length(string) : integer
Fungsi ini untuk menghitung panjang atau jumlah karakter.
copy(string, posisinya, jumlah yang akan diambil)
Fungsi ini untuk mengambil sejumlah huruf dari sting yang dimasukkan
Pos(string/huruf yang akan dicari posisinya, string awal):byte
Fungsi ini untuk mengetahui posisi dari string/huruf dari kata/kalimat yang dimaksud. Bila bernilai nol berarti nilai string yang dicari tidak ada
Program 9  : Contoh penggunaan teori di tutor 6

Program database ini adalah contoh-contoh penggunaan fungsi dan prosedur dari Tutorial 6. Perhatikan contoh berikut:
1: Program BuatFile;
2: var fText : text; data: string;
3: begin
4:   writeln(‘MENGISI DATA’);
5:   writeln(‘————’);
6:   assign(fText, ‘nama.txt’);
7:   rewrite(fText); {gunakan reset(fText) bila file sudah ada}
8:   writeln(fText, ‘dijas’);
9:   writeln(fText, ‘dian’);
10:   writeln(fText, ‘cecep’);
11:   close(fText);
12:   readln;
13: end.


Prosedur yang digunakan di atas adalah prosedur no. 1 sampai 5 yang ada di Tutorial 6. Untuk membaca databasenya gunakan reset (jangan rewrite) dan gunakan prosedur no 6. Perhatikan contoh di bawah ini:
assign(fText, ‘bil.dat’);
reset(fText);
read(fText, data);
writeln(data);
Sekarang kita gunain fungsi nomor 7 yachh… Fungsi ini biasa digunakan untuk membaca data yang ada dari awal/posisi tertentu sampai akhir. eof kepanjangan end of file
while not eof(fText) do
begin
readln(fText, data);
writeln(data);
end;

Bagaimana caranya jika ingin mengedit data yang sudah ada? Gunakan prosedur seek, perintahnya: Seek(fText, filesize(fText));. Setelah menempatkan kursor ditempat yang diinginkan, gunakan perintah write untuk mengedit atau prosedur Truncate untuk menghapus (perintahnya Truncate(fText)). Tapi hati-hati mengunakan Truncate, soalnya mulai dari posisi yang dimaksud sampai akhir file akan dihapus. Fungsi dan prosedur lainnya bisa dicoba-coba sendiri yaaa….

Huuff… akhirnya Selesai juga ngebahas dasar-dasar pascal. Kalo kalian udah paham seluruh tutorial dan program yang ada di sini, berarti kalian sudah melewati level basic. Untuk pengembangannya coba cari program-program open source, terutama mengenai database. Selamat mencoba.…
Continue Reading »