Rabu, 13 Oktober 2010

SeDIKIT TENTANG C++

Pemrogaman C++


Sejarah C++

Berbicara tentang C++ dan C sebagai bahasa pendahulunya, C merupakan termasuk bahasa pemrograman tingkat menengah. Pencipta C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972.

C merupakan bahasa pemrograman terstruktur yang membagi program ke dalam sejumlah blok (sub program). Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan C mudah sekali dipindahkan dari satu jenis mesin ke mesin lain. Hal ini karena adanya standarisasi C yaitu ANSI (American National Standards Institute) yang menjadi acuan para pembuat compiler C. C++ diciptakan satu dekade setelah C. C++ diciptakan oleh Bjarne Stroustroup dari aboratorium Bell, AT&T pada tahun 1983. Pada awalnya C++ diberi nama “A better C”. Nama C++ sendiri iberinama oleh Rick Mascitti. Adapun tanda ++ berasal dari operator increment pada bahasa C

Keistimewaan C++ adalah karena bahasa ini mendukung OOP (Object Oriented Programming). Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrogram dalam membuat aplikasi. Kebanyakan pakar setuju bahwa OOP dan C++ mampu mengurangi kompleksitas terutama program yang terdiri dari 10.000 baris lebih, bahkan dapat meningkatkan produktivitas 2x lipat dari C, Pascal dan Basic.

Elemen Dasar C++

A. Identifier (Pengenal)

Pengenal adalah suatu nama yang biasa dipakai dalam pemrograman untuk menyatakan variabel, konstanta, tipe data, dan fungsi. Aturan untuk penulisan identifier sama dengan aturan dalam pascal, antara lain:

· Tidak boleh dimulai dengan karakter non huruf

· Tidak boleh ada spasi

· Tidak boleh menggunakan karakter-karakter ! @ # $ % ^ & * ( ) + ` - = { } [ ] : " ; ' < > ? , . / |

· Tidak boleh menggunakan reserved words yang ada dalam C++.

B. Tipe Data

Berikut ini tipe data yang ada dalam C++

1. Tipe data bilangan bulat:

· char

· int (integer)

· short (short integer)

· long (long integer)

2. Tipe data bilangan real:

  • float (real)
  • double (real double)
  • long double

3. Tipe data bilangan bulat:

  • unsigned char
  • unsigned int (integer)
  • unsigned short (short integer)
  • unsigned long (long integer)

C. Deklarasi Variabel

Seperti halnya Pascal, variabel yang digunakan dalam program harus dideklarasikan terlebih dahulu. Pengertian deklarasi di sini yaitu mengenalkan variabel ke program dan menentukan tipe datanya. Berikut ini contoh pendeklarasian variabel:

int bil; char aku,dia;

PEMROGMAN JAVA

PEMROGMAN JAVA
Apa sih Java itu ?

Bicara tentang Java pasti sudah tidak asing lagi bagi anda, apalagi bagi seorang RPL yang pasti mendapat pelajaran Java. Java adalah suatu teknologi di dunia software komputer, yang merupakan suatu bahasa pemrograman, dan sekaligus suatu platform. Java adalah salah satu bahasa pemrograman tingkat tinggi. Java akan lebih mudah dipelajari apabila anda telah mengenal C/C++.

Java merupakan bahasa pemrograman berorientasi objek yang merupakan paradigma pemrograman masa depan. Sebagai bahasa pemrograman Java dirancang menjadi handal dan aman. Java juga dirancang agar dapat dijalankan di semua platform. Perlu anda ketahui juga bahwa Java adalah bahasa pemrograman yang tingkat scuritinya lumayan aman. Itu terbukti dengan sebuah salah satu aplikasi database terbaik yaitu Oracle 8i/9iyang core-nya dibangun menggunakan bahasa pemrograman Java.


Sejarah Java

Java diciptakan oleh suatu tim yang dipimpin oleh Patrick Naughton dan James Gosling dalam suatu proyek dari Sun Microsystem yang memiliki kode Green dengan tujuan untuk menghasilkan bahasa komputer sederhana yang dapat dijalankan di peralatan sederhana dengan tidak terikat pada arsitekture tertentu. Mulanya disebut OAK, tetapi karena OAK sendiri merupakan nama dari bahasa pemrograman computer yang sudah ada. Maka Sun mengubahnya menjadi Java.

Sun kemudian meluncurkan browser dari Java yang disebut Hot Java yang mampu menjalankan applet. Setelah itu teknologi Java diadopsi oleh Netscape yang memungkinkan program Java dijalankan di browser Netscape yang kemudian diikuti Internet Explorer. Karena keunikanya dan kelebihanya, teknologi Java mulai menarik banyak vendor seperti IBM,Symantec, Inprise, dll.

Sun merilis versi awal Java secara resmi pada awal tahun 1996 yang kemudian terus berkembang hingga muncul JDK 1.1, kemudian JDK 1.2 yang mulai disebut sebagai versi Java2 karena banyak mengandung peningkatan dan perbaikan. Perubahan utama adalah adanyaSwing yang merupakan teknologi GUI (Graphical User Interface ) yang mampu menghasilkan window yang portabel.

Dan pada tahun 1998 – 1999 lahirlah teknologi J2EE ( Java 2 Enterprise Edition ) yang berbasis J2SE 3 yang diawali dengan servlet dan EJB kemudian diikuti JSP. Java juga menjadi lebih cepat populer di lingkungan server side dikarenakan kelebihanya di lingkungan network dan terdistribusi serta kemampuan multithreading. Sedangkan J2ME (Java 2 Micro Edition) dapat menghasilkan aplikasi mobile baik games maupun software yang dapat dijalankan di peralatan mobile seperti ponsel.


2. Fitur – Fitur Java yang Menarik

Beberapa fitur yang ditawarkan Java API antara lain sebagai berikut :


a. Applet

Program Java yang dapat berjalan di atas browser, yang dapat membuat halaman HTML lebih dinamis dan menarik.


b. Java Networking

Sekumpulan API (Application Programming Interface) yang menyediakan fungsi - fungsi untuk aplikasi – aplikasi jaringan, seperti penyediaan akses untuk TCP, UDP, IP Adrress dan URL. Tetapi Java Networking tidak menyediakan akses untuk ICMP dikarenakan alasan sekuriti dan pada kondidi umum hanya administrator ( root ) yang bisa memanfaatkan protokol ICMP.


c. Java Database Connectivity (JDBC)

JDBC menyediakan sekumpulan API yang dapat digunakan untuk mengakses database seperti Oracle, MySQL, PostgreSQL, Microsoft SQL Server.



d. Java Security

Java Security menyediakan sekumpulan API untuk mengatur security dari aplikasi Java baik secara high level atau low level, seperti public/private key management dan certificates.


e. Java Swing

Java Swing menyediakan sekumpulan API untuk membangun aplikasi – aplikasi GUI (Graphical User Interface) dan model GUI yang diinginkan bisa bermacam – macam, bisa model Java, model Motif/CDE atau model yang dependent terhadap platform yang digunakan.


f. Java RMI

Java RMI menyediakan sekumpulan API untuk membangun aplikasi – aplikasi Java yang mirip dengan model RPC (Remote 4 Procedure Call) jadi object - object Java bisa di call secara remote pada jaringan komputer.


g. Java 2D/3D

Java 2D/3D menyediakan sekumpulan API untuk membangun grafik – grafik 2D/3D yang menarik dan juga akses ke printer.


h. Java Server Pages

Berkembang dari Java Servlet yang digunakan untuk menggantikan aplikasi – aplikasi CGI, JSP (Java Server Pages) yang mirip ASP dan PHP merupakan alternatif terbaik untuk solusi aplikasi Internet.


i. JNI (Java Native Interface)

JNI menyediakan sekumpulan API yang digunakan untuk mengakses fungsi – fungsi pada library (*.dll atau *.so) yang dibuat dengan bahasa pemrograman yang lain seperti C,C++, dan Basic.


j. Java Sound

Java Sound menyediakan sekumpulan API untuk manipulasi sound.


k. Java IDL + CORBA

Java IDL (Interface Definition Language) menyediakan dukungan Java untuk implementasi CORBA (Common Object Request Broker) yang merupakan model distributed-Object untuk solusi aplikasi besar di dunia networking.

l. Java Card

Java Card utamanya digunakan untuk aplikasi – aplikasi pada smart card, yang sederhana wujudnya seperti SIM Card pada handphone.


m. JTAPI (Java Telephony API)

Java Telepony API menyediakan sekumpulan API untuk memanfaatkan devices – devices telepony, sehingga akan cocok untuk aplikasi – aplikasi CTI (Computer Telephony Integration) yang dibutuhkan seperti ACD (Automatic Call Distribution), PCPBX dan lainnya.

Siapa Mau Netbook 1 Jutaan ?

Siapa yang mau beli netbook murah ? Biasanya paling sedikit kita harus merogoh kocek sebesar Rp. 2,5-3 juta-an. Harga notebook second pun belum dapat 1 juta, kisarannya 1,5-2 jutaan. Itu pun processor-nya bukan keluaran terbaru.

Tapi kini ada kabar gembira. Bagi yang kantongnya pas-pasan, bisa merasakan enaknya punya netbook baru. Ada sebuah perusahaan di Indonesia yang kini sudah bisa menghadirkan netbook dengan harga semurah itu.


Tidak diperlukan syarat harus membeli ribuan atau jutaan unit seperti halnya OLPC (One Laptop Per Child) . Orang bisa membeli satu unit dengan harga sekitar 1 jutaan. Notebook apakah yang dimaksud ?

Adalah PT Elevo Technologies Indonesia (ETI) , sebuah perusahaan pertama di Indonesia yang akan memelopori kehadiran laptop untuk konsumen di Indonesia dengan harga hanya Rp 1 jutaan saja. Ada dua tipe netbook yang ditawarkan sudah dirilis bulan Agustus 2010 kemarin, yakni Netbook Elevo R7 (layar 7 inci) dibanderol dengan harga Rp 998.000 dan Elevo R10 (layar 10 inci) dilego dengan harga Rp 1.398.000.

Elevo R7 menggunakan layar 7 inci (800 x 480), Prosesor ARM9 533Mhz, Wifi 802.11b/g, OS Original Windows CE 6.0 atau Android, Memory 128 MB, 2GB Nand Flash, 2-in-1 SD Card, 2 USB Port, Keyboard, Touch Pad, USB to VGA (Optional), USB to Ethernet (Optional).

Sedangkan R10 menggunakan layar 10 inci (1024 x 600), Prosesor ARM9 533Mhz, Wifi 802.11b/g, OS Original Windows CE 6.0 atau Android, Memory 128 MB, 2GB Nand Flash, 2-in-1 SD Card, 2 USB Port, Chiclet Keyboard, Touch Pad, Built-in Camera 1,3 Mpx, Built in Stereo Speaker, Earphone Jack in/out, Ethernet LAN RJ 45, USB to VGA (Optional).

Jadi storage yang digunakan bukanlah harddisk seperti netbook yang biasanya beredar. Produsen notebook tersebut mengakui, bahwa dengan harga semurah itu belum bisa memberikan kapasitas media penyimpan yang besar. Namun, bagi pengguna netbook yang menginginkan kapasitas media penyimpan yang lebih besar dapat menggunakan SD card sebagai tambahan.


Filosofi Bahasa Pemrograman Python

Sesuai janji saya di artikel terdahulu tentang Bahasa Pemrograman Python, sekarang saya akan melanjutkan membahas tentang filosofi bahasa pemrograman Python. Python merupakan bahasa pemrograman tingkat tinggi atau high-level programming language, seperti Java, Delphi, Visual Basic, C++, dan lainnya. Uniknya, Python bukanlah compiler, tetapi interpreter. Ada juga yang mengatakan Python adalah semi-compiler.

Sebenarnya, yang dilakukan Python adalah mengkompilasi kode program ke dalam kode yang disebut bytecode. Bytecode kemudian di-translate lagi ke dalam bahasa yang dimengerti oleh sistem untuk dijalankan. Hal ini menyebabkan Python bersifat portable dan cross-platform. Selain itu, Python juga open source.


Python merupakan pemrograman yang multi-paradigma. Artinya, kita dapat mengadopsi paradigma pemrograman yang sesuai dengan style (gaya) kita, misalnya object-oriented atau pemrograman terstruktur. Python didesain agar mudah dibaca, bahkan bisa dikatakan Python adalah bahasa pemrograman yang paling puitis! Untuk mendeskripsikan filosofi Python, bahkan dibuat The Zen of Python, yang walaupun dibuat dengan gaya humoris, tetapi memang menunjukkan filosofi yang dianut oleh Python, antara lain :

Beautiful is better than ugly...
Explicit is better than implicit...
Simple is better than complex...
Complex is better than complicated...
Flat is better than nested...
dan seterusnya....

Python juga digunakan sebagai embedded atau extension language untuk sebuah modul/aplikasi yang memerlukan interface pemrograman. Dalam hal ini kita dapat melihat kemiripannya dengan VBScript yang merupakan varian terbatas dari bahasa Visual Basic. Lebih jauh lagi, Python dilengkapi dengan library standard yang berisi modul-modul yang beragam, mulai dari cryptography, regular expression, GUI, XML, database, web browser, dan tentunya masih banyak lagi.

Inilah salah satu keunikan yang menjadi kelebihan Python, Python dapat di-implementasikan dalam lingkungan Java, yang dikenal dengan Jython. Artinya, kita dapat menulis program dengan Python dengan menggunakan library Java dan tentunya berjalan pada platform Java. Hal yang sama juga dilakukan IronPython, dimana kita dapat menuliskan program Python dan menggunakan library .NET.


Baca Lanjutannya: http://www.belajar-sendiri.com/2010/01/filosofi-bahasa-pemrograman-python.html#ixzz12FTUTZVF
Under Creative Commons License: Attribution Non-Commercial
Pengertian Algoritma dan Bahasa Pemrograman C++
Sebelum menuju ke Bahasa Pemrograman C++, alangkah baiknya kita pahami dulu apa itu Algoritma dan Bahasa Pemrograman.
Algoritma adalah suatu langkah-langkah yang disusun secara logis dan sistematis untuk penyelesaian suatu masalah.
Algoritma harus membutuhkan Bahasa Pemrograman. Sedangkan Bahasa Pemrograman adalah bahasa yang digunakan untuk menuliskan algoritma agar dapat dimengerti oleh komputer.

Bahasa Pemrograman ada banyak sekali, salah satunya Bahasa Pemrograman C atau C++.


* Bahasa C

Bahasa C merupakan salah satu bahasa yang popular digunakan dalam pemrograman. Pertama kali bahasa C dikembangkan oleh Dennis Ritchie di Bell Laboratories. Awalnya bahasa C hanya dapat dijalankan dalam System Operasi UNIX tetapi pada perkembangannya bahasa C sudah dapat digunakan dalam system operasi MS-DOS pada IBM. Bahasa C memiliki kemampuan yang sangat luas. Selain itu C memiliki kesederhanaan dalam ekspresinya dan kerampingan kodenya. Akan tetapi, C bukan merupakan bahasa yang terbaik karena bentuk bahasanya kurang jelas. Bagi pemula akan merasa sulit dalam menggunakan C tetapi nantinya bila terbiasa bahasa C merupakan bahasa yang menyenangkan untuk dipakai. Kesulitan yang diuraikan
bersifat sementara saja.

Penerjemah dalam bahasa pemrograman ada dua macam, yaitu interpreter dan compiler. Interpreter merupakan penerjemah yang menerjemahkan instruksi per baris setiap saat. Sementara compiler merupakan penerjemah yang menerjemahkan seluruh instruksi dalam program secara sekaligus dan kemudian menghasilkan executable file yang langsung bisa dijalankan. Bahasa C menggunakan compiler sebagai penerjemah.

* Bahasa C++

Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972, dan sekitar satu dekade setelahnya diciptakanlah C++, oleh Bjarne Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “ a better C “. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berasal dari operator increment pada bahasa C. Keistimewaan yang sangat berari dari C++ ini adalah karena bahasa ini mendukung Pemrograman Berorientasi Objek ( OOP / Object Oriented Programming).


Program C++ dapat ditulis dengan menggunakan berbagai editor teks, seperti EDIT (milik DOS), WordStar, SideKick, ataupun menggunakan editor bawaan dari kompiler. Program C++ biasa ditulis dengan nama ektensi .CPP (dari kata C Plus Plus). Agar program bisa dijalankan (dieksekusi), program harus dikompilasi terlebih dahulu dengan menggunakan kompiler C++.

Borland C++ dan Turbo C++ adalah contoh media editor sekaligus sebagai Compiler

Mengunci Folder dengan Password menggunakan SecureFolder

Secure FolderJika sebuah komputer Anda gunakan sendiri, Anda mungkin merasa aman dan tak usah khawatir data Anda pada komputer bisa dicuri atau dilihat oleh orang lain. Namun, mungkin berbeda dengan Anda yang menggunakan komputer dengan banyak user. Kemungkinan data Anda dilihat atau bahkan dicuri oleh orang lain, cukup besar. Oleh karena itu, timbul keinginanan untuk melindungi atau mengunci sebuah folder dengan password. Agar folder yang berisi data pribadi Anda tidak bisa dibuka dan dilihat isinya. Bagaimana caranya mengunci atau melindungi folder dengan password?

Ada sebuah solusi bagi Anda yang menginnginkan hal tersebut. Anda bisa melindungi (mengunci) folder dengan password menggunakan bantuan sebuah software. Salah satu software untuk mengunci folder dengan password adalah SecureFolder. Software ini sangat bagus dan cukup mudah digunakan untuk melindungi folder Anda agar tidak bisa dibuka oleh orang lain. Selain itu, SecureFolder juga tidak banyak membutuhkan ruang hard disk. SecureFolder bisa Anda gunanakan di Windows XP, Windows Vista maupun Windows 7.

Cara Menggunakan SecureFolder
Untuk melindungi sebuah folder dengan Secure Folder, Anda bisa menggunakan 2 (dua) cara yaitu melalui jendela software ini dan melalui konteks menu folder di Windows Explorer. Setelah Anda menginstall secure folder, pada saat pertama kali menjalankannya, Anda akan diminta untuk memasukkan password utama. Setelah password diset, maka SecuredFolder telah bisa digunakan untuk mengunci folder.

Set Password
Untuk mengunci sebuah folder dari jendela software, berikut langkah-langkahnya:

  1. Klik tombol Add.
  2. Lock Folder

  3. Pada jendela selanjutnya, pilih folder yang akan dikunci.
  4. Pilih Folder

  5. Lakukan 2 (dua) langkah tadi untuk menambahkan folder lainnya.

Sedangkan untuk membuka kunci (unlock) folder yang Anda masukkan tadi, berikan tanda cek (rumput) pada folder yang akan dibuka kuncinya, setelah itu klik tombol Unlock.

Untuk mengunci folder melalui Windows Explorer,caranya cukup mudah. Anda tinggal mengklik kanan folder yang akan dikunci. Setelah itu, pilih menu [Lock/Unlock] with SecureFolder.

Lock dari Windows Explorer
Sedangkan untuk membuka kunci terhadap folder tersebut, Anda tinggal melakukan langkah yang sama. Kemudian Anda akan diminta memasukkan password yang telah Anda set di atas tadi.

Sekina tips untuk mengunci folder dengan password menggunakan SecureFolder. Semoga bermanfaat dan selamat mencoba!

Tips Mempersingkat Waktu Shutdown pada Windows XP

Pada artikel Tips Mempercepat Proses Shutdown Windows 7 saya berjanji akan memposting juga tips mempersingkat waktu shutdown Windows XP. Di Windows 7, Anda hanya melakukan perubahan pada 1 (satu) value registry saja. Sedangkan di Windows XP, Anda mesti mengubah 2 (dua) value registry. Value registry yang akan kita ubah nilainya adalah HungAppTimeout dan WaitToKillAppTimeout.

HungAppTimeout dan WaitToKillAppTimeout fungsinya hampir sama yaitu berfungsi menentukan waktu yang dibutuhkan oleh sistem untuk menunggu sebuah process yang tidak merespon untuk berhenti (dalam satuan milidetik) ketika user melakukan log off atau shutdown. Semakin besar nilai value tersebut, maka makin lama juga waktu yang dibutuhkan sistem untuk menunggu sebuah process berhenti. Jadi, agar proses shutdown bisa dipercepat maka kedua value tersebut mesti dikurangi nilainya. Berikut langkah-langkah memperingkat proses shutdown pada Windows XP:

  1. Click Start » Run. Ketik regedit dan tekan Enter untuk membuka Registry Editor.
  2. Pada jendela Registry Editor, buka key HKEY_CURRENT_USER//ControlPanel//Desktop.
  3. Selanjutnya, disisi kanan jendela klik 2 (dua) kali value HungAppTimeout untuk mengubah nilainya. Secara default nilainya adalah 5000 (5 detik).
  4. HungAppTimeout

    Klik gambar untuk memperbesar

  5. Pada jendela Edit String yang muncul, ubah nilainya menjadi 1000 (1 detik) dan klik OK.
  6. Edit String - HungAppTimeout

  7. Masih dijendela Registry Editor dan pada key yang sama, klik 2 (dua) kali value WaitToKillAppTimeout di bawah key HungAppTimeout tadi. Secara default nilai dari key WaitToKillAppTimeout adalah 20000 (20 detik).
  8. Di jendela Edit String, ubah nilainya menjadi 2000 (2 detik).
  9. Edit String - WaitToKillAppTimeout

  10. Terakhir tutup jendela Registry Editor.

Tips mempersingkat waktu shutdown pada Windows XP akan mengurangi waktu yang dibutuhkan Windows XP untuk shutdown sekitar 22 detik. Namun, perlu Anda ketahui, ada banyak faktor lain yang memperlambat proses shutdown selain aplikasi yang hung (berhenti bekerja). Semaog abermanfaat dan selamat mencoba!

Artikel:Manajemen data pribadi dengan git

[draft artikel infolinux]

Artikel ini menjelaskan sistem manajemen (organisasi, sinkronisasi, backup) data berbasis git di Linux yang digunakan oleh penulis. Dengan sistem ini, bekerja di beberapa komputer dan netbook terpisah secara offline menjadi lebih mudah.

Daftar isi

Tentang git

Git adalah sistem kendali kode sumber (revision control system, atau version control system, atau VCS). Git pertama kali didesain dan dikoding oleh Bapak Linux sendiri, Linus Torvalds, tahun 2005 untuk menggantikan VCS komersial BitKeeper yang kala itu digunakan untuk mengatur kode sumber Linux. Karena tidak menemukan sistem lain yang lebih cepat untuk menangani kode sebesar kernel Linux, maka Linus menulis VCS sendiri. Karenanya, salah satu fitur utama git sejak awal adalah kecepatannya. Berbeda dari sistem kode sumber yang sudah terlebih dulu popular sebelumnya yaitu CVS dan Subversion, git tidak bersifat tersentralisasi melainkan terdistribusi. Artinya, setiap pengembang tidak hanya menyimpan working copy di komputer lokalnya, tapi juga menyimpan repositori, yang berisi sejarah lengkap perubahan. Sementara di sistem tersentralisasi, hanya ada satu repositori tunggal (umumnya di server yang dapat diakses oleh semua pengembang lewat jaringan).

Karena masing-masing pengembang memiliki repositori, maka komit dapat dilakukan secara offline di repositori lokal di komputer sendiri, tidak harus terhubung ke repositori sentral di jaringan. Saat ingin bertukar/mensinkronisasi hasil kerja dengan pengembang lainlah, baru kita terkonek ke jaringan dan melakukan merging atau patching.

Sistem manajemen data berbasis git

Git tidak hanya bisa digunakan oleh pemrogram untuk mengatur kode sumber program, melainkan juga oleh "pemakai biasa" untuk mengatur berbagai jenis data lain. Karena kecepatannya, tingkat kompresi/kompaksitas data yang bagus (dibandingkan VCS lain), akses mudah menggunakan command line (tidak harus client/server), dan penyimpanan yang murni berbasis file (tidak menggunakan sistem database/SQL) maka git popular dijadikan basis untuk sistem backup, contohnya oleh program gibak, bup, eigenclass.

Pada artikel ini, penulis akan menjelaskan sistem sendiri berbasis git yang sudah digunakan sekitar hampir setahun terakhir ini, untuk menyimpan semua data pribadi di komputer (terkecuali data biner yang besar-besar seperti file video/musik dan program/imej CD/DVD). Sistem ini cukup sederhana, hanya menggunakan git dan beberapa skrip Perl yang pendek. Dapat Anda adopsi atau jadikan dasar untuk mengembangkan sistem sendiri.

Persyaratan

Artikel ini mengasumsikan Anda sudah familiar dengan dasar-dasar penggunaan VCS (contohnya CVS atau Subversion), juga cukup nyaman bekerja lewat shell command line. Jika belum, ada banyak artikel tutorial di web/majalah yang dapat Anda jadikan acuan terlebih dulu. Anda juga bisa melihat manpage gittutorial yang memaparkan dasar-dasar penggunaan git.

Sistem Linux yang Anda pakai juga sudah harus diinstali git (di Debian/Ubuntu ini dapat dilakukan dengan perintah sudo aptitude install git atau sudo apt-get install git-all). Semua distro modern seharusnya sudah menyediakan paket git.

Skrip-skrip Perl yang diberikan di artikel ini membutuhkan beberapa modul CPAN (dapat dilihat di baris-baris awal skrip yang diawali perintah use). Semua modul yang dibutuhkan dapat diinstal menggunakan perintah cpan lalu mengetikkan notest install NAMA_MODULE atau install NAMA_MODUL. Jika Anda mengalami kesulitan menjalankan skrip Perl atau menginstal modul CPAN, silakan menghubungi penulis. Anda juga bisa bertanya ke milis id-perl@yahoogroups.com, http://groups.yahoo.gom/group/id-perl.

Setelah Anda mengundah skrip-skrip Perl yang diperlukan (lihat bagian Link), lakukan chmod +x dan taruhlah di lokasi yang tercantum dalam PATH Anda (misalnya di /usr/bin, atau di ~/bin jika direktori itu tercantum dalam PATH).

Latar belakang/kebutuhan

Saya bekerja di dua komputer/netbook atau lebih. Ada komputer desktop kantor, lalu netbook yang sering dibawa-bawa keluar kota/rumah, serta komputer desktop rumah (walau sebenernya saat ini saya jarang memakai desktop di rumah). Di kemudian hari bisa saja jumlah device bertambah, karena kehadiran ponsel pintar/nettop/smartbook/entah apa lagi yang berbasis Linux.

Kadang-kadang saya lupa membawa netbook ke kantor, tapi ingin tetap bisa bekerja mengerjakan dokumen dan proyek-proyek pemrograman. Ketika kembali ke rumah, saya ingin bisa mentransfer pekerjaan dari kantor.

Namun, kadang-kadang saya juga lupa (atau malas) melakukan sinkronisasi. Sepulang dari rumah, saya kadang mengerjakan proyek yang sama (walaupun untuk hal yang berbeda). Selama bekerja dengan netbook di rumah/mal/dsb, saya tidak selalu bisa terhubung dengan komputer/server kantor. Dengan demikian, saya telah melakukan perubahan di dua atau lebih kopi data di tempat yang berbeda.

Data yang saya miliki juga kebanyakan berbentuk teks (kode sumber program, catatan/jurnal berbentuk .txt, file-file konfigurasi, dsb).

Kondisi-kondisi ini ideal untuk menggunakan VCS terdistribusi macam git.

Prinsip pengaturan

Data disimpan dalam beberapa repositori git, masing-masing repositori per projek. Contohnya saya memiliki repositori notes untuk menyimpan jurnal/catatan, settings untuk menyimpan berbagai setting sistem seperti key SSH, konfigurasi emacs, histori shell, dll. Repositori web untuk menyimpan file-file HTML, gambar, dan skrip untuk website pribadi. Ada juga repositori-repositori berprefiks perl-, misalnya perl-Data-Schema, perl-Language-Finance-Bank-ID-BCA untuk tiap proyek open source yang saya miliki. Selain itu terdapat repositori untuk urusan kantor (umumnya berisi file-file spreadsheet dan dokumen OpenOffice), dll. Saat ini total repositori git yang saya buat ada sekitar 60.

Semua repositori ini disimpan di sebuah direktori di bawah home, katakanlah di ~/repos. Banyak pengguna git yang membuat seluruh home direktorinya sebagai sebuah repositori tunggal, namun saya kurang menyukai cara ini dan lebih cenderung membuat banyak repositori kecil-kecil per proyek karena: 1) lebih mudah mempertukarkan data (misalnya: tiap repositori proyek open source Perl bisa saya unggah ke github.com dan dibagikan dengan pengembang lain, sementara repositori kantor hanya dibagikan dengan sesama staf kantor lain); 2) lebih cepat dalam sinkronisasi (tidak perlu tiap kali sinkronisasi semua data); 3) lebih mudah memeriksa histori (antarproyek tidak bercampur) dan histori juga lebih pendek; dan 4) tidak semua data di home ingin saya masukkan ke VCS, file-file hasil unduh seperti program atau musik/video, atau file-file log/backup, tidak perlu dilacak historinya dengan VCS maupun disinkronisasi dengan komputer lain.

Beberapa konfigurasi sistem Linux tentu saja harus ditaruh di lokasi spesifik. Karena itu, ~/.emacs saya jadikan link simbolik ke ~/repos/settings/.emacs. Demikian juga banyak file konfigurasi lain yang ingin saya bawa ke mana-mana. Untuk histori shell, agar tidak selalu konflik saat sinkronisasi, saya memiliki .bash_history-pc dan .bash_history-netbook yang saya link ke ~/.bash_history.

Membuat

Pertama-tama buatlah direktori repos:

$ mkdir ~/repos
$ cd ~/repos

Lalu untuk tiap proyek, buatlah atau taruhlah repositori git di bawah direktori ini. Contoh, di bawah saya membuat 3 repositori notes, web, dan settings. notes kosong, sementara web saya isi file-file yang dikopi dari /var/www/, dan settings saya isi dengan memindahkan beberapa file konfigurasi yang ada sebelumnya.

$ mkdir notes
$ cd notes
$ git init
$ cd ..
$ mkdir web
$ cd web
$ git init
$ cp -va /var/www/* .
$ git add .
$ git commit -am "impor pertama kali"
$ cd ..
$ mkdir settings
$ cd settings
$ git init
$ mv ~/.emacs .
$ mv ~/.emacs.d .
$ mv ~/.ssh .
$ mv ~/.mplayer .
$ mv ~/.bash_history .bash_history-pc
$ git add .emacs .emacs.d .ssh .mplayer .bash_history-pc
$ git commit -am "impor pertama kali"
$ cd
$ ln -s repos/settings/.emacs .
$ ln -s repos/settings/.emacs.d .
$ ln -s repos/settings/.mplayer .
$ ln -s repos/settings/.ssh .
$ ln -s repos/settings/.bash_history-pc .bash_history

Kini, setiap kali bekerja membuat perubahan/penambahan/penghapusan, jangan lupa untuk secara teratur melakukan komit untuk merekam sejarahnya dengan git. Contoh, saya ingin menambahkan file .gitignore:

$ cd ~/repos/web
$ echo '*~' > .gitignore
$ git add .gitignore
$ git commit -am "menambah .gitignore"
$ cd ~/repos/notes
$ echo '*~' > .gitignore
$ git add .gitignore
$ git commit -am "menambah .gitignore"
$ cd ~/repos/settings
$ echo '*~' > .gitignore
$ echo '.ssh/known_hosts' >> .gitignore
$ echo '.emacs.d/auto-save-list' >> .gitignore
$ git add .gitignore
$ git commit -am "menambah .gitignore"

Contoh lain, menghapus/mengganti/menyunting file HTML:

$ cd ~/repos/web
$ git mv november.html nopember.html; # rename
$ git rm -r gambar2009 ; # rm saja juga boleh
$ emacs index.html ; # edit file
$ git commit -am "ganti nama file, buang gambar tahun lalu"

Untuk melihat sejarah perubahan, Anda dapat menggunakan "git log". Untuk mengembalikan sebuah file yang salah sunting ke versi terkomit terakhir, gunakan "git checkout NAMAFILE". Silakan lihat manual git untuk semua perintah-perintah lain (yang mana jumlahnya banyak!).

Sinkronisasi antarkomputer

Dengan menyimpan semua repositori di lokasi yang tertentu, kini mudah melakukan otomasi untuk sinkronisasi/backup/dsb untuk seluruh repositori kita.

Skrip status-repos

Skrip status-repos digunakan untuk mengecek status ("git status") tiap repositori di ~/repos. Skrip ini digunakan oleh 2 skrip lainnya sync-repos dan backup-repos untuk memastikan status repositori telah "bersih" (semua pekerjaan telah dikomit). Walaupun sebetulnya tidak wajib bersih dan proses ini bisa dilewat, namun sinkronisasi repositori yang "kotor" cenderung lebih bermasalah.

Defaultnya, jika dijalankan, status-repos akan melaporkan repositori-repositori mana yang perlu komit, atau mengandung file yang belum ditambahkan ke repositori, dsb. Jika semua sudah bersih, tidak ada output. Untuk meningkatkan verbositas output, gunakan:

$ sync-repos --log_level=DEBUG

Skrip sync-repos

Skrip sync-repos berguna untuk mensinkronisasikan semua repositori git yang ada di ~/repos ke tempat lain. Pada intinya, yang dilakukan adalah melakukan "git pull" untuk setiap branch dari setiap repositori. Jika di lokasi tujuan repositori belum ada, terlebih dulu dikopi dengan rsync. Jika di repositori tujuan branch belum ada, akan dibuat dulu dengan "git branch NAMABRANCH".

Untuk mensinkronisasikan kerjaan dari netbook ke PC misalnya, yang saya lakukan biasanya adalah melakukan mount dengan sshfs di netbook:

$ sshfs steven@pc:/home ~/home-pc
$ sync-repos --dest=/home/home-pc/repos --log_level=INFO --delete
$ fusermount -u ~/home-pc

Jika terjadi konflik, maka skrip sync-repos akan berhenti dan memberi kesempatan pada kita untuk menyelesaikan dulu konfliknya dengan git. Setelah itu silakan ulangi menjalankan skrip sync-repos.

Skrip backup-repos

Skrip terakhir, backup-repos, dapat dipakai untuk membackup ~/repos ke tempat lain, seperti flashdisk atau harddisk portabel. Sebetulnya ~/repos dapat juga dikopi/rsync secara langsung, namun skrip ini hanya mengkopi .git/ dari tiap repositori, karena direktori .git sudah berisi semua sejarah perubahan maupun versi terakhir dari tiap file/direktori. Ini mengirit tempat (penting karena flashdisk umumnya saat ini hanya berukuran 4-16GB).

Jika suatu saat harus melakukan restore dari backup, kita tinggal melakukan kopi/rsync dari backup kembali ke ~/repos, lalu di tiap repositori git mengetikkan:

$ cd ~/repos/notes
$ git checkout .
# dst.

untuk merestore kembali file-file dari .git/ di tiap repositori.

Cara Mengakses Partisi Linux Melalui Windows


Paragon ExtBrowserSaya yakin banyak pengguna komputer yang menggunakan lebih dari satu operating system (OS) pada komputernya. Contohnya, satu Windows dan satu lagi Linux. Dan saya juga yakin bagi Anda pengguna OS dengan platform berbeda tersebut pasti mengetahui jika format partisi kedua system tadi berbeda. Windows menggunakan partis berformat FAT atau NTFS, sedangkan Linux menggunakan EXT. Seperti yang Anda ketahui, Linux mampu mengenali partisi yang berformat NTFS ataupun FAT. Sebaliknya, Windows sampai saat ini belum mampu mengenali partisi berformat EXT. Lalu bagaimana caranya agar Anda bisa mengakses file-file Anda yang berada di partisi Linux melalui OS Windows? Misalnya Anda ingin menginstall sebuah program Windows yang kebetulan file setup-nya Anda download dan tersimpan di partisi Linux.

Mungkin, Anda mesti merestart komputer dan masuk ke Linux. Kemudian meng-copy atau memindahkan file setup tadi ke partisi Windows. Setelah itu, restart lagi dan masuk ke Windows dan baru melakukan setup program yang saya maksud di atas tadi. Tentu hal ini sangat menyulitkan jika terjadi berulang-ulang.

Namun, kini ada cara yang lebih mudah agar Anda bisa mengakses partisi Linux (EXT) melalui Windows. Caranya adalah dengan menggunakan sebuah software dari Paragon yaitu Paragon ExtBrowser. Paragon ExtBrowser memudahkan Anda untuk mengelola file Anda yang ada di partsi Linux melalui OS Windows. Anda bisa melakukan proses copy file dan folder, rename, delete, melihat propertinya dan bahkan mengeksekusi (membuka) file tersebut jika format file didukung oleh Windows. Jadi Anda bisa memutar video atau mp3, membuka dokumen office atau teks, dan mengeksekusi sebuah setup program Windows yang Anda di partisi Linux tersebut.

Paragon ExtBrowser mudah digunakan. Anda cukup menginstallnya di Windows, kemudian Anda akan menemukan sebuah drive baru pada Windows Explorer. Drive baru ini bernama ExtFS Drive. Untuk mengakses partisi Linux, Anda cukup melakukan double klik pada drive baru tersebut. Sama seperti mengakses drive Windows.

Partisi Ext di Windows Explorer
Anda juga bisa melakukan hal yang sama dengan yang Anda lakukan di Windows untuk mengelola file-file dan folder-folder di drive Linux. Seperti membuka folder, membuka file, meng-copy, rename atau delete.

Mengelola File di Partisi Ext
Bagaimana? Cukup mudah bukan cara mengakses partisi Linux melalui Windows? Silahkan download Paragon ExtBrowser melalui link diakhir artikel. Paragon ExtBrowser adalah freeware. Anda tidak perlu membayar untuk dapat menggunakan software ini. Yang hanya perlu Anda lakukan adalah melengkapi sebuah form pada website Paragon dengan Nama, alamat email, negara, telefon, dan memilih bahasa program ExtBrowser ini. Setelah Anda men-submit data tersebut, pihak Paragon akan mengirimkan sebuah email yang berisi link download Paragon ExtBrowser ke alamat email yang Anda gunakan tadi.

Lebih dekat dengan virus Komputer

Apakah anda pernah mengalami masalah dengan computer/laptop anda gara-gara VIRUS? Ya mungkin buat yang baru di dunia IT belum terlalu mengenal apa itu Virus komputer,mungkin anda hanya tau yang namanya virus computer itu akan merusak software PC anda? semakin banyaknya macam-macam jenis virus semakin banyak pula Anti virus yang di bisa anda dapatkan,karena hanya dengan itu cara ampuh dan jitu untuk melindungi PC/Laptop anda

dari virus,disini saya tidak akan membicarakan tentang anti virus tapi saya akan menulis tentang virus itu sendiri sesuai jenis judul di atas.

Latar Belakang

Tidak semua orang mengetahui cara kerja virus,fungsi virus dsb,,,oleh sebab itu saya akan mencoba menuliskan sejarah,fungsi,jenis,dan cara penanggulangan apabila PC/Laptop anda sudah terinfeksi oleh virus.

Permasalahan

Ada beberepa orang menganggap kalau virus computer itu tidak berbahaya dan hanya dengan cara men-Scan PC/laptop anda dengan anti virus yang paling update anda merasa aman menggunakan PC,disini saya hanya ingin mengingatkan saja kepada semuanya bahwa tidak ada salahnya lebih mengenal virus,karena dengan begitu anda tau bagaimana cara melindungi PC/Laptop anda dari Virus computer.

Pembahasan

ASAL MUASAL VIRUS

1949, John von Neumann, menggungkapkan ” teori self altering automata ” yang merupakan hasil riset dari para ahli matematika.

1960, Lab BELL (AT&T), para ahli di lab BELL (AT&T) mencoba-coba teori yang diungkapkan oleh John von Neumann, dengan membuat suatu jenis permainan/game. Mereka membuat program yang dapat memperbanyak dirinya dan dapat menghancurkan program buatan lawan. Program yang mampu bertahan dan menghancurkan semua program lain, akan dianggap sebagai pemenangnya. Permainan ini akhirnya menjadi permainan favorit di tiap-tiap lab komputer. Tetapi, semakin lama program yang diciptakan makin berbahaya, sehingga mereka melakukan pengawasan dan pengamanan yang ketat terhadap permainan ini.

1980, Program-program tersebut yang akhirnya dikenal dengan sebutan “virus” ini berhasil menyebar keluar lingkungan laboratorium, dan mulai beredar di masyarakat umum.

PENGERTIAN VIRUS

Pertama kali istilah “virus” digunakan oleh Fred Cohen pada tahun 1984 di Amerika Serikat. Virus komputer dinamakan “virus” karena memiliki beberapa persamaan mendasar dengan virus pada istilah kedokteran (biological viruses).

Virus komputer bisa diartikan sebagai suatu program komputer biasa. Tetapi memiliki perbedaan yang mendasar dengan program-program lainnya,yaitu virus dibuat untuk menulari program-program lainnya, mengubah, memanipulasinya bahkan sampai merusaknya. Ada yang perlu dicatat disini, virus hanya akan menulari apabila program pemicu atau program yang telah terinfeksi tadi dieksekusi, disinilah perbedaannya dengan “worm”. Tulisan ini tidak akan bahas worm karena nanti akan mengalihkan kita dari pembahasan mengenai virus ini.

KRITERIA VIRUS

Suatu program dapat disebut sebagai suatu virus apabila memenuhi minimal 5 kriteria berikut :

1. Kemampuan untuk mendapatkan informasi

2. Kemampuan untuk memeriksa suatu file

3. Kemampuan untuk menggandakan diri dan menularkan diri

4. Kemampuan melakukan manipulasi

5. Kemampuan untuk menyembunyikan diri.

Sekarang akan coba dijelaskan dengan singkat apa yang dimaksud dari tiap-tiap kemampuan itu dan mengapa ini sangat diperlukan.

1. Kemampuan untuk mendapatkan informasi

Pada umumnya suatu virus memerlukan daftar nama-nama file yang ada dalam suatu directory. Untuk apa? Agar dia dapat memperoleh daftar file yang bisa dia tulari. Misalnya, virus makro yang akan menginfeksi semua file data MS Word, akan mencari daftar file berekstensi *.doc. Disinilah kemampuan mengumpulkan informasi itu diperlukan agar virus dapat membuat daftar/data semua file, lalu memilahnya dengan mencari file-file yang bisa ditulari. Biasanya data ini tercipta saat file yang tertular/terinfeksi virus atau file program virus itu sendiri dibuka oleh user. Sang virus akan segera melakukan pengumpulan data dan menaruhnya (biasanya) di RAM, sehingga apabila komputer dimatikan semua data hilang. Tetapi data-data ini akan tercipta kembali setiap kali virus itu diaktifkan. Biasanya data-data ini disimpan juga sebagai hidden file oleh virus tersebut.

2. Kemampuan memeriksa suatu program

Suatu virus juga harus bisa memeriksa suatu file yang akan ditulari, misalnya dia bertugas menulari program berekstensi *.doc, maka dia harus memeriksa apakah file dokumen tersebut telah terinfeksi ataupun belum, karena jika sudah, akan percuma menularinya lagi. Ini sangat berguna untuk meningkatkan kemampuan suatu virus dalam hal kecepatan menginfeksi suatu file/program. Yang umum dilakukan oleh virus adalah memiliki/memberi tanda pada file/program yang telah terinfeksi sehingga mudah untuk dikenali oleh virus tersebut. Contoh penandaan adalah misalnya memberikan suatu byte yang unik di setiap file yang telah terinfeksi.

3. Kemampuan untuk menggandakan diri

Kalo ini memang virus “bang-get”, maksudnya, tanpa kemampuan ini tak adalah virus. Inti dari virus adalah kemampuan mengandakan diri dengan cara menulari file lainnya. Suatu virus apabila telah menemukan calon korbannya maka ia akan mengenalinya dengan memeriksanya. Jika belum terinfeksi maka sang virus akan memulai aksinya penularan dengan cara menuliskan byte pengenal pada file tersebut, dan seterusnya mengcopikan/menulis kode objek virus diatas file sasaran. Beberapa cara umum yang dilakukan oleh virus untuk menulari/menggandakan dirinya adalah :

a. File yang akan ditulari dihapus atau diubah namanya. Kemudian diciptakan suatu file berisi program virus itu sendiri menggunakan nama file yang asli.

b. Program virus yang sudah dieksekusi/load ke memori akan langsung menulari file-file lain dengan cara menumpangi seluruh file yang ada.

4. Kemampuan mengadakan manipulasi

Rutin (routine) yang dimiliki suatu virus akan dijalankan setelah virus menulari suatu file. Isi dari suatu rutin ini dapat beragam mulai dari yang tidak berbahaya sampai yang melakukan perusakan. Rutin ini umumnya digunakan untuk memanipulasi file atau pun mempopulerkan pembuatnya ! Rutin ini memanfaatkan kemampuan dari suatu sistem operasi (Operating System), sehingga memiliki kemampuan yang sama dengan yang dimiliki sistem operasi. Misalnya :

a. Membuat gambar atau pesan pada monitor

b. Mengganti/mengubah-ubah label dari tiap file, direktori, atau label dari drive di PC

c. Memanipulasi file yang ditulari

d. Merusak file

e. Mengacaukan kerja printer, dsb

5. Kemampuan Menyembunyikan diri

Kemampuan menyembunyikan diri ini harus dimiliki oleh suatu virus agar semua pekerjaan baik dari awal sampai berhasilnya penularan dapat terlaksana.

Langkah langkah yang biasa dilakukan adalah:

- Program virus disimpan dalam bentuk kode mesin dan digabung dengan program lain yang dianggap berguna oleh pemakai

- Program virus diletakkan pada Boot Record atau track pada disk yang jarang diperhatikan oleh komputer itu sendiri

- Program virus dibuat sependek mungkin, dan hasil file yang diinfeksi tidak terlalu berubah ukurannya

- Virus tidak mengubah keterangan/informasi waktu suatu file

- dll

SIKLUS HIDUP

Siklus hidup virus secara umum, melalui 4 tahap:

o Dormant phase ( Fase Istirahat/Tidur )

Pada fase ini virus tidaklah aktif. Virus akan diaktifkan oleh suatu kondisi tertentu, semisal: tanggal yang ditentukan, kehadiran program lain/dieksekusinya program lain, dsb. Tidak semua virus melalui fase ini.

o Propagation phase ( Fase Penyebaran )

Pada fase ini virus akan mengkopikan dirinya kepada suatu program atau ke suatu tempat dari media storage (baik hardisk, RAM dsb). Setiap program yang terinfeksi akan menjadi hasil “kloning” virus tersebut (tergantung cara virus tersebut menginfeksinya).

o Trigerring phase ( Fase Aktif )

Di fase ini virus tersebut akan aktif dan hal ini juga di picu oleh beberapa kondisi seperti pada Dormant Phase.

o Execution phase ( Fase Eksekusi )

Pada fase inilah virus yang telah aktif tadi akan melakukan fungsinya. Seperti menghapus file, menampilkan pesan-pesan, dsb

JENIS – JENIS VIRUS

Untuk lebih mempertajam pengetahuan kita tentang virus, saya akan coba memberikan penjelasan tentang jenis-jenis virus yang sering berkeliaran di masyarakat umum.

1. Virus Makro

Jenis virus ini pasti sudah sangat sering kita dengar. Virus ini ditulis dengan bahasa pemrograman dari suatu aplikasi bukan dengan bahasa pemrograman dari suatu Operating System. Virus ini dapat berjalan apabila aplikasi pembentuknya dapat berjalan dengan baik. Sebagai contoh jika pada komputer mac dijalankan aplikasi Word, maka virus makro yang dibuat dari bahasa makro Word dapat bekerja pada komputer bersistem operasi Mac ini.

2. Virus Boot Sector

Virus Boot sector ini sudah umum sekali menyebar. Virus ini dalam menggandakan dirinya, akan memindahkan atau menggantikan boot sector asli dengan program booting virus. Sehingga saat terjadi booting maka virus akan diload ke memori dan selanjutnya virus akan mempunyai kemampuan mengendalikan hardware standar (contoh : monitor, printer dsb) dan dari memori ini pula virus akan menyebar ke seluruh drive yang ada dan yang terhubung ke komputer (contoh : floopy, drive lain selain drive c:).

3. Stealth Virus

Virus ini akan menguasai tabel interrupt pada DOS yang sering kita kenal dengan “Interrupt interceptor”. Virus ini berkemampuan untuk mengendalikan instruksi-instruksi level DOS dan biasanya mereka tersembunyi sesuai namanya baik secara penuh ataupun ukurannya.

4. Polymorphic Virus

Virus ini Dirancang buat mengecoh program antivirus, artinya virus ini selalu berusaha agar tidak dikenali oleh antivirus dengan cara selalu merubah rubah strukturnya setiap kali selesai menginfeksi file/program lain.

5. Virus File/Program

Virus ini menginfeksi file-file yang dapat dieksekusi langsung dari sistem operasi, baik itu file *.EXE, maupun *.COM biasanya juga hasil infeksi dari virus ini dapat diketahui dengan berubahnya ukuran file yang diserangnya.

6. Multi Partition Virus

Virus ini merupakan gabungan dari virus boot sector dan virus file. Artinya pekerjaan yang dilakukan berakibat dua, yaitu dia dapat menginfeksi file-file *.EXE atau *.COM dan juga menginfeksi boot sector.

BEBERAPA CARA PENYEBARAN VIRUS

Virus layaknya virus biologi harus memiliki media untuk dapat menyebar, virus komputer dapat menyebar ke berbagai komputer/mesin lainnya juga melalui berbagai media, diantaranya:

1. Disket, media storage R/W

Media penyimpanan eksternal dapat menjadi sasaran empuk bagi virus untuk dijadikan media. Baik sebagai tempat menetap ataupun sebagai media penyebarannya. Media yang bias melakukan operasi R/W (Read dan Write) sangat memungkinkan untuk ditumpangi virus dan dijadikan sebagai media penyebaran.

2. Jaringan ( LAN, WAN,dsb)

Hubungan antara beberapa computer secara langsung sangat memungkinkan suatu virus ikut berpindah saat terjadi pertukaran/pengeksekusian file yang mengandung virus.

3. WWW (internet)

Sangat mungkin suatu situs sengaja ditanamkan suatu “virus” yang akan menginfeksi komputer-komputer yang mengaksesnya.

4. Software yang Freeware, Shareware atau bahkan Bajakan

Banyak sekali virus yang sengaja ditanamkan dalam suatu program yang disebarluaskan baik secara gratis, atau trial version.

5. Attachment pada email, transfering file

Hampir semua jenis penyebaran virus akhir-akhir ini menggunakan email attachment dikarenakan semua pemakai jasa internet pastilah menggunakan email untuk berkomunikasi, file-file ini sengaja dibuat mencolok/menarik perhatian, bahkan seringkali memiliki ekstensi ganda pada penamaan filenya.

PENANGULANGANNYA

1. Langkah-Langkah untuk Pencegahan

Untuk pencegahan anda dapat melakukan beberapa langkah-langkah berikut :

o Gunakan antivirus yang anda percayai dengan update terbaru. Tidak perduli apapun merknya asalkan selalu diupdate, dan auto-protect dinyalakan maka komputer anda terlindungi.

o Selalu scanning semua media penyimpanan eksternal yang akan digunakan, mungkin hal ini agak merepotkan tetapi jika auto-protect antivirus anda bekerja maka prosedur ini dapat dilewatkan.

o Jika anda terhubung langsung ke Internet cobalah untuk mengkombinasikan antivirus anda dengan Firewall, Anti-spamming, dsb.

o Selalu waspada terhadap fle-file yang mencurigakan, contoh : file dengan 2 buah exstension atau file executable yang terlihat mencurigakan.

o Untuk software freeware + shareware, ada baiknya anda mengambilnya dari situs resminya.

o Semampunya hindari membeli barang bajakan, gunakan software-software open source.

2. Langkah-Langkah Apabila telah Terinfeksi

o Deteksi dan tentukan dimanakah kira-kira sumber virus tersebut apakah di disket, jaringan, email dsb. Jika anda terhubung ke jaringan maka ada baiknya anda mengisolasi komputer anda dulu (baik dengan melepas kabel atau mendisable sambungan internet dari control panel)

o Identifikasi dan klasifikasikan jenis virus apa yang menyerang pc anda, dengan cara:

o Gejala yang timbul, misal : pesan, file yang corrupt atau hilang dsb

o Scan dengan antivirus anda, jika anda terkena saat auto-protect berjalan berarti virus definition di dalam komputer anda tidak memiliki data virus ini, cobalah update secara manual atau mendownload virus definitionnya untuk kemudian anda install. Jika virus tersebut memblok usaha anda untuk mengupdate, maka upayakan untuk menggunakan media lain (komputer) dengan antivirus yang memiliki update terbaru.

o Bersihkan virus tersebut. Setelah anda berhasil mendeteksi dan mengenalinya maka usahakan segera untuk mencari removal atau cara-cara untuk memusnahkannya di situs-situs yang memberikan informasi perkembangan virus tersebut. Hal ini perlu dilakukan apabila antivirus dengan update terbaru anda tidak berhasil memusnahkannya.

o Langkah terburuk. Jika semua hal diatas tidak berhasil adalah memformat ulang komputer anda .

Penutup

Semoga pembahasan tentang Virus computer ini dapat berguna bagi anda pembaca ilmuti.com dan juga menjadikan anda lebih tahu dan lebih mengenal virus itu sendiri,sehingga anda dapat melindungi PC/Laptop kesayangan anda dari virus.

Algoritma Preemptive Shortest Job First

Preemptive Shortest

Job First (PSJF)


Nama Proses Saat Tiba Lama Proses
A
B
C
D
E
0
0
0
0
0
7
10
2
4
8

Gambar Kasus I – antrian lima proses dengan saat tiba = 0

Nama Proses Saat Tiba Lama Proses
A
B
C
D
E
0
1
8
2
5
7
10
2
4
8

Gambar Kasus II – antrian lima proses saat tiba berbeda

Preemptive Shortest Job First (PSJF) disebut juga sebagai teknik Proses Terpendek Dipertamakan Preempsi (PTDP). PSJF merupakan penjadwalan dengan prioritas dan dengan preempsi. Prioritas didasarkan kepada pendeknya sisa proses. Makin pendek sisa proses makin tinggi prioritasnya. Selanjutnya dengan ketentuan ini, ketika tiba, proses terpendek di bagian belakang antrian tidak saja berpindah ke bagian depan antrian, melainkan juga melalui preempsi, mengeluarkan proses yang pada saat itu berada di dalam proses (jika ada).

Digunakan dua langkah untuk melihat pelaksanaan penjadwalan ini. Langkah pertama: setiap kali, perhatikan saat proses tiba atau saat proses rampung. Langkah kedua: hitung lama sisa proses dari semua proses yang ada pada saat itu. Kalau ada proses dengan sisa proses yang lebih pendek dari sisa proses pada proses yang sedang dikerjakan, maka atas dasar preempsi, proses yang sedang dikerjakan itu dikeluarkan dari prosesor. Dan sebagai gantinya, proses dengan sisa terpendek itulah yang dikerjakan oleh prosesor.

Di sini muncul pertanyaan. Bagaimana jika proses yang tiba berikut itu memiliki lama proses yang sama dengan sisa proses pada proses yang sudah ada. Apakah preempsi terjadi juga? Jika lama proses atau sisa proses adalah sama, maka perlakuan diatur berdasarkan urutan antrian yang ada.

Agar lebih jelas, mari melihat contoh pada kasus II kita menemukan sekumpulan proses dengan tiba berbeda seperti tampak pada Gambar berikut.

Nama
Proses

Saat
Tiba

Lama
Proses

Saat
Mulai

Saat
Rampung

Waktu
Sia-Sia

Lama
Tanggap

A
B
D
E
C

0
1
2
5
8

7
10
4
8
2

0
21
7
13
11

7
31
11
21
13

0
20
5
8
3

7
30
9
16
5





Jumlah
Rerata

36
7,2

67
13,4

Gambar Unjuk kerja prosesor dengan algoritma PSJF untuk kasus II

Gambar Barisan saat algoritma PSJF untuk kasus II

Gambar Barisan saat algoritma PSJF untuk kasus II

Algoritma Penjadwalan

Shortest Job First


Nama Proses Saat Tiba Lama Proses
A
B
C
D
E
0
0
0
0
0
7
10
2
4
8

Gambar Kasus I – antrian lima proses dengan saat tiba = 0

Nama Proses Saat Tiba Lama Proses
A
B
C
D
E
0
1
8
2
5
7
10
2
4
8

Gambar Kasus II – antrian lima proses saat tiba berbeda


Disebut juga sebagai teknik Proses Terpendek Dipertamakan (PTD). SJF merupakan penjadwalan dengan prioritas tanpa preempsi. Dasar prioritas adalah pendeknya proses. Makin pendek proses makin tinggi prioritasnya.

Pada algoritma ini di ditempuh dua langkah. Langkah pertama: menentukan urutan prioritas berdasarkan pendeknya proses yang dilayani. Langkah kedua: menentukan pada saat tertentu, proses mana yang perlu dilayani oleh prosesor.

Sekalipun urutan prioritas proses sudah ditentukan pada langkah pertama, namun masih ada masalah yang dapat menghambat pelaksanaan proses menurut urutan itu. masalah itu adalah masalah saat tiba dari setiap proses. Kalau pada saat prosesor siap menerima proses, serta proses terpendek sudah tiba, maka proses terpendek itulah yang dikerjakan oleh prosesor sesuai dengan pengaturan pada langkah pertama. Tetapi kalau pada saat prosesor sudah siap menerima proses. Sedangkan proses yang memperoleh giliran pada saat itu belum juga tiba, maka kita perlu mempunyai ketentuan tentang proses mana yang akan dikerjakan oleh prosesor.

Ketentuan itu adalah: pada saat prosesor siap menerima proses sedangkan proses terpendek yang memperoleh giliran pada saat itu belum juga tiba, maka lihat semua proses yang sudah tiba pada saat itu. Proses yang sudah rampung diabaikan. Dari proses yang sudah tiba tapi belum diproses itu dipilih proses terpendek, dan proses terpendek itulah yang pada saat itu dikerjakan oleh prosesor.

Kalau dalam penentuan urutan proses ini, ditemukan dua atau lebih proses yang memiliki prioritas sama, maka pelayanan dilakukan berdasarkan urutan antrian diantara proses berprioritas sama itu.

Lihat contoh kasus I pada bagian atas postingan ini yang menunjukkan sekumpulan proses A, B, C, D, dan E yang mempunyai saat tiba yang sama yaitu 0. Namun lama proses mereka berbeda. Berdasarkan lama proses yang berbeda ini, pada langkah pertama, kita menyusun prioritas berdasarkan pendeknya proses, maka urutan proses berubah menjadi C, D, A, E, dan B. Karena semua proses sudah tiba, maka langkah kedua tidak mengalami kesulitan. Seperti tampak pada Gambar dibawah ini urutan antriannya berubah sehingga sesuai dengan urutan prioritas.

Tampak disini bahwa algoritma SJF menyebabkan rerata lama tanggap semua proses itu menjadi 14,6 satuan waktu. Rerata ini menjadi lebih singkat jika dibandingkan dengan rerata lama tanggap untuk penjadwalan FCFS.

Nama
Proses
Saat
Tiba
Lama
Proses
Saat
Mulai
Saat
Rampung
Waktu
Sia-Sia
Lama Tanggap
C
D
A
E
B
0
0
0
0
0
2
4
7
8
10
0
2
6
13
21
2
6
13
21
31
0
2
6
13
21
2
6
13
21
31




Jumlah
Rerata
42
8,4
73
14,6

Gambar Ujuk kerja prosesor dengan algoritma SJF untuk kasus I

Selanjutnya lihat contoh II untuk sekumpulan proses dengan saat tiba tidak sama seperti pada Gambar paling atas posting ini (kasus II) mula-mula kita menyusun urutan proses itu berdasarkan prioritas.

Dalam pelaksanaannya, kita mulai dari saat = 0. Pada saat = 0 ini, proses terpendek C belum tiba. Bahkan proses satu-satunya yang sudah tiba adalah proses A. Karena itu pada saat = 0, proses A yang dikerjakan. Untuk lebih jelasnya perhatikan barisan saat dibawah. Proses A selesai ketika saat = 7. Ketika itu proses yang telah tiba adalah proses B, D, dan E, dan yang terpendek dari keduanya adalah D, sehingga proses berikutnya adalah D. Ketika D selesai saat = 11, dan proses yang telah tiba dalam ready queue adalah B, C dan E. Dan yang terpendek dari ketiganya adalah C, maka C dikerjakan dahulu. Ketika C telah selesai diproses oleh CPU, saat = 13 berarti sisa proses yang menunggu adalah B dan E, dan yang terpendek dari keduanya adalah E, maka E didahulukan, setelah selesai barulah B diproses. Inilah perbedaan yang terjadi jika algoritma SJF diterapkan pada beberapa proses yang memiliki waktu tiba tidak sama.

Dengan demikian didapatkan bahwa A diproses mulai saat = 0 hingga 7, D mulai saat = 7 hingga 11, C mulai saat = 11 hingga 13, E mulai saat = 13 hingga 21, dan B mulai saat = 21 hingga 31.

Nama
Proses
Saat
Tiba
Lama
Proses
Saat
Mulai
Saat
Rampung
Waktu
Sia-Sia
Lama Tanggap
A
D
C
E
B
0
2
8
5
1
7
4
2
8
10
0
7
11
13
21
7
11
13
21
31
0
5
3
8
20
7
9
5
16
30




Jumlah
Rerata
36
7,2
67
13,4

Gambar Ujuk kerja prosesor dengan algoritma SJF untuk kasus II

GAMBAR Algoritma Shortest Job First

Gambar Barisan Saat Algoritma Shortest Job First

Algotima Penjadwalan

First Come First Served


Nama Proses Saat Tiba Lama Proses
A
B
C
D
E
0
0
0
0
0
7
10
2
4
8

Gambar Kasus I – antrian lima proses dengan saat tiba = 0

Nama Proses Saat Tiba Lama Proses
A
B
C
D
E
0
1
8
2
5
7
10
2
4
8

Gambar Kasus II – antrian lima proses saat tiba berbeda

Algoritma First Come First Served (FCFS) disebut juga sebagai teknik Pertama Tiba Pertama Dilayani (PTPD). FCFS merupakan penjadwalan tanpa prioritas dan tanpa preempsi (lihat posting penjadwalan cpu). Karena itu, proses ini serentak tersusun dalam antrian murni.

Pada FCFS, proses yang tiba lebih dahulu akan dilayani lebih dahulu. Kalau proses itu tiba pada waktu yang sama, maka pelayanan dilakukan berdasarkan urutan mereka pada antrian. Tidak menjadi soal apakah waktu proses mereka singkat atau lama. Untuk dapat dilayani oleh prosesor, proses di antrian belakang harus menunggu sampai semua proses di depannya rampung dilaksanakan.

Kita dapat langsung memasukkan proses ini ke dalam tabel proses pada kerja prosesor. Pada contoh kasus I, proses B hanya dapat dilaksanakan setelah proses A rampung dilaksanakan. Proses C hanya dapat dilaksanakan setelah proses B rampung dilaksanakan. Demikian seterusnya sehingga didapatkan nilai seperti pada tabel Gambar berikut.

Nama
Proses
Saat
Tiba
Lama
Proses
Saat
Mulai
Saat
Rampung
Waktu
Sia-Sia
Lama Tanggap
A
B
C
D
E
0
0
0
0
0
7
10
2
4
8
0
7
17
19
23
7
17
19
23
31
0
7
17
19
23
7
17
19
23
31




Jumlah
Rerata
66
13,2
97
19,4

Gambar Ujuk kerja prosesor dengan algoritma FCFS untuk kasus I

Tampak di sini bahwa rerata lama tanggap adalah 19,4 satuan waktu. Nilai ini cukup besar dibandingkan dengan lama proses dari masing-masing proses itu. Berikut ilustrasi untuk contoh kasus kedua .

Nama
Proses
Saat
Tiba
Lama
Proses
Saat
Mulai
Saat
Rampung
Waktu Sia-Sia Lama Tanggap
A
B
D
E
C
0
1
2
5
8
7
10
4
8
2
0
7
17
21
29
7
17
21
29
31
0
6
15
16
21
7
16
19
24
23




Jumlah
Rerata
58
11,6
89
17,8

Gambar Ujuk kerja prosesor dengan algoritma FCFS untuk kasus II

Pada Gambar Contoh kasus di bagian atas postingan ini, proses belum terurut sesuai waktu tibanya, oleh karena itu setelah diurut berdasarkan waktu tibanya, maka antrian menjadi A, B, D, E, dan C. Tampak di sini bahwa rerata lama tanggap adalah 17,8 satuan waktu. Nilai ini masih cukup besar dibandingkan dengan lama proses dari masing-masing proses tetapi masih lebih kecil dari rerata lama tanggap untuk kasus I. Perbedaan dengan contoh pertama terletak pada perhitungan lama tanggap. Kalau pada contoh pertama, lama tanggap sama dengan saat rampung, maka di sini mereka tidak sama karena saat tiba proses tidaklah sama.

Kedua contoh ini menunjukkan bahwa lama tanggap sangat dipengaruhi oleh lama proses pada proses yang terletak di bagian depan antrian. Jika lama proses pada proses di bagian depan antrian itu besar, maka proses dengan lama proses yang singkat di bagian belakang antrian, tetap harus lama menunggu, sebelum mereka dapat dilayani oleh prosesor. Itu sebabnya penjadwalan FCFS ini kurang menguntungkan bagi keseluruhan pelayanan.

Salah satu cara untuk mengatasi hal itu adalah melalui prioritas. Proses dengan lama proses yang singkat memperoleh prioritas untuk didahulukan ke prosesor. Makin singkat masa prosesnya, makin cepat proses itu dilayani oleh prosesor. Penjadwalan ini dikenal sebagai Proses Terpendek Dipertamakan (PTD)