Rabu, 22 Februari 2012

Pascal : program konversi suhu

  Program konversi suhu ini, misal kita ingin tahu derajat farenheit dari 100 derajat celcius. Tinggal masukkan "100" maka derajat farenheitnya diketahui yaitu 212 derajat farenheit. Ok, langsung saja, ini dia list scriptnya :


var a,b,c:longint;
procedure ceke;
begin
writeln('masukkan derajat celcius !');
read(b);
c:= b+273;
writeln('derajat kelvinnya adalah ',c);
end;
procedure cere;
begin
writeln('masukkan derajat celcius !');
read(b);
c:=b*4/5;
writeln('derajat reamurnya adalah ',c);
end;
procedure cefa;
begin
writeln('masukkan derajat celcius !');
read(b);
c:=b*9/5+32;
writeln('derajat farenheitnya adalah ',c);
end;
begin
writeln('silahkan pilih konversi yang di inginkan !');
writeln('celcius - kelvin kode = 1');
writeln('celcius - reamur kode = 2');
writeln('celcius - farenheit kode =3');
read(a);
if a=1 then ceke else
if a=2 then cere else
if a=3 then cefa;
end.

  Sebenarnya kalau mau lebih luas lagi konversinya, tidak sebatas celcius - kelvin dll, bisa. Tinggal tambah rumusnya ke bagian procedure, tapi karena terlau panjang jadinya penulis cuma memaparkan konversi celcius ke derajat suhu apa saja.

Ok, sekian.

Minggu, 19 Februari 2012

Pascal : program mencari luas persegi,persegi panjang dan segitiga

  Ini dia program paling sederhana yang pernah saya post disini (yah, inilah akibat kehabisan bahan posting), cara kerjanya sangat simple, masukkan alas dan tingginya, dan rumusnya bekerja dalam program ok ini dia list scriptnya :

Persegi :

var a,b:integer;
begin
read(a);
b:=a*a;
writeln(b);
end.

Persegi panjang :


var a,b,c:integer;
begin
read(a,b);
c:=a*b;
writeln(c);
end.

Segitiga :

var a,b,c:integer;
begin
read(a,b);
c:=a*b div 2;
writeln(c);
end.

Ok, sekian.


Sabtu, 18 Februari 2012

Pascal : program mencari rata-rata

  Ini dia program pascal yang paling berguna untuk ibu guru dan pak guru di sekolah. Tanpa basa-basi lagi ini dia list script :


var a,b,c,d,e,f:longint;
procedure rataan;
begin
f:=e div a;
writeln('jadi, rata-rata semuanya adalah ',f); 
end;
begin
writeln('masukkan jumlah data yang ingin di rata-ratakan !');
readln(a);
for b:=1 to a do begin
c:=c+1;
writeln('masukkan data ke-',c);
readln(d);
e:=e+d;
end;
rataan;
end. 


  Selama membuat program ini, kendala terbesarnya adalah "bagaimana caranya agar data yang di input itu tidak terbatas". Artinya Kita bisa saja menginput jumlah datanya 10 atau berapapun. Dan akhirnya saya menemukan cara yaitu dengan ini :

readln(a);
for b:=1 to a do begin

 Untuk script

c:=c+1;

sebenarnya kode itu tidak dipakai  juga tidak apa-apa, itu cuma mempermudah dalam menginput data, dengan komentar. Yang lainnya saya rasa tidak perlu di jelaskan lagi, hanya masalah rumus mencari rata-rata.

ok, sekian.

pascal : program pembalik kata

   Program kali ini sebenarnya prinsipnya hampir sama dengan program yang sebelumnya sudah  pernah dibahas di blog ini, yang ada di sini.
  Sebagai contoh, kalau kita input "saya bermain" maka yang keluar adalah "niamreb ayas". simple kan

ok, langsung saja, ini dia list scriptnya :

var a,d:string b,c:integer;
begin
read(a);
b:=length(a);
for c:=b downto 1 do begin
d:=d+a[c];
end;
writeln(d);
end. 


Sekali lagi, logika dari script di atas sebenarnya sama dengan yang ada di sini

tukaran link


 TukarLinkBlog        
BLOGGER FAKIR
Tukar link top

Jumat, 17 Februari 2012

Pascal : program palindrum

  Bagi yang belum tau palindrum itu apa, palindrum itu suatu teks yang walaupun dibaca dari kiri atau kanan bacaannya akan tetap sama. Palindrum bisa juga suatu bilangan. Contoh palindrum teks dan palindrum bilangan adalah "malam' dan "12321". Program yang di buat kali ini adalah program pendeteksi palindrum atau tidak.

ok, langsung saja, ini dia list scriptnya :

var a,d:string; b,c:integer;
begin
read(a)
b:=length(a);
for c:=b downto 1 do begin
d:=d+a[c];
end;
if d=a then writeln( 'palindrum') else writeln('tidak palindrum');
end.

  Sebelum memahami script di atas, kita harus terlebih dahulu memahami konsep string dalam pascal. String merupakan kumpulan karakter. Contoh string yang merupakan variabel 'A' :

'terlambat'

ini bisa di uraikan menjadi:

A[1]:t, A[2]:e, A[3]:r, A[4]:l, A[5]:a, A[6]:m, A[7]:b, A[8]:a, A[9]:t

   Normalnya, suatu string dalam program akan di baca dari A[1] sampai A[terakhir], dengan mengetahui ciri khas palindrum yang di baca terbalik bacaannya tetap sama, maka kita harus 'memerintahkan' programnya untuk membacanya terbalik, dengan begitu program bisa mendeteksi apakah variabel itu palindrum atau tidak.

 Nah, dengan menggunakan formula :

b:=length(a);
for c:=b downto 1 do begin
d:=d+a[c];

Kita bisa memerintahkan program untuk membacanya terbalik, yang hasil bacaannya ada dalam variabel 'd'

 Dan fungsi dari :  


if d=a then writeln( 'palindrum') else writeln('tidak palindrum')

  Hanya untuk menyatakan apakah variabel itu palindrum atau bukan.

ok, sekian.

 


Rabu, 15 Februari 2012

trik photoshop : ganti wajah

  Kali ini saya akan mengganti wajah mas-mas random dari google ini :

http://ucbcomedy.cachefly.net/ucbcomedy/img/talent/74/normal.jpg 

   Menjadi ini :


 
baiklah, langsung saja :

Step 1
buka  gambar  mas-mas random


dan  mas-mas random yang bakalan di pake nanti buat ganti wajah yang di atas


Step 2
seleksi wajah mas-mas random ke-2


Step 3
copy dan paste hasil seleksi tadi ke wajah mas-mas random pertama


 karena wajah mas-mas random yang pertama ini sedikit miring, jadi wajah mas-mas random ke-2 ini bisa di atur sedemikian rupa memakai free transform yang ada di menut edit atau tinggal tekan control T saja, sehingga nantinya akan sesuai.

step 4
klik add layer mask pada layar 1 yang ada di sini




step 5
pastikan foreground anda berwarna hitam dan background and berwarna putih, nah, disinilah inti dari trik ini, dengan menggunakan teknik masking, sekarang pilih brush tool dengan hardness 0%. Sapukan brush toolnya sampai nampak seperti ini ( di gambar ini, saya menurunkan opacity layer 1 untuk memudahkan melakukan sapuan brush tool, nanti setelah ini, bisa di ubah kembali opacity layer 1 menjadi 100%) :


step 6
hampir selesai, nah sekarang tinggal menyesuaikan warnanya
buka image - color balance dan atur warnanya sebagai berikut

cyan  = +5
magenta = +18
yellow = -27

sehingga hasilnya akan seperti ini, tarraaa :



yah, kalau banyak kekurangan, mungkin itu semua karena yang buat tutorial ini newbie juga, intinya hanya permainan masking dan color

ok, sekian


Selasa, 14 Februari 2012

pascal : pola segitiga II (kebalikkan dari yang pertama)

 Pola yang saya maksud kali ini adalah kebalikan dari pola yang pertama, yang sudah pernah saya bahas sebelumnya di sini.

ok, langsung saja, nanti bentuknya akan seperti ini :

*****
****
***
**
*

ini dia list scriptnya :


var a,b,c,d:integer;
begin
read(a);
c:=a;
for b:=1 to a do begin
for d:=1 to c do begin
write('*');
end;
writeln;
c:=c-1;
end;
end.

 Prinsipnya hampir sama seperti yang pertama, yang ada di sini. Yang beda hanya di sini variabel "c" nilainya sama dengan variabel "a" dan yang tadinya variabel "c" di operasikan seperti ini :

c:=c+1;

menjadi ini :

c:=c-1;


ok, sekian

pascal : program pola segitiga

   Pola segitiga yang saya maksudkan di sini adalah, jika saya menginput 5, maka outputnya adalah :

*
**
***
****
*****

ok, langsung saja, ini dia list scriptnya :

var a,b,c,d:integer;
begin
read(a);
c:=1;
for b:=1 to a do begin
for d:=1 to c do begin
write('*')
end;
writeln;
c:=c+1;
end;
end.

    Dalam program ini, saya memakai "for" berlapis agar output "*" ini, nantinya setelah eksekusi pertama, bisa langsung ter-ENTER, dan "*" barupun tercipata di baris baru.

seiring dengan itu, nilai variabel "c" terus beregenerasi akibat operasi

c:=c+1:

sampai for b=1 mencapai nilai "a"


ok, sekian







pascal : program pangkat

     Program pangkat yang saya maksudkan disini adalah mencari nilai  dari bilangan berpangkat n, contoh : nilai dari 2 pangkat 3 adalah 8 dan 3 pangkat 3 adalah 27. ok, langsung saja, ini dia scriptnya :


var a,bilangan,pangkat:integer;
begin
while not eof do begin
read(bilangan);
read(pangkat);
a:=bilangan;
for a:=2 to pangkat do begin
bilangan:=bilangan*a
end;
writeln(bilangan);
end;
end.

    2 pangkat 3 = 2 x 2 x 2. Karena dalam mencari nilai bilangan berpangkat membutuhkan perkalian berkali-kali, maka dalam script di atas di sisipkan LOOPING melalui sub-program "for", yaitu pada bagian

for a:=2 to pangkat do begin
bilangan:=bilangan*a
end;

 Dalam "for a:=2 to pangkat do begin", nilai "a" sengaja sama dengan 2, agar pada pangkat 1, sub-program "for" tidak di eksekusi, jadi 3 pangkat 1 nilainya tetap 3, BUKAN 9.

Dan variabel "bilangan" sengaja di duplikat ke variabel "a", agar setelah eksekusi pertama nilai variabel "bilangan" asli yang akan di kalikan secara kontinyu nanti tidak akan berubah, akibat eksekusi dari sub-program "for".

Dan setelah semua eksekusi selesai, maka di tulis nilai variabel "bilangan" yang baru, dan terakhir untuk fungsi

while not eof do begin 

Bisa dilihat di sini 


ok, sekian.




struktur program pascal

      Pascal merupakan bahasa pemrograman tingkat tinggi karena bahasanya yang terstruktur. di sebut bahasa tingkat tinggi karena bahasanya yang mudah di mengerti manusia. Ok, sudah cukup pengenalan singkatnya tentang pascal, sekarang kita akan membahas struktur dari bahasa pascal karena tadi sudah di sebutkan bahwa pascal merupakan bahasa yang terstruktur. Strukturnya seperti di bawah ini

program nama
variabel
begin
(statement)
end

Dalam prakteknya, elemen-elemen diatas harus sesuai urutannya, tapi beberapa elemen yang tidak di butuhkan bisa di hilangkan, sebenarnya elemen "nama program" tidak terlalu di butuhkan selain hanya untuk sekedar nama. sebagai contoh "program kosoong" di bawah ini yang beberapa elemen yang di atas di hilangkan


program kosong;
begin
end.

program di atas akan jalan bila di compile tapi tidak akan menghasilkan apa-apa.

ok, sekian.

Senin, 13 Februari 2012

pascal : program mencari faktorial

ok, karena ini entri PERDANA saya, jadi maaf kalo bahasanya sedikit kurang di mengerti.

ok langsung saja ke permasalahannya :

faktorial itu sebenarnya saya kurang mengerti definisinya tapi kurang lebih contohnya seperti ini :
5! = 5x4x3x2x1 dan 6! = 6x5x4x3x2x1, seperti itulah dia.

ini dia list scriptnya :


var a,b:integer;
begin
while not eof do begin
read(a);
b:=a;
while b>1 do begin
b:=b-1;
a:=a*b;
end;
writeln(a);
end;
end.

karena untuk mencari faktorial mengalinya harus berkali-kali maka harus menggunakan LOOPING. Looping yang saya maksud adalah di bagian "while" ke bawah sampai  bagian "end;".

b:=b-1;


a:=a*b;

perkalian bilangan ini akan dilakukan sampai NILAI B sudah tidak lagi lebih dari 1, dan setelah nilai B di kurangi 1x, maka nilai B yang sudah berubaha tadi  langsung di kalikan dengan nilai "a". kemudian kembali lagi ke atas ke bagian

b:=b-1;

kemudian turun kebawah ke bagian

a:=a*b

begitu seterusnya seperti yang sudah di jelaskan tadi sampai nilai B>1.

dan setelah sub-program "while" selesai maka program akan langsung menulis nilai "a" hasil dari eksekusi sub-program "while". oh, yah pada bagian paling atas setelah begin awal :

while not eof do begin

hanya untuk agar setelah memasukkan input dan di enter tidak akan langsung keluar dari programnya (biasanya setelah memasukkan semua input dan di enter programnya langsung keluar dan untuk melihat outputnya harus di compile ulang)

ok, sekian