Astawan’s World

Icon

Just To Remember Something That I Ever Know

Deret Fibonacci dengan Pascal

Apa sih deret Fibonacci? dan apa sih kegunaanya?
Deret Fibonacci adalah suatu deret matematika yang berasal dari penjumlahan dua bilangan sebelumnya,
Untuk lebih jelasnya silahkan kunjungi url http://id.answers.yahoo.com/question/index?qid=20071103230736AA1PeL0 atau http://id.wikipedia.org/wiki/Bilangan_Fibonacci

Kalau sudah mengerti apa itu deret Fibonacci dan kegunaanya, sekarang kita lanjutkan ke program yang akan kita buat untuk membuat deret tersebut. Ada beberapa referensi blog yang pernah saya lihat, seperti http://rizalp.blogspot.com/2008/11/algoritma-deret-bilprima-dan-deret.html, tapi disana tidak menggunakan array, jadi menurut saya gregetnya kurang.

Berikut ini source program untuk membuat deret Fibonacci dengan Pascal.

	program fibonacci;
	uses crt;
	var
	   n:integer;
	   i:integer;
	   deret:array[1..100] of longint;

	begin
		{deret fibonacci adalah deret yang merupakan hasil penjumlahan 2 bilangan sebelumnya}
		{7 awal deret fibonacci = 1,1,2,3,5,8,13,...}
		 clrscr;
		 write('Masukan jumlah deret :');
		 readln(n);
		 writeln;
		 for i := 0 to n-1 do
		 begin
			  if (i = 0) or (i = 1) then
				 begin
					  deret[i]:=1;
					  write(deret[i],' ');
				 end
			  else
				  begin
					   deret[i]:=deret[i-1]+deret[i-2];
					   write(deret[i], ' ');
				  end;
		 end;
		 readln;
	end.

Filed under: Pascal

Program Susun Huruf dengan Pascal

Pernahkah anda membuat program yang jika dimasukan nilai 5 hasilnya seperti ini ?
result
Kasus diatas bukan punya saya, tapi punya salah seorang yang pernah mampir ke blog ini.

Pesan yang beliau tulis yaitu :


bagai mana caranya membuat program yang apabila dimasukkan angka 5 maka akan menghasilkan keluaran sebagai berikut :
dimohon solusinya.
 

Nah, dari kasus diatas saya coba untuk membuat programnya dan
berikut adalah source code hasil coba-coba saya :

Program simulasi;
uses wincrt;
var
    n: integer;
    i,j,k,m : integer;                  {variable untuk iterasi}
    OutLine:string;                     {variable penampung baris}
    PanjangLine:integer;
    Starthuruf,endhuruf:integer;
    IntStartChar:integer;               {karakter mulai}
    FrontLetter,EndLetter:char;         {karakter didepan / dibelakang}

begin
     {
     Baris yang tercipta adalah (n * 2)-1
       a
      aba
     abcba
      aba
       a  

     * langkah pertama, membuat baris berikut :
       a
      aba
     abcba

     * langkah kedua, membuat baris berikut :
      aba
       a

      setiap pembuatan baris dibagi menjadi 3 step :
        1. membuat bagian kosong didepan.
        2. membuat bagian yang berisi huruf.
        3. membuat bagian kosong dibelakang.
        kemudian hasil dari ketiga step itu digabungkan.

     }

     {inisialisasi variable}
     FrontLetter:=' ';
     EndLetter:=' ';
     intStartChar:=96;      {96=a}

     {* langkah pertama}
     write('Masukan jumlah n ');
     readln(n);
     panjangline:=(n*2)-1;

     for i:= 1 to (panjangline div 2)+1 do
     begin
          starthuruf:=((panjangline div 2) + 1) - (i-1);
          endhuruf:=starthuruf + ((2*i)-2);

          {1. membuat baris kosong didepan}
          for j:=1 to starthuruf-1 do
          begin
               outline:=concat(outline,FrontLetter);
          end;

          {2. membuat bagian yang berisi huruf}
          m:=1;
          for j:=starthuruf to endhuruf do
          begin
               if j < (panjangline div 2) + 1 then
               begin
                   outline:=concat(outline,chr(m+intStartChar));
                   m:=m+1;
               end
               else
               begin
                   outline:=concat(outline,chr(m+intStartChar));
                   m:=m-1;
               end;
          end;

          {3. membuat bagian kosong dibelakang}
          for j:=endhuruf+1 to panjangline do
          begin
               outline:=concat(outline,EndLetter);
          end;

          writeln(outline);
          outline:='';  {reset aoutline}
     end;

     {* langkah kedua}
     for i:= (panjangline div 2) downto 1 do
     begin
          starthuruf:=((panjangline div 2) + 1) - (i-1);
          endhuruf:=starthuruf + ((2*i)-2);

          {membuat bagian kosong didepan}
          for j:=1 to starthuruf-1 do
          begin
               outline:=concat(outline,EndLetter);
          end;

          {membuat bagian yang berisi huruf}
          m:=1;
          for j:=starthuruf to endhuruf do
          begin
               if j < (panjangline div 2) + 1 then
               begin
                   outline:=concat(outline,chr(m+intStartChar));
                   m:=m+1;
               end
               else
               begin
                   outline:=concat(outline,chr(m+intStartChar));
                   m:=m-1;
               end;
          end;

          {membuat bagian kosong dibelakang}
          for j:=endhuruf+1 to panjangline do
          begin
               outline:=concat(outline,FrontLetter);
          end;

          writeln(outline);
          outline:='';
     end;
     readln;
end.

Filed under: Pascal

Program Konversi Suhu dengan Pascal

Pernah mendengan kata-kata seperti Celcius, Fahrenheit, Reamur dan Kelvin???, mereka bukanlah nama-nama binatang apalagi nama tumbuh-tumbuhan..  he he, tetapi mereka merupakan satuan yang sering digunakan pada temperatur suhu. Jika anda pernah mendengarnya, Pernahkan anda melakukan konversi suhu dari suatu satuan ke satuan lainnya?.

Dalam tulisan ini saya mencoba untuk membuat sebuah program komputer yang dapat digunakan untuk mengkonversi suhu dari satu satuan ke satuan lainnya. Program saya buat menggunakan bahasa Pascal.

Bahasa Pascal merupakan bahasa yang didunia industri kurang banyak dipakai, tapi merupakan bahasa yang sangat banyak digunakan oleh instansi-instansi pendidikan untuk membangun kuda-kuda yang tangguh bagi seorang programmer.

Berikut adalah program Pascal yang saya gunakan untuk memecahkan persoalan konversi suhu. Satuan suhu yang saya libatkan hanya empat yaitu Celcius, Reamur, Fahrenheit dan Kelvin. Sebenarnya banyak satuan untuk temperatur yang dipakai dalam dunia ini, kebetulan cuma empat itu yang pernah saya pelajari dari pelajaran Fisika sewaktu duduk dibangku SMP.

OK.. sekarang masuk kebagian aplikasi, Secara teknis aplikasi akan meminta input Jenis dan Besar Temperatur Suhu yang akan dikonversi, jika jenis input suhu adalah Celcius, maka output program adalah satuan suhu dalam Reamur, Fahrenheit dan Kelvin. Jika jenis suhu adalah Reamur, maka output program adalah suhu dalam Celcius, Fahrenheit dan Kelvin, dst…

Versi Pascal yang saya pakai adalah Pascal versi Windows, tepatnya Pascal 1.5. Jika anda menggunakan Pascal for DOS / Turbo Pascal, silahkan ganti statement Uses WinCrt dengan Uses Crt dan diawal program utama ditambahkan dengan ClrScr.

Program KonversiSuhu;
uses wincrt;
var InpSuhu:real; {C=Celcius, R=Reamur, F=Fahrenheit, K=Kelvin}
    OutC, OutR, OutF, OutK:real;
    JenisSuhu:char;
    InpSuhuString:string; {var penampung input suhu dalam string}
    tempSuhu:real;        {var sementara untuk konver string ke real}
    ErrCode:integer;      {var untuk menampung error saat konversi string ke real}

label 100,200;

{program utama}
begin
     {menu}
     100: {label 100}
     write('Masukan jenis suhu C/R/F/K  : ');
     readln(JenisSuhu);
     JenisSuhu:=upcase(JenisSuhu); {mengubah jenis suhu ke upper case}

     if (JenisSuhu <> 'C') then
        if (JenisSuhu <> 'R' )  then
           if (JenisSuhu <> 'F' ) then
              if (JenisSuhu <> 'K' ) then
              begin
                 writeln ('Jenis suhu salah, silahkan ulangi!');
                 writeln;
                 goto 100;
              end;

     200: {label 200}
     write('Masukan besar suhu          : ');
     readln(InpSuhuString);
     val(InpSuhuString,inpSuhu,ErrCode);
     if ErrCode <> 0 then
     begin
        writeln('Data suhu yang dimasukan tidak valid, masukan data numerik!');
        writeln;
        goto 200;
     end;

     writeln;

     { hitung konversi suhu}

     writeln('Hasil Konversi Suhu, Untuk Suhu ', inpSuhu:6:2,' ',JenisSuhu);
     writeln('--------------------------------------');
     if (JenisSuhu = 'C') then {jika input suhu dalam celcius}
     begin
          OutR:=InpSuhu * 4/5;
          OutF:=(InpSuhu *9/5) + 32;
          OutK:=InpSuhu + 273;

          writeln('Suhu dalam Reamur      = ', OutR:6:2);
          writeln('Suhu dalam Fahrenheit  = ', OutF:6:2);
          writeln('Suhu dalam Kelvin      = ', OutK:6:2);
     end
     else if (JenisSuhu = 'R')  then  {jika input suhu dalam reamur}
     begin
          OutC:=InpSuhu * 5/4;
          OutF:=(InpSuhu * 9/4) + 32;
          OutK:=(InpSuhu * 5/4) + 273;

          writeln('Suhu dalam Celcius     = ', OutC:6:2);
          writeln('Suhu dalam Fahrenheit  = ', OutF:6:2);
          writeln('Suhu dalam Kelvin      = ', OutK:6:2);
     end
     else if (JenisSuhu = 'F') then  {jika input suhu dalam fahrenheit}
     begin
          OutC:=InpSuhu * 5/9;
          OutR:=(InpSuhu * 4/9) + 32;
          OutK:=(InpSuhu * 5/9) + 273;

          writeln('Suhu dalam Celcius     = ', OutC:6:2);
          writeln('Suhu dalam Reamur      = ', OutR:6:2);
          writeln('Suhu dalam Kelvin      = ', OutK:6:2);
     end
     else if (JenisSuhu = 'K') then  {jika input suhu dalam kelvin}
     begin
          OutC:=InpSuhu - 273;
          OutR:=(InpSuhu - 273) * 4/5;
          OutF:=((InpSuhu - 273) * 9/5) + 32;

          writeln('Suhu dalam Celcius     = ', OutC:6:2);
          writeln('Suhu dalam Reamur      = ', OutR:6:2);
          writeln('Suhu dalam Fahrenheit  = ', OutF:6:2);
     end;
     readln;
end. {end program}

Filed under: Pascal