Jika sendiri janganlah merasa sepi,, ada Allah yang sedang mengawasi.. Jika sedih janganlah kau pendam dalam hati,, ada Allah tempat berbagi.. Jika susah janganlah merasa pilu,, ada Allah tempat mengadu.. Jika gagal janganlah berputus asa,, ada Allah tempat meminta.. Jika bahagia janganlah menjadi lupa,, ada Allah tempat memuja.. Ingatlah Allah selalu,, ukirkan namaNya di dalam hatimu..
Dalam Pascal dikenal tiga macam perintah (statement) perulangan, yaitu statement for…do,
repeat…until dan while…do. Perulangan for…do adalah perulangan dengan penghitung (counter),
perulangan repeat…until adalah perulangan dengan syarat akhir sedang perulangan while…do
adalah perulangan dengan syarat awal. ?
Perulangan For
Perulangan for digunakan ketika jumlah perulangan sudah diketahui secara pasti.
Ada 2 macam perulangan for, yaitu perulangan for positif dan perulangan for negatif.
contoh program #1:
uses wincrt;
var
i:integer;
begin
clrscr;
writeln('contoh program menggunakan looping for positif:');
for i:=1 to 10 do
begin
writeln(i);
end;
readln;
end.
perulangan repeat until
Perulangan repeat until sebaiknya digunakan ketika kita tidak mengetahui secara pasti berapa
jumlah perulangan yang diperlukan.
Struktur perulangan repeat until:
Repeat Statement-statement; Until kondisi;
Pada perulangan repeat until, kita tidak perlu menggunakan blok begin end, walaupun dalam
perulangan terdapat lebih dari satu statement.
contoh program #2:
uses wincrt;
var
pilih:char;
nilai:array [1..100] of integer;
begin
repeat
clrscr;
writeln('program menu: ');
writeln;
writeln('1. menu satu');
writeln('2. menu dua');
writeln('3. menu tiga');
writeln('x. keluar');
writeln;
write('masukkan pilihan anda: ');readln(pilih);
case pilih of
'1':writeln('menu satu dipilih');
'2':writeln('menu dua dipilih');
'3':writeln('menu tiga dipilih');
'x':write('untuk keluar, tekan ENTER..');
else writeln('sorry, only 1,2,3, or x that allowed!!!');
end;
readln;
until upcase(pilih)='X';
end.
Perulangan While Do
Perulangan while do agak mirip dengan repeat until, bedanya pada while do, pengecekan kondisi
dilakukan diawal. Efeknya adalah seandainya dari awal kondisi sudah tidak terpenuhi, maka
looping tidak akan pernah dieksekusi. Berbeda dengan perulangan repeat until, walaupun
kondisi tidak terpenuhi, tetapi proses looping tetap berjalan, walaupun hanya sekali saja. Oleh
karena itu, pada perulangan while do, penting sekali untuk melakukan inisialisasi nilai variabel.
Struktur perulangan while do:
While (kondisi) do Begin Statement-statement; End;
latihan:
Buatlah program untuk mencari nilai terbesar dari N bilangan. N dan bilangannya diinputkan oleh
user!
uses wincrt;
var
bilangan:array [1..100] of integer;
i,n,terbesar:integer;
begin
clrscr;
writeln('program mencari bilangan terbesar dari n bilangan');
writeln;
write('jumlah data: ');
readln(n);
for i:=1 to n do
begin
write('data ke-',i,': ');
readln(bilangan[i]);
end;
terbesar:=bilangan[i];
for i:=2 to n do
begin
if terbesar<bilangan[i] then terbesar:=bilangan[i];
end;
writeln('bilangan terbesar adalah: ',terbesar);
readln;
end.
download modul praktikum disini:
spesifikasi tugas:
membuat program untuk mengartikan nama huruf per hurufnya. program harus bisa menerima input yang terdiri lebih dari satu kata yang dipisahkan oleh spasi.
contoh input:
masukkan nama anda: hendro laksono
contoh output:
H: Healthy E: Effective N: Nervous D: Diligent R: Rajin O: Original L: Lincah A: Attractive K: Kind S: Smart O: Original N: Nervous O: Original
tugas dikumpul tanggal 2 april 2010. berupa hardcopy. yang harus dicantumkan adalah nama dan npm, serta source code program
beserta tampilan output programnya.
Program ini terinspirasi dari salah satu aplikasi di facebook, saya lupa namanya, yang fungsinya untuk mengartikan nama kita huruf demi huruf.
logika program ini sederhana, pertama kita menyiapkan sebuah file yang saya beri nama database.dat, file ini berisi daftar arti dari nama kita.
isi file database.dat:
Attractive Brave Clever Diligent Effective Fair Good Healthy Interest Jealous Kind Lincah Manis Nervous Original Pintar Quick Rajin Smart Tekun Urgent Vacant Worker Xtreme Youthfull Zeal
kemudian, isi dari file database.dat itu dibaca dan disimpan kedalam sebuah variabel array. kemudian program meminta input nama, lalu nama itu dipecah per hurufnya kemudian dicocokkan dengan data yang ada di database.dat, bila abjadnya sesuai, lalu dicetak ke layar, kecuali spasi tidak diartikan.
berikut ini adalah contoh output programnya:
masukkan nama anda: hendro laksono arti nama anda adalah: H: Healthy E: Effective N: Nervous D: Diligent R: Rajin O: Original L: Lincah A: Attractive K: Kind S: Smart O: Original N: Nervous O: Original
berikut ini adalah source code programnya:
#!usr/bin/perl -w
my $database_file="database.dat";
my @database;
my $nama;
my @nama;
my %alfabet=('A'=>0,'B'=>1,'C'=>2,'D'=>3,'E'=>4,'F'=>5,'G'=>6,'H'=>7,'I'=>8,'J'=>9,
'K'=>10,'L'=>11,'M'=>12,'N'=>13,'O'=>14,'P'=>15,'Q'=>16,'R'=>17,
'S'=>18,'T'=>19,'U'=>20,'V'=>21,'W'=>22,'X'=>23,'Y'=>24,'Z'=>25);
system("cls");
print "masukkan nama anda: ";
$nama=<STDIN>;
chomp $nama;
$nama=uc($nama);
@nama=split(//,$nama);
open(DATABASE_FILE,$database_file);
@database=<DATABASE_FILE>;
foreach $arti (@database)
{
chomp $arti;
}
print "arti nama anda adalah: \n";
foreach $abjad (@nama)
{
if($abjad ne " ")
{
print "$abjad: ";
print $database[$alfabet{$abjad}];
print "\n";
}
}
close(DATABASE_FILE);
Rencana awalnya modul praktikum 2 pemrograman pascal ini sudah bisa download hari rabu kemarin, namun karena belakangan ini saya agak malas, maka modul
praktikum ini baru selesai beberapa menit yang lalu,
tanpa perlu pikir panjang lagi, silahkan download melalui link dibawah ini:
praktikum kedua pemrograman pascal ini membahas mengenai seleksi kondisi if … then …, if … then … else …, dan case … of.
sebagai latihan, pelajari program dibawah ini:
uses wincrt;
var
x1,x2,a,b,c,d:real;
begin
clrscr;
writeln('Program Menghitung Akar Persamaan Kuadrat');
write('masukkan nilai a=');
readln(a);
write('masukkan nilai b=');
readln(b);
write('masukkan nilai c=');
readln(c);
d:=(b*b-4*a*c);
if d>0 then
begin
x1:=(-b+sqrt(d))/2*a;
x2:=(-b-sqrt(d))/2*a;
writeln('akar persamaan kuadratnya adalah ',x1:0:2,' dan ',x2:0:2);
end
else if d=0 then
begin
x1:=-b/2*a;
x2:=x1;
writeln('akar persamaan kuadratnya adalah ',x2:0:2);
end
else if d<0 then
writeln('Persamaan Kuadrat tersebut tidak memiliki akar real');
readln;
end.
Modul praktikum pemrograman pascal sudah bisa didownload, silahkan gunakan link dibawah ini:
sebagai latihan, anda dapat mencoba program untuk mencari keliling dan luas lingkaran dibawah ini:
program lingkaran;
uses crt;
const
phi=3.14;
type
bulat=integer;
pecahan=real;
var
radius:bulat;
luas, keliling:pecahan;
begin
clrscr;
writeln('program menghitung luas dan keliling lingkaran');
write('radius: ');readln(radius);
keliling:=2*phi*radius;
luas:=phi*sqr(radius);
writeln('keliling lingkaran: ',keliling:2:4);
writeln('luas lingkaran: ',luas:2:4);
readln;
end.
tambahan materi:
#include<iostream.h>
#include<conio.h>
#include<string.h>
void konversi_suhu(float derajat,char asal[15],char tujuan[15],float& hasil);
void main()
{
float derajat,hasil=-9999.0;
char asal[15];
char tujuan[15];
clrscr();
cout<<"derajat suhu: ";
cin>>derajat;
cout<<"dari: ";
cin>>asal;
cout<<"tujuan: ";
cin>>tujuan;
strlwr(asal);
strlwr(tujuan);
konversi_suhu(derajat,asal,tujuan,hasil);
if(hasil!=-9999.0) cout<<"hasil konversi: "<<hasil;
getch();
}
void konversi_suhu(float derajat,char asal[15],char tujuan[15],float& hasil)
{
if(strcmp(asal,"celcius")==0)
{
if(strcmp(tujuan,"celcius")==0) hasil=derajat;
else if(strcmp(tujuan,"reamur")==0) hasil=0.8*derajat;
else if(strcmp(tujuan,"fahrenheit")==0) hasil=1.8*derajat+32;
else if(strcmp(tujuan,"kelvin")==0) hasil=derajat+273;
else cout<<"maaf, anda salah input tujuan!"<<endl;
}
else if(strcmp(asal,"reamur")==0)
{
derajat=1.25*derajat;
asal="celcius";
konversi_suhu(derajat,asal,tujuan,hasil);
}
else if(strcmp(asal,"fahrenheit")==0)
{
derajat=(derajat-32)*(5.0/9.0);
asal="celcius";
konversi_suhu(derajat,asal,tujuan,hasil);
}
else if(strcmp(asal,"kelvin")==0)
{
derajat=derajat-273;
asal="celcius";
konversi_suhu(derajat,asal,tujuan,hasil);
}
else cout<<"maaf, anda salah input asal!"<<endl;
}
Pada kesempatan kali ini, saya mencoba untuk membandingkan 4 format kompresi yang populer, yaitu:
zip, rar, 7z, dan uha. Keempat format tersebut memiliki programnya masing-masing. Meskipun demikian program tersebut bisa saling mendukung format yang satu dan yang lainnya. Contohnya zip, programnya winzip, walaupun program yang lain juga mendukung file zip. Perlu dicatat bahwa zip adalah format kompresi yang paling populer, jika anda ingin mengirim file ke teman anda, tetapi tidak tahu apakah dia memiliki program untuk membaca file archive atau tidak, sebaiknya anda menggunakan format zip. Bukannya saya mencoba mempromosikan format zip, tetapi format zip memang memiliki dukungan yang palling banyak, platform yang mendukungnya tidak hanya windows, tetapi juga linux, mac osx, bahkan beberapa tipe hp sudah mendukung format zip. Untuk format yang lain, rar menggunakan winrar, 7z menggunakan 7-zip, serta uha menggunakan winuha/uharc. Sebagai tambahan, hanya 7-zip dan winuha yang merupakan freeware, winzip dan winrar adalah shareware.
Sebelum memulai tes perbandingan, ada baiknya anda menyiapkan keempat program tersebut, jika belum punya, anda dapat mendownload melalui link download dibawah ini:
Agar lebih familiar dengan program-program tersebut, anda baiknya anda perhatikan screenshot keempat program tersebut dibawah ini:
tampilan utama winzip pro 12
tampilan utama winrar
tampilan utama 7-zip
tampilan utama winuha
Gimana? Sudah pada liat kan? Ternyata interface keempat hampir sama. benar-benar kebetulan.
Saya anggap anda sudah bisa mengoperasikan program-program tersebut serta cara untuk membuat file archive. Disini saya hanya akan membandingkan tingkat kompresi masing-masing program untuk beberapa tipe file yang berbeda. Klo begitu, langsung saja kita lihat perbandingannya.
Perbandingan hasil kompresi file EXE:
keterangan:
Untuk kompresi file exe, dimenangkan oleh format UHA, dimana dengan program ini, file original sebesar 6.992 KB, dapat diciutkan menjadi hanya 2.215 KB saja. Peringkat kedua ditempati oleh format 7z, selanjutnya RAR dan terakhir Zip.
Perbandingan hasil kompresi file JPG:
keterangan:
Untuk kompresi file JPG ternyata dimenangkan oleh format ZIP, benar-benar diluar perkiraan. Nampaknya winzip versi terbaru memang dioptimalkan untuk mengompress file gambar (JPG). Untuk peringkat kedua ditempati oleh format UHA, yang pada perbandingan sebelumnya mendapat peringkat pertama, diikuti oleh format 7z dan format RAR.
Perbandingan hasil kompresi file DOC:
keterangan:
Untuk kompresi file Doc, kembali dimenangkan oleh format UHA dengan hanya 471 KB dari ukuran semula 495 KB. Dikuti oleh format RAR, format ZIP, dan yang mengejutkan format 7z diurutan terakhir.
Perbandingan hasil kompresi file PDF:
keterangan:
Lagi-lagi untuk kompresi file format pdf kembali dimenangkan oleh format UHA. Walaupun perbedaannya tidak signifikan dengan format kompresi yang lain. Hal ini dikarenakan format pdf sudah merupakan format terkompresi, sama halnya seperti file JPG dan file MP3.
Perbandingan hasil kompresi file MP3:
keterangan:
Hasil yang cukup mengejutkan dimana untuk kompresi file mp3 dimenangkan oleh format ZIP, sementara format UHA justru berada diurutan terakhir.
Perbandingan hasil kompresi file AVI:
keterangan:
Untuk tes yang terakhir, yaitu kompresi file avi, dimenangkan format 7z. diikuti oleh format ZIP, UHA, dan teakhir RAR.
Kesimpulan:
Dari 6 tes perbandingan dengan format yang berbeda-beda (exe, jpg, doc, pdf, mp3, avi) tidak ada satu pun format kompresi yang menang mutlak. Ini artinya format kompresi tertentu bagus untuk file tertentu saja. Walaupun secara keseluruhan tes perbandingan ini dimenangkan oleh format UHA dengan program winuha 2.0 RC1. Format UHA mengungguli format yang lainnya untuk tes kompresi file exe, doc, dan pdf, sedangkan untuk format JPG dan MP3 dimenangkan oleh format kompresi ZIP, dan tes yang terakhir, yaitu kompresi file avi (video), dimenangkan oleh format 7z. Walaupun format RAR tidak memenangi satupun, bukan berarti format RAR itu jelek. Karena setiap program memiliki keunggulannya masing-masing. Untuk hal kecepatan dalam proses kompresi, 7-zip dan winrar adalah yang tercepat, sementara winuha adalah yang terlama. Sebagai catatan penting, pada tes diatas saya menggunakan setting dengan tingkat kompresi terbaik, khusus untuk format zip, file hasil kompresi hanya dapat dibaca menggunakan program winzip pro 12, karena saya menggunakan algoritma terbaru yang hanya dimiliki oleh winzip tersebut, dan kemungkinan besar memang tidak dapat dibaca oleh winzip versi lama ataupun program kompresi lainnya.
Saran saya dalam memilih format kompresi:
jika file yang ingin dikompress ukurannya relatif kecil (kurang dari 10 MB) ada baiknya memilih format ZIP. Karena penghematan space harddisk tidak terlalu signifikan, sedangkan format zip memiliki support yang paling banyak, sehingga bisa dibaca oleh semua komputer.
Untuk ukuran file yang besar (lebih dari 100 MB) sebaiknya menggunakan format UHA. Karena format ini memiliki rasio kompresi tertinggi dibandingkan format yang lainnya. Mengenai masalah kompatibilitas, tenang saja, dengan winuha kita bisa juga membuat self extracting archive, sehingga tidak memerlukan program winuha lagi untuk mengextractnya.
Mungkin ini saja yang bisa saya sampaikan, jika terdapat kesalahan saya mohon maaf, semoga tulisan saya ini ada manfaatnya.
UPX??? Apaan tuch? Mungkin ada pembaca yang bertanya-tanya seperti itu. Karena itu saya akan membahas sedikit mengenai UPX. UPX atau Ultimate Packer for eXecutable adalah suatu program untuk melakukan kompresi terhadap file executable, dalam hal ini file berformat *.exe. UPX merupakan salah satu yang terbaik karena memiliki rasio kompresi yang tinggi jika dibandingkan program yang sejenis, seperti ASPack, dll.
Program seperti ini sering digunakan untuk mengecilkan ukuran file virus. Karena dengan kecilnya ukuran file, tentu saja memudahkan dalam proses penyebaran virus. kelebihan dari exe compressor adalah program tetap dapat berfungsi dengan baik, walaupun ukurannya telah dikecilkan, benar-benar ajaib!!!
Sejatinya UPX adalah program yang berjalan di lingkungan DOS, tetapi saat ini sudah ada versi GUI-nya, yaitu UPX GUI. Oya, ada satu lagi program yang meggunakan UPX sebagai engine-nya, yaitu darmal’s packer, program ini buatan orang indonesia loh…
Tanpa perlu banyak bicara langsung saja kita praktekan, let’s go !
Siapkan program UPX GUI-nya, klo belum punya, silahkan didownload disini: UPX GUI
Langkah-langkahnya:
File bernama lat3.ex~ adalah file original dengan ukuran 20 Kb, sedangkan file bernama lat3.exe adalah file hasil kompresi dengan ukuran 6,5 Kb. Dengan demikian rasio kompresinya mencapai 33 %. Luar biasa bukan?? Benar-benar suatu penghematan.
Demikianlah tutorial sederhana ini, semoga ada manfaatnya. Oya, ada sedikit catatan, tidak semua file exe bisa dikompress terutama file-file program yang sering kita gunakan, seperti word, dll. Kemungkinan file tersebut telah dikompress atau telah diproteksi sehingga tidak bisa dikompress menggunakan exe compressor. Secara otomatis program ini hanya bisa digunakan untuk mengecilkan ukuran program buatan kita sendiri. Misalkan yang kita buat menggunakan visual basic dan bahasa pemrograman lainnya.
pada postingan kali ini, saya akan memberi sedikit contoh tentang penggunaan break dan continue pada c++. perhatikan listing program dibawah ini:
#include<iostream.h>
#include<conio.h>
int main()
{
clrscr();
int i;
cout<<"contoh penggunaan break:"<<endl;
for(i=1;i<10;i++)
{
if(i==5)
{
cout<<"ketika i==5 proses looping berhenti."<<endl;
break;
}
cout<<i<<endl;
}
cout<<endl<<"contoh penggunaan continue:"<<endl;
for(i=1;i<10;i++)
{
if(i==5)
{
cout<<"ketika i==5 proses looping akan melompat ke looping selanjutnya."<<endl;
continue;
}
cout<<i<<endl;
}
getch();
return 0;
}