Rabu, 03 April 2013

JAVA

METHOD
1.Pengertian Method

Method dalam java
adalah suatu cara untuk memecah program menjadi beberapa bagian,sehingga ketika mengerjakan program tersebut bisa dilakukan pembagian tugas pada beberapaorang. Method menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat sertaberbagai operasi yang dapat dilakukan.

Berikut adalah contoh dari deklarasi method khas:
 

public double calculateAnswer (lebar sayap ganda, numberOfEngines int,
                               ganda panjang, grossTons ganda) {
     / / Melakukan perhitungan di sini
 }
Unsur-unsur yang hanya dibutuhkan dalam sebuah deklarasi method adalah kembali jenis metode, nama, sepasang tanda kurung, () , dan tubuh antara kawat gigi, {} . 
Lebih umum, deklarasi metode memiliki enam komponen, dalam rangka:
 

1.             Pengubah-seperti public , private , dan lain-lain Anda akan belajar tentang nanti.
2.             Kembali jenis-jenis data dari nilai dikembalikan oleh metode, atau void jika metode ini tidak mengembalikan nilai.
3.             Metode ini nama-aturan untuk nama field berlaku untuk nama metode juga, tetapi konvensi ini sedikit berbeda.
4.             Daftar parameter dalam kurung-daftar koma-delimited parameter input, didahului dengan jenis data mereka, tertutup oleh tanda kurung, () . Jika tidak ada parameter, Anda harus menggunakan tanda kurung kosong.
5.             Sebuah daftar-pengecualian dibahas kemudian.
6.             Tubuh metode, tertutup antara kawat gigi-kode metode, termasuk deklarasi variabel lokal, pergi di sini.
Pengubah, jenis kembali, dan parameter akan dibahas kemudian dalam pelajaran ini. Pengecualian dibahas dalam pelajaran berikutnya. 


Definisi: Dua komponen dari sebuah deklarasi method terdiri dari metode signature-nama metode dan jenis parameter. 


Tanda tangan dari metode yang dinyatakan di atas adalah: 
 calculateAnswer (double, int, ganda, ganda)
2.Penamaan Method
Meskipun nama metode dapat berupa identifier hukum, konvensi kode membatasi nama metode. Dengan konvensi, nama metode harus menjadi kata kerja dalam huruf kecil atau nama multi-kata yang dimulai dengan kata kerja dalam huruf kecil, diikuti dengan kata sifat, kata benda, dll Dalam beberapa kata nama, huruf pertama dari setiap kata kedua dan berikut harus dikapitalisasi. Berikut adalah beberapa contoh: 
 menjalankan
 runFast
 getBackground
 getFinalData
 compareTo
 setX
 isEmpty
Biasanya, metode memiliki nama unik di dalam kelasnya. Namun, metode mungkin memiliki nama yang sama dengan metode lain karena overloading method. 

3.Metode overloading
Bahasa pemrograman Java mendukung metode overloading, dan Jawa dapat membedakan antara metode dengan tanda tangan metode yang berbeda. Ini berarti bahwa metode dalam kelas dapat memiliki nama yang sama jika mereka memiliki daftar parameter yang berbeda (ada beberapa kualifikasi untuk ini yang akan dibahas dalam pelajaran berjudul "Antarmuka dan Warisan"). 
Misalkan Anda memiliki kelas yang dapat menggunakan kaligrafi untuk menarik berbagai jenis data (string, bilangan bulat, dan sebagainya) dan yang berisi metode untuk menggambar setiap jenis data. Hal ini rumit untuk menggunakan nama baru untuk setiap metode-misalnya,
 drawString , drawInteger , drawFloat , dan sebagainya. Dalam bahasa pemrograman Java, Anda dapat menggunakan nama yang sama untuk semua metode menggambar tetapi lulus daftar argumen yang berbeda untuk setiap metode. Dengan demikian, kelas menggambar data mungkin menyatakan empat metode bernama draw , masing-masing memiliki daftar parameter yang berbeda. 
 public class DataArtist {
     ...
     public void draw (String s) {
         ...
     }
     public void draw (int i) {
         ...
     }
     public void draw (double f) {
         ...
     }
     public void draw (int i, f ganda) {
         ...
     }
 }
Metode kelebihan beban dibedakan dengan jumlah dan jenis argumen dilewatkan ke metode. Dalam sampel kode, draw(String s) dan draw(int i) metode yang berbeda dan unik karena mereka membutuhkan jenis argumen yang berbeda. 
Anda tidak dapat mendeklarasikan lebih dari satu metode dengan nama yang sama dan jumlah yang sama dan jenis argumen, karena compiler tidak dapat membedakan mereka.
 
Compiler tidak mempertimbangkan jenis kembali ketika membedakan metode, sehingga Anda tidak dapat mendeklarasikan dua metode dengan tanda tangan yang sama bahkan jika mereka memiliki jenis yang berbeda kembali.
 


Catatan: metode kelebihan beban harus digunakan hemat, karena mereka dapat membuat kode lebih sedikit dibaca.
PARAMETER
1.Pengertian Parameter

Parameter mengacu pada daftar variabel dalam deklarasi method Argumen adalah nilai-nilai aktual yang disahkan pada ketika metode dipanggil.. Ketika Anda memanggil sebuah metode, argumen yang digunakan harus sesuai parameter deklarasi dalam jenis dan ketertiban.
2.Parameter Jenis
Anda dapat menggunakan tipe data untuk parameter dari sebuah metode atau konstruktor. Ini termasuk tipe data primitif, seperti ganda, mengapung, dan bilangan bulat, seperti yang Anda lihat dalam computePayment metode, dan data referensi jenis, seperti obyek dan array. 
Berikut ini adalah contoh dari metode yang menerima sebuah array sebagai argumen. Dalam contoh ini, metode ini akan membuat baru
 Polygon objek dan menginisialisasi itu dari sebuah array Point objek (menganggap bahwa Point adalah kelas yang mewakili suatu x, y koordinat): 
 publik Polygon polygonFrom (Point [] sudut) {
     / Body / metode goes here
 }


Catatan: Bahasa pemrograman Java tidak membiarkan Anda melewati metode ke metode. Tapi Anda dapat melewati objek ke dalam metode dan kemudian memanggil metode objek.  


3.Parameter Nama
Ketika Anda mendeklarasikan parameter untuk metode atau konstruktor, Anda memberikan nama untuk parameter tersebut. Nama ini digunakan dalam metode tubuh untuk merujuk pada argumen berlalu-in. 
Nama parameter harus unik dalam jangkauannya. Tidak mungkin sama dengan nama parameter lain untuk metode yang sama atau konstruktor, dan tidak dapat menjadi nama variabel lokal dalam metode atau konstruktor.
 
Parameter dapat memiliki nama yang sama sebagai salah satu bidang kelas. Jika hal ini terjadi, parameter dikatakan
 bayangan lapangan. Bayangan bidang dapat membuat kode Anda sulit untuk membaca dan secara konvensional digunakan hanya dalam konstruktor dan metode yang mengatur bidang tertentu. Sebagai contoh, pertimbangkan hal berikut Circle kelas dan yang setOrigin metode: 
 public class Lingkaran {
     private int x, y, jari-jari;
     public void setOrigin (int x, int y) {
         ...
     }
 }
Para Circle kelas memiliki tiga bidang: x , y , dan radius . Para setOriginmetode memiliki dua parameter, masing-masing memiliki nama yang sama dengan salah satu bidang. Setiap parameter metode bayangan bidang yang saham namanya. Jadi dengan menggunakan nama-nama sederhana x atau y dalam tubuh metode mengacu pada parameter, tidak ke lapangan. Untuk mengakses lapangan, Anda harus menggunakan nama yang memenuhi syarat. Hal ini akan dibahas kemudian dalam pelajaran ini di dalam bagian berjudul "Menggunakan this Kata Kunci. "


Ref :
 docs.oracle.com/javase/tutorial/java/javaOO/methods.html
Tugas Pemrograman Java

  • ·         Buatlah tampilan contoh programnya sebagai berikut :



                  Listingnya adalah sebagai berikut (menggunakan method dan parameter) :



·  


  •      Buat class kalkulator , yang berisi method dan parameter :

              - pertambahan (int operan1, int operan2)
              - pengurangan (int operan1, int operan2)
                
          Listingnya sebagai berikut :





  • ·       Buatlah class kalkulatorberaksi  untuk mengeksekusi method dan menampilkan :



               Listing :

             Pada saat kalkulatorberaksi  di run, maka hasilnya adalah :







Terima Kasih,

Nama : Shindy Ayu Paramitha

Kelas  : 11.8I.B
NIM    : 11120800








Sumber Referensi :
http://www.scribd.com/doc/22011741/Object-Class-Method-Dalam-Java

Kamis, 11 Oktober 2012

Perintah - Perintah dalam Linux
 
 
ls : untuk me-list file / directories didalam sebuah folder, sama seperti fungsi dir pada windows/dos.
ls -al : menampilkan semua file, folder , dan atribut tiap file

cd : ubah folder
cd /usr/local/apache : menuju folder /usr/local/apache/
cd ~ : ke folder home anda
cd – : ke folder terahkir dimana kami masuki
cd .. : menuju folder atas satu tingkat

cat : tampilakan isi file pada layar
cat filename.txt : akan menampilkan isi file filename.txt pada layar anda

tail : mirip cat, tapi hanya membaca baris ahkir dari file
tail /var/log/messages : melihat 20 baris terahkir(default) pada file /var/log/messages
tail -f /var/log/messages : melihat secara simultan isi file ketika diupdate
tail -200 /var/log/messages : tampilakan 200 baris terahkir pada layar

more : mirip cat, tetapi membuka file satu per satu daripada sekaligus
more /etc/usrdomains : menelusuri file domain. tekan tombol ke halaman berikutnya, sampai berhenti

pico : editor yang mudah digunakan hampir mirip dengan "nano".
pico /home/elvis/public_html/index.html : edit halaman index untuk user Elvis' website

grep : mencari pola didalam file.
grep root /etc/passwd : menampilkan semua yang sesuai dengan kata "root" didalam file /etc/passwd
grep -v root /etc/passwd : tampilkan semua baris yang sesuai dengan kata "root"

touch : membuat sebuah file kosong
touch /home/elvis/public_html/404.html : membuat sebuah file kosong dengan nama 404.html didalam folder /home/elvis/public_html/

ln : membuat "links" antara file dan folder.
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf : ketika kamu edit /etc/httpd.conf file asli/original akan ikut terupdate, tapi ketika kamu hapus link file original tidak akan terhapus.

rm : hapus sebuah file.
rm filename.txt : hapus filename.txt, tanpa konfirmasi
rm -f filename.txt : hapus filename.txt, tanpa konfirmasi
rm -rf tmp/ : menghapus seluru isi didalam folder tmp, termasuk semua file, subdfolder. HATI – HATI UNTUK PENGUNAANNYA

last : tampilkan history siapa yang sudah login.
last -20 : tampilkan hanya 20 baris terahkir login
last -20 -a : tampilkan hanya 20 baris terahkir login, dengan hostname

w : menampilkan siapa yang saat ini sendang login dan mengunakan IP berapa.
netstat : menampilkan semua koneksi network saat ini.
netstat -an : menampilkan semua koneksi ke server, berisi source dan destination IP's dan ports
netstat -rn : menampilkan routing tabel untuk semua IP's bound ke server

file : upaya untuk menebak jenis file dengan melihat isi konten
file * : tampilkan semua list file didalam folder

du : tampilkan pengunaan hardisk.
du -sh : memapilkan ringkasan, yang dapat dimengerti dengan total pemakain disk dalam sebuah folder yang sedang terbuka directory , termasuk subfolder
du -sh * : sama seperti diatas, tapi tiap fil dan folder. sangat membantu ketika mencari file terbesar pada hardisk.

wc : hitung kata.
wc -l filename.txt : memberitahukan berapa banyak baris didalam file filename.txt

cp : copy sebuah file
cp filename filename.bak : copy filename dengan nama filename.bak
cp -a /home/elvis/new_design/* /home/elvis/public_html/ : copy semua file, dengan permissionnya dari satu folder ke folder lain

karakter KHUSUS pada LINUX.
Cara jalankan perintah linux secara bersamaan
Seperti ketika anda ingin menjalakan 2 perintah yang berbeda tapi ingin anda jalankan pada satu baris

* simbol | karakter ini disebut pipe, ini akan mengambil program yang satu dan "pipe" mengunakan program yang lainnya

> simbol ini artinya membuat file baru, mereplace isi apa saja yang sudah ada sebelumnya

>> simbol ini artinya menambahkan data ke sebuah file, dan membuat file baru jika belum ada,

< mengirim masukan dari sebuah file kedalam sebuah perintah

grep User /usr/local/apache/conf/httpd.conf | more
ini akan menampilkan semua baris yang sesuai dengan kata "User" dari file httpd.conf, hasil akan ditampilakan pada satu layar

last -a > /root/lastllogins.tmp
ini akan menampilkan semua histroy yang sudah login file ini disebut lastlogins.tmp dalam folder home root's

tail -10000 /var/log/exim_mainlog | grep domain.com | more
this will grab the last 10,000 lines from the file /var/log/exim_mainlog, find all occurances of domain.com (the period represents 'anything', comment it out with a
so it will be interpreted literally), then send it to your screen page by page

netstat -an | grep :80 | wc -l
shows how many active connections there are to apache (httpd runs on port 80)

mysqladmin processlist | wc -l
show how many current open connections there are to MySQL
We have covered a few common command that server administrators use, however we have not even scratched the surface.

http://guru-host.eu/client/knowledgebase/12/Basic-commands-and-their-usage.html



 

Struktur Organisasi Linux

 
1. ORGANISASI FILE

Sistem file pada Linux menyerupai pepohonan (tree), yaitu dimulai dari root, kemudian direktory dan sub direktory. Sistem file pada Linux diatur secara hierarkikal, yaitu dimulai dari root dengan symbol “/” seperti Gambar 3.1

Kita dapat menciptakan File dan Direktori mulai dari root ke bawah. Direktori adalah file khusus, yang berisi nama file dan INODE (Pointer yang menunjuk ke data / isi file tersebut). Secara logika, direktori dapat berisi File dan Direktori lagi (disebut juga Subdirektori).


 
2. DIREKTORI STANDAR


Setelah proses instalasi, Linux menciptakan system file yang baku, terdiri atas direktory sebagai berikut :






Direktori /etc
Berisi file yang berhubungan dengan administrasi system, maintanance script, konfigurasi, security dll. Hanya superuser yang boleh memodifikasi file yang berada di direktori ini. Subdirektori yang sering diakses pada direktori /etc antaran lain :
• Httpd, apache web server.
• Ppp, point to point protocol untuk koneksi ke internet.
• rc.d atau init.d , inisialisasi (startup) dan terminasi (shutdown) proses di Linux dengan konsep runlevel.
• cron.d rincian proses yang dieksekusi dengan menggunakan jadwal ( time dependent process)
• FILES, file security dan konfigurasi meliputi : passwd, hosts, shadow, ftpaccess, inetd.conf, lilo.conf, motd, printcap, profile, resolv.conf, sendmail.cf, syslog.conf, dhcp.conf, smb.conf, fstab.

Direktori /dev
Konsep Unix dan Linux adalah memperlakukan peralatan hardware sama seperti penanganan file. Setiap alat mempunyai nama file yang disimpan pada direktori /dev.
 
 

Direktori /proc
Direktori /proc adalah direktori yang dibuat diatas RAM (Random Access Memory) dengan system file yang diatur oleh kernel. /proc berisi nomor proses dari system dan nama driver yang aktif di system. Semua direktori berukuran 0 (kosong) kecuali file kcore dan self. Setiap nomor yang ada pada direktori tsb merepresentasikan PID (proses ID).


3. TIPE FILE

Pada Linux terdapat 6 buah tipe file yaitu :
• Ordinary file
• Direktori
• Block Device ( Peralatan I/O )
   Merupakan representasi dari peralatan hardware yang menggunakan transmisi data   per block (misalnya 1 KB block), seperti disk, floppy, tape.

• Character Device (Peralatan I/O)
   Merupakan representasi dari peralatan hardware yang menggunakan transmisi data     karakter per karakter, seperti terminal, modem, plotter dll.

• Named Pipe (FIFO)
   File yang digunakan secara intern oleh system operasi untuk komunikasi antar proses.
• Link File

4. PROPERTI FILE
File mempunyai beberapa atribut, antara lain :
• Tipe file : menentukan tipe dari file, yaitu :




• Ijin akses : menentukan hak user terhadap file ini.
• Jumlah link : jumlah link untuk file ini.
• Pemilik (owner) : menentukan siapa pemilik file ini
• Group : menentukan grup yang memiliki file ini
• Jumlah karakter : menentukan ukuran file dalam byte
• Waktu Pembuatan : menentukan kapan file terakhir dimodifikasi
• Nama File : menentukan nama file yang dimaksud

Contoh
-rw-rw-r-- 1 bin auth 1639 oct 16 13:00 /etc/passwd
Penjelasan
- : merupakan tipe
rw-rw-r-- : merupakan ijin akses
1 : jumlah link
bin : pemilik
auth : group
1639 : jumlah karakter
Oct 16 13:00 : waktu
/etc/passwd : Nama file

5. NAMA FILE
Nama file maksimal terdiri dari 255 karakter berupa alfanumerik dan beberapa karakter spesial yaitu garis bawah, titik, koma dan lainnya kecuali spasi dan karakter-karakter berikut :
“&” , “,”, “|” , “?” , “ ’ ” , “ “ “ , “(“ , “)” , “[“ , “]” , “$” , “<” , “>” , “{“ , “}” , “^” , “#” , “\” , “/”.
Linux membedakan huruf kecil dengan huruf besar (case sensitif),
Contoh nama file yang benar :
Abcde5434
3
Prog.txt
PROG.txt
Prog.txt, old
report_1-1, v2.0.1
5-01.web.html

6. SIMBOLIC LINK
Link adalah teknik untuk memberikan lebih dari satu nama file dengan data yang sama. Bila file asli dihapus, maka data yang baru juga terhapus. Format dari Link : ln fileAsli fileDuplikat

File duplikat disebut hard link dimana kedua file akan muncul identik (link count=2) Bila fileAsli atau fileDuplikat diubah, maka perubahan akan terjadi pada file lainnya.
Simbolic link diperlukan bila file tersebut di “Link” dengan direktori /file yang berada pada partisi yang berbeda. Tipe file menjadi 1 (link) dan file tersebut menunjuk ke tempat asal. Format :
ln –s /fullpath/fileAsli /FullPath/FileDuplikat
Pilihan –s (shortcut) merupakan bentuk soft link, simbolic link dapat dilakukan pada file yang tidak ada, sedangkan pada hard link tidak dimungkinkan. Perbedaan lain, simbolic link dapat dibentuk melalui media disk atau partisi yang berbeda dengan soft link, tetapi pada hard link terbatas pada partisi disk yang sama.

7. MELIHAT ISI FILE
Untuk melihat jenis file menggunakan format :
file filename(s)
isi file akan dilaporkan dengan deskripsi level tinggi seperti contoh berikut :
# file myprog.c letter.txt webpage.html
myproc.c : C program text
letter.txt : ASCII text
webpage.html : HTML document text

perintah ini dapat digunakan secara luas untuk file yang kadang membingungkan, misalnya antara kode C++ dan java.


8. MENCARI FILE
Jika ingin melihat bagaimana pohon direktori dapat digunakan perintah
• Find
Format : find directory_name targetfile –print
Akan melihat file yang bernama targetfile (bisa berupa karakter wildcard)

• Which
Format : which command
Untuk mengetahui letak system utility

• Locate
Format : locate string
Akan mencari file pada semua direktori dengan lebih cepat dan ditampilkan dengan path yang penuh.


9. MENCARI TEXT PADA FILE
Untuk mencari text pada file digunakan perintah grep (General Regular Expression Print) dengan format perintah :
grep option pattern files
Grep akan mencari file yang bernama sesuai pattern yang diberikan dan akan menampilkan baris yang sesuai.

PERCOBAAN :
1. Login sebagai user
2. Bukalah Console Terminal (open terminal) dan lakukan percobaan-percobaan dibawah ini, dan perhatikan dan catat hasilnya.
3. selesaikan soal-soal latihan

Percobaan 1 : Direktori
1. Melihat direktori Home
# pwd
# echo #home

2. Melihat direktori aktual dan parent direktori
# pwd
# cd .
# pwd
# cd ..
# pwd
# cd

3. Membuat satu direktori, lebih dari satu direktori atau sub direktori
# pwd
# mkdir A B C A/D A/E B/F A/D/A
# ls –l
# ls –l A
# ls –l A/D

4. Menghapus satu atau lebih direktori hanya dapat dilakukan pada direktori kosong dan hanya dapat dihapus oleh pemiliknya kecuali bila diberikan ijin aksesnya.
# rmdir B ( Terdapat pesan error, mengapa ? )
# ls –l B
# rmdir B/F B
# ls –l B ( Terdapat pesan error, mengapa ? )

5. Navigasi direktori dengan instruksi cd untuk pindah dari satu direktori ke direktori lainnya.
# pwd
# ls –l
# cd A
# pwd
# cd /home/
Percobaan 2 : Manipulasi File
1. perintah cp untuk mengkopi file atau seluruh direktori
# cat > contoh
Membuat sebuah file
[Ctrl+d]
# cp contoh contoh1
# ls –l
# cp contoh A
# ls –l A
# cp contoh contoh1 A/D
# ls –l A/D

2. perintah mv untuk memindahkan file
# mv contoh contoh2
# ls –l
# mv contoh1 contoh2 A/D
# mv contoh contoh1 C
# ls –l C

3. perintah rm untuk menghapus file
# rm contoh2
# ls –l
# rm –i contoh
# rm –rf A C
# ls –l

Percobaan 3 : Symbolic Link
1. Membuat shortcut (file link)
# echo “ Halo Apa kabar “ > halo.txt
# ls –l
# ln halo.txt z
# ls –l
# cat z
# mkdir mydir
# ln z mydir /halo.juga
# cat mydir /halo.juga
# ln –s z bye.txt
# ls –l bye.txt
# cat bye.txt

Percobaan 4 : Melihat isi file
# ls –l
# file halo.txt
# file bye.txt

Percobaan 5 : Mencari file
1. perintah find
# find /home –name “*.txt” –print > myerror.txt
# cat myerror.txt
# find . –name “*.txt” –exec wc –l ‘{}’ ‘;’

2. Perintah which
# which ls

3. Perintah locate
# locate “*.txt”

Percobaan 6 : Mencari text pada file
# grep Hallo *.txt


LATIHAN
1. Cobalah urutan perintah berikut :
# cd
# pwd
# ls –al
# cd .
# pwd
# cd ..
# pwd
# ls –al
# cd ..
# pwd
# ls -al
# cd /etc
# ls –al | more
# cat passwd
# cd –
# pwd

2. Lanjutkan penelusuran pohon pada sistem file menggunakan cd, ls, pwd dan cat.
Telusuri direktori /bin, /usr/bin, /sbin, /tmp dan /boot. {jangan melakukan perubahan isi direktori tsb.}

3. Telusuri direktori /dev. Identifikasi perangkat yang tersedia. Identifikasi tty (terminal) Anda (ketik who am i). siapa pemilik tty Anda ( gunakan ls –l).

4. Telusuri direktori /proc. Tampilkan isi file interrupts, devices, cpuinfo, meminfo dan uptime menggunakan perintah cat. Dapatkah Anda melihat ? mengapa direktori /proc disebut pseudo-file system yang memungkinkan akses ke struktur data kernel ?

5. Ubahlah direktori home ke user lain secara langsung menggunakan cd ~username
6. Ubah kembali ke direktori home anda
7. Buat subdirektori work dan play
8. Hapus subdirektori work
9. Copy file /etc/passwd ke direktori home anda
10. Pindahkan ke subdirektori play
11. Ubahlah ke subdirektori play dan buat symbolic link dengan nama terminal yang menunjuk ke perangkat tty. Apa yang terjadi jika melakukan hard link ke perangkat tty ?
12. Buatlah file bernama hello.txt yang berisi kata “hello word”. Dapatkah Anda gunakan “cp” menggunkan “terminal” sebagai file asal untuk menghasilkan efek yang sama ?
13. Copy hello.txt ke terminal. Apa yang salah ?
14. Masih direktori home, copy keseluruhan direktori play ke direktori bernama work menggunakan symbolic link.
15. Hapus direktori work dan isinya dengan satu perintah.


 
 
 
 
 
 
 
 
 
 
 









Rabu, 10 Oktober 2012

Sejarah Perkembangan Linux
 
Dunia sistem operasi akhir-akhir ini berkembang dengan begitu pesatnya. Kekuatan open source dibaliknya telah membuat linux berkembang dengan begitu cepat. Siapa yang tidak kenal dengan Open Suse, distribusi linux yang menawan dengan warna hijau khasnya? Siapa yang tidak kenal Fedora, dengan thema solar nya yang begitu mempesona?Siapa yang tidak kenal dengan Slackware distribusi linux paling tua dan terus dilakukan pengembangannya hingga sekarang? Siapa tidak kenal dengan Mandriva, dahulu namanya Mandrake, yang memiliki kompatibilitas hardware (perangkat keras) yang begitu tinggi? Bagi pemerhati security, siapa yang tidak kenal dengan Backtrack, distribusi turunan slackware yang dapat dijadikan sebagai auditor tools security memerika dan melakukan audit terhadap keamanan sistem? Sebagai pemerhati IT Indonesia, siapa yang tidak kenal dengan IGOS, distribusi turunan Fedora yang pengembangannya dilakukan oleh pemerintah Indonesia melalui LIPI ? Siapa yang tidak kenal dengan Ubuntu, distribusi turunan debian yang memiliki begitu banyak paket aplikasi dalam pengembangannya? Pastinya kepupuleran linux hingga seperti yang sekarang ini tidaklah lepas dari sejarah panjang yang menarik untuk diketahui.

UNIX merupakan salah satu sistem operasi yang mengawali lahirnya Linux ke dunia ini. UNIX merupakan salah satu sistem operasi yang ada saat ini. Adapun UNIX merupakan salah satu sistem operasi populer selain keluarga raksasa Microsoft (mulai dari DOS, MS 9x sampai Vista), Novell, OS/2, BeOS, MacOS dan lainnya.



Sejarah kemunculan UNIX dimulai pada tahun 1965 ketika para ahli dari Bell Labs, sebuah laboratorium milik AT&T, bekerja sama dengan MIT dan General Electric membuat sistem operasi bernama Multics(sudah pernah dengar belum?). Nah, sistem operasi Multics ini awalnya didesain dengan harapan akan menciptakan beberapa keunggulan, seperti multiuser, multiprosesor, dan multilevel filesystem. Namun pada tahun 1969, AT&T akhirnya menghentikan proyek pembuatan Multics karena sistem operasi Multics ini sudah tidak memenuhi tujuan semula. Dengan kata lain, proyek ini mengalami hambatan karena dalam kenyataannya Multics banyak terdapat bugs dan sulit sekali dioperasikan.
 
Beberapa programmer Bell Labs yang terlibat dalam pembuatan dan pengembangan Multics, yaitu Ken Thompson, Dennis Ritchie, Rudd Canaday, dan Doug Mcllroy, secara tidak resmi tetap meneruskan proyek pengembangan Multics. Dan akhirnya sampailah pada sebuah sistem operasi generasi penerus dari Multics bulan Januari 1970 yang diberi nama UNIX.
 

Adapun generasi baru Multics ini memiliki lebih banyak keuggulan dibandingkan saudara tuanya. Nama UNIX diberikan oleh Brian Kernighan untuk memberi penegasan bahwa UNIX bukanlah Multics (tidak sama). UNIX akhirnya memiliki keunggulan seperti yang diharapkan pada awal penciptaannya. Yaitu:
  • Multilevel Filesystem
  • Multiuser dan Multiprosesor
  • Desain arsitektur yang independen terhadap suatu hardware
  • Berbagai device dapat dianggap sebagai file khusus
  • Memiliki user interface yang sederhana
  • Cocok untuk lingkungan pemrograman
  • Memiliki utilitas yang dapat saling digabungkan





  • Setahun setelahnya, UNIX dapat dijalankan pada komputer PDP-11 yang memiliki memory 16 KB dan sebuah disk berukuran 512 KB. Pada waktu itu source codenya UNIX masih ditulis dalam bahasa mesin (assembler). Kemudian pada tahun 1973, source code UNIX ditulis ulang dalam bahasa C yang dibuat oleh Dennis Ritchie.



    Tujuan Mr. Ritchie mengubah source code UNIX ke dalam bahasa C tak lain dan tak bukan karena bahasa C didesain multiplatform dan bersifat fleksibel. Dengan dirubahnya source code ke dalam bahasa C, maka UNIX dapat dikembangkan dan dikompilasi ulang ke berbagai jenis komputer. Sejak saat itu dibuatlah berbagai macam varian UNIX yang sengaja didesain untuk jenis komputer tertentu.



    Setahun kemudian, karena merasa UNIX sudah cukup matang, maka Thompson dan Ritchie mempublikasikan sebuah paper tentang UNIX. Ternyata UNIX mendapat sambutan yang sangat luar biasa dari lingkungan perguruan tinggi. Dan UNIX lah yang menjadi sistem operasi favorit di lingkungan perguruan tinggi.



    Awalnya, sistem operasi UNIX ini didistribusikan secara gratis di dunia pendidikan, namun setelah banyak digunakan oleh korporasi industri dan bisnis (karena kehandalannya menangani bidang jaringan (networking), UNIX akhirnya diperdagangkan dan dipatenkan). Dalam perkembangan selanjutnya, UNIX dan varian-variannya yang dikomersialkan menjadi suatu sistem operasi yang cukup mahal pada saat itu(namun ada beberapa yang gratis karena dikembangkan dengan semangat openSource), hal ini disebabkan karena kestabilan, mampu mengerjakan program multitasking dan dapat digunakan oleh beberapa user secara bersamaan.



    Adapun varian UNIX yang dikomersialkan dan populer karena kehandalannya seperti BSD 4.1 (1980), SunOS, BSD 4.2, SysV(1983), UnixWare dan Solaris 2(1988), dan lainnya. Dan yang dikembangkan dengan semangat openSource atau free diantaranya: FreeBSD, OpenBSD, NetBSD, Mnix, Hurd


    Nama sistem operasi Linux diambil dari nama seorang mahasiswa University of Helsinki, Linus yang kemudian disebut sebagai bapak sistem operasi linux. Linus dilahirkan di Helsinki, Finlandia pada tanggal 28 Desember 1969. Orang yang disebut sebagai Bapak Linux(LINus UniX) ini, sudah mengenal bahasa pemrograman pada umurnya yang ke 10. Saat itu ia sering mengutak-atik komputer kakeknya, Commodore VIC-20. Karena hobinya dalam dunia komputing, 1988 Linus diterima di Univerity of Helsinki dan pada tahun 1990, Linus memulai kelas pemrograman C pertamanya. Pada tahun 1991, Linus tidak puas terhadap sistem operasi yang ada pada PC pertamanya (MS-DOS atau Disk Operation System), OS buatan Microsoft.



    Linus lebih cenderung untuk menggunakan sistem operasi UNIX seperti yang dipakai komputer milik universitasnya. Akhirnya ia mengganti sistem operasi openSource Minix yang berbasiskan UNIX. Adapun Minix ini merupakan sistem UNIX kecil yang dikembangkan oleh Andrew S. Tanenbaum, seorang professor yang menggeluti penelitian masalah OS dari Vrije Universiteit, Belanda. Adapun Minix ini digunakan untuk keperluan pengajaran dan pendidikan.



    Namun Linus merasa bahwa Minix masih memiliki banyak kelemahan. Dan mulai saat itu, di usianya yang ke-23, Linus mulai mengutak-atik kernel Minix. Dan ia mulai mengembangkan sistem yang kompatibel dengan IBM PC. Pada bulan Agustus 1991, lahirlah Linux 0.01 hasil oprekan Linus, dan pada tanggal 5 Oktober 1991, secara resmi Linus mengumumkan Linux 0.02 yang hanya dapat menjalankan BASH dan gcc compiler. Selain itu, Linus juga mempublikasikan sistem operasi buatannya tersebut lengkap dengan source codenya, yang ternyata disambut dengan sangat antusias oleh para programmer dan developer di seluruh dunia agar dapat di develop bersama-sama.



    Sampai saat ini, Linux dibangun oleh berbagai macam komunitas dan jangan heran apabila banyak sekali distro-distro Linux yang beredar. Mulai dari yang berbayar sampai yang gratis, dari untuk pemula sampai tingkat lanjut, dan biasanya dengan banyaknya distro Linux yang beredar akan membuat orang awam bingung untuk memilih distro. Bayangkan, ada beratus-ratus distro yang tercipta atau bahkan beribu-ribu. Namun perlahan tapi pasti, diantara distro-distro Linux ini ada yang menyamai (atau bahkan) melebihi kemampuan dari Sistem Operasi keluarga raksasa (Microsoft) dan dengan semakin mudahnya dan semakin lengkapnya dukungan Linux pada hardware, besar kemungkinan Linux akan menjadi alternatif (atau bahkan sistem operasi utama di dunia).