Senin, 15 November 2010

Input-Output (I/O)

I/O membolehkan komputer mendapatkan informasi dari dunia luar, dan menaruh hasil kerjanya di sana, dapat berbentuk fisik (hardcopy) atau non fisik (softcopy). Ada berbagai macam alat I/O, dari yang akrab keyboard, monitor dan disk drive, ke yang lebih tidak biasa seperti webcam (kamera web, printer, scanner, dan sebagainya.

Yang dimiliki oleh semua alat masukan biasa ialah bahwa mereka meng-encode (mengubah) informasi dari suatu macam ke dalam data yang bisa diolah lebih lanjut oleh sistem komputer digital. Alat output, men-decode data ke dalam informasi yang bisa dimengerti oleh pemakai komputer. Dalam pengertian ini, sistem komputer digital adalah contoh sistem pengolah data.

Pada Umumnya komputer terdiri dari beberapa komponen-komponen perangkat keras yang saling terkait/bekerja sama untuk membentuk sebuah sistem. komponen-komponen ini memiliki tugasnya masing-masing.., apabila salah satu komponen tidak bekerja dengan semestinya.. maka akan berpengaruh terhadap kinerja dalam suatu sistem komputer. sebenarnya ada beberapa fungsi dari komponen perangkat keras :

1. Input Device
2. Proses Device
3. Ouput Device
4. Backing Storage
5. dan Periferal

Tetapi artikel ini cuma akan membahas 2 komponen di atas yaitu :

1. Input Device (Alat Masukan)
2. Output Device (Alat Keluaran)
Input Device adalah merupakan alat perangkat keras yang memiliki fungsi untuk memasukan suatu data/perintah ke dalam komputer. data yang dimasukan akan segera di proses oleh sistem yang ada pada komputer.
Contoh Alat Input :

1. MOUSE

Mouse adalah alat yang digunakan untuk menggerakan pointer pada sebuah sistem,, biasanya memiliki 3 tombol default masing-masing tombol memiliki fungsi sendiri-sendiri di desain untuk mempermudah pengguna komputer menavigasi suatu sistem, software pada komputer…, sebagai alat input data selain keyboard, karena bentuknya menyerupai seekor tikus maka alat tetikus ini diberi nama Mouse.

2. KEYBOARD


Keyboard merupakan alat input utama yang berfungsi mengimput data berupa karakter huruf, angka, symbol dan perintah-perintah lainnya.., agar user (pengguna komputer) dapat membuat suatu file project dengan tujuan tertentu dalam komputer.

3. SCANNER

Scanner berfungsi sebagai alat untuk mengambil dan menggandakan gambar.. menggcopy file yang sudah ada untuk di masukan ke dalam komputer.., hampir sama dengan mesin foto copy hanya saja pada scanner inputnya berupa data digital disimpan terlebih dahulu.. kalau foto-copy biasa langsung mencetak file di kertas.

4. JOYSTIK

Joystick merupakan alat yang di rancang untuk mempermudah pengguna komputer mengontrol software atau aplikasi berbasis Game maupun Simulasi…, seperti halnya stick pada consule Game PS, PS2, X-BOX maupun Nitentdo.
Ouput Device berfungsi sebagai mengeluarkan data yang telah di inputkan oleh perangkat Input Device. sebagai hasil final tampilan dari data/perintah yang telah di proses oleh sistem komputer. output yang di keluarkan bisa dalam berbagai bentuk misalnya gambar, huruf, angka, symbol dan suara…..
Contoh Alat Output :

1. MONITOR


Monitor adalah perangkat output yang memiliki tugas menampilkan aksara atau imej tampilan gambar yang sebelumnya telah di proses oleh VGA (Video Graphics Adapter).., tanpa monitor sudah pasti kita tidak bisa melihat hasil dari alat input.

2. PRINTER


Printer bertugas untuk mencetak dan menggandakan suatu data berupa dukumen word maupun gambar untuk selanjutnya di cetak pada kertas.

3. SPEAKER


Speaker adalah alat Output yang memiliki fungsi mengeluarkan suara berupa file audio (mp3, wave dll) maupun manusia…, setelah di proses oleh sound card dalam komputer.

4. INFOCUS

Infocus hampir sama dengan tugas monitor hanya saja infocus tidak langsung menampilkan gambar melainkan gambar yang ada terlebih dahulu di pantulkan ke tembok atau papan baru bisa di lihat hasilnya, biasanya digunakan untuk mempersentasikan suatu tugas/proyek.. karena gambar yang dihasilkan jauh lebih besar ketimbang monitor.

Sumber :
http://ifs.totalh.com/content/alat-input-dan-output-komputer
http://tonyxcloud.co.cc/?p=158
http://id.wikipedia.org/wiki/Komputer

Minggu, 10 Oktober 2010

CPU dan Komputer

Unit Pengolah Pusat (UPP) (bahasa Inggris: CPU, singkatan dari Central Processing Unit), merujuk kepada perangkat keras komputer yang memahami dan melaksanakan perintah dan data dari perangkat lunak. Istilah lain, prosesor (pengolah data), sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket sirkuit terpadu-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor sirkuit terpadu-tunggal ini telah umum digunakan dan menjadi aspek penting dalam penerapan CPU.


Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut:

1. Unit kontrol yang mampu mengatur jalannya program. tugas dari unit kendali ini adalah:
a. Mengatur dan mengendalikan alat-alat input dan output.
b. Mengambil instruksi-instruksi dari memori utama.
c. Mengambil data dari memori utama (jika diperlukan) untuk diproses.
d. Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
e. Menyimpan hasil proses ke memori utama.

2. Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.

3. ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.

Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).

CARA KERJA CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator.
Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.

FUNGSI CPU
CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (RAM), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada RAM dengan menentukan alamat data yang dikehendaki.
Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan RAM.
Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.

PERCABANGAN INSTRUKSI
Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan CPU dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan CPU dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di RAM, setelah Instruction Fetch dilakukan. Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time).
Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional.
Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.

BILANGAN YANG DAPAT DITANGANI
Kebanyakan CPU dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh CPU secara lebih cepat.
Sementara itu, bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, di mana sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau bilangan yang sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangan ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmatika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh CPU karena mungkin dapat menggunakan beberapa siklus detak CPU. Beberapa komputer menggunakan sebuah prosesor sendiri untuk menghitung bilangan floating point yang disebut dengan FPU (disebut juga math co-processor) yang dapat bekerja secara paralel dengan CPU untuk mempercepat penghitungan bilangan floating-point. FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.

Komputer
Sejak dahulu kala, proses pengolahan data telah dilakukan oleh manusia. Manusia juga menemukan alat-alat mekanik dan elektronik untuk membantu manusia dalam penghitungan dan pengolahan data supaya bisa mendapatkan hasil lebih cepat. Komputer yang kita temui saat ini adalah suatu evolusi panjang dari penemuan-penemuan manusia sejah dahulu kala berupa mekanik maupun elektronik.
    Saat ini komputer dan piranti pendukungnya telah masuk dalam setiap aspek kehidupan dan pekerjaan. Komputer yang ada sekarang memiliki kemampuan yang lebih dari sekedar perhitungan matematik biasa. Diantaranya adalah sistem komputer di kassa supermarket yang mampu membaca kode barang belanja, sentral telepon yang menangani jutaan panggilan dan komunikasi, jaringan komputer dan internet yang menghubungkan berbagai tempat di dunia.

Komputer adalah alat yang dipakai untuk mengolah data menurut prosedur yang telah dirumuskan. Kata computer semula dipergunakan untuk menggambarkan orang yang perkerjaannya melakukan perhitungan aritmatika, dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada mesin itu sendiri. Asal mulanya, pengolahan informasi hampir eksklusif berhubungan dengan masalah aritmatika, tetapi komputer modern dipakai untuk banyak tugas yang tidak berhubungan dengan matematika.

Dalam arti seperti itu terdapat alat seperti slide rule, jenis kalkulator mekanik mulai dari abakus dan seterusnya, sampai semua komputer elektronik yang kontemporer. Istilah lebih baik yang cocok untuk arti luas seperti "komputer" adalah "yang mengolah informasi" atau "sistem pengolah informasi."

ALAT HITUNG TRADISIONAL dan KALKULATOR MEKANIK
    Abacus, yang muncul sekitar 5000 tahun yang lalu di Asia kecil dan masih digunakan di beberapa tempat hingga saat ini dapat dianggap sebagai awal mula mesin komputasi.
    Alat ini memungkinkan penggunanya untuk melakukan perhitungan menggunakan biji-bijian geser yang diatur pada sebuah rak. Para pedagang di masa itu menggunakan abacus untuk menghitung transaksi perdagangan. Seiring dengan munculnya pensil dan kertas, terutama di Eropa, abacus kehilangan popularitasnya.
    Setelah hampir 12 abad, muncul penemuan lain dalam hal mesin komputasi. Pada tahun 1642, Blaise Pascal (1623-1662), yang pada waktu itu berumur 18 tahun, menemukan apa yang ia sebut sebagai kalkulator roda numerik (numerical wheel calculator) untuk membantu ayahnya melakukan perhitungan pajak.
    Kotak persegi kuningan ini yang dinamakan Pascaline, menggunakan delapan roda putar bergerigi untuk menjumlahkan bilangan hingga delapan digit. Alat ini merupakan alat penghitung bilangan berbasis sepuluh. Kelemahan alat ini adalah hanya terbatas untuk melakukan penjumlahan.

    Tahun 1694, seorang matematikawan dan filsuf Jerman, Gottfred Wilhem von Leibniz (1646-1716) memperbaiki Pascaline dengan membuat mesin yang dapat mengalikan. Sama seperti pendahulunya, alat mekanik ini bekerja dengan menggunakan roda-roda gerigi. Dengan mempelajari catatan dan gambar-gambar yang dibuat oleh Pascal, Leibniz dapat menyempurnakan alatnya.
    Barulah pada tahun 1820, kalkulator mekanik mulai populer. Charles Xavier Thomas de Colmar menemukan mesin yang dapat melakukan empat fungsi aritmatik dasar. Kalkulator mekanik Colmar, arithometer, mempresentasikan pendekatan yang lebih praktis dalam kalkulasi karena alat tersebut dapat melakukan penjumlahan, pengurangan, perkalian, dan pembagian. Dengan kemampuannya, arithometer banyak dipergunakan hingga masa Perang Dunia I. Bersama-sama dengan Pascal dan Leibniz, Colmar membantu membangun era komputasi mekanikal.
    Awal mula komputer yang sebenarnya dibentuk oleh seorang profesor matematika Inggris, Charles Babbage (1791-1871). Tahun 1812, Babbage memperhatikan kesesuaian alam antara mesin mekanik dan matematika yaitu mesin mekanik sangat baik dalam mengerjakan tugas yang sama berulangkali tanpa kesalahan; sedang matematika membutuhkan repetisi sederhana dari suatu langkah-langkah tertenu. Masalah tersebut kemudain berkembang hingga menempatkan mesin mekanik sebagai alat untuk menjawab kebutuhan mekanik. Usaha Babbage yang pertama untuk menjawab masalah ini muncul pada tahun 1822 ketika ia mengusulkan suatu mesin untuk melakukan
perhitungan persamaan differensial. Mesin tersebut dinamakan Mesin Differensial. Dengan menggunakan tenaga uap, mesin tersebut dapat menyimpan program dan dapat melakukan kalkulasi serta mencetak hasilnya secara otomatis.    
    Setelah bekerja dengan Mesin Differensial selama sepuluh tahun, Babbage tiba-tiba terinspirasi untuk memulai membuat komputer general-purpose yang pertama, yang disebut Analytical Engine. Asisten Babbage, Augusta Ada King (1815-1842) memiliki peran penting dalam pembuatan mesin ini. Ia membantu merevisi rencana, mencari pendanaan dari pemerintah Inggris, dan mengkomunikasikan spesifikasi Analytical Engine kepada publik. Selain itu, pemahaman Augusta yang baik tentang mesin ini memungkinkannya membuat instruksi untuk dimasukkan ke dalam mesin dan juga membuatnya menjadi programmer wanita yang pertama. Pada tahun 1980, Departemen Pertahanan Amerika Serikat menamakan sebuah bahasa pemrograman dengan nama ADA sebagai penghormatan kepadanya.
    Mesin uap Babbage, walaupun tidak pernah selesai dikerjakan, tampak sangat primitif apabila dibandingkan dengan standar masa kini. Bagaimanapun juga, alat tersebut menggambarkan elemen dasar dari sebuah komputer modern dan juga mengungkapkan sebuah konsep penting. Terdiri dari sekitar 50.000 komponen, disain dasar dari Analytical Engine menggunakan kartu-kartu perforasi (berlubang-lubang) yang berisi instruksi operasi bagi mesin tersebut.
    Pada 1889, Herman Hollerith (1860-1929) juga menerapkan prinsip kartu perforasi untuk melakukan penghitungan. Tugas pertamanya adalah menemukan cara yang lebih cepat untuk melakukan perhitungan bagi Biro Sensus Amerika Serikat. Sensus sebelumnya yang dilakukan di tahun 1880 membutuhkan waktu tujuh tahun untuk menyelesaikan perhitungan. Dengan berkembangnya populasi, Biro tersebut memperkirakan bahwa dibutuhkan waktu sepuluh tahun untuk menyelesaikan perhitungan sensus.
    Hollerith menggunakan kartu perforasi untuk memasukkan data sensus yang kemudian diolah oleh alat tersebut secara mekanik. Sebuah kartu dapat menyimpan hingga 80 variabel. Dengan menggunakan alat tersebut, hasil sensus dapat diselesaikan dalam waktu enam minggu. Selain memiliki keuntungan dalam bidang kecepatan, kartu tersebut berfungsi sebagai media penyimpan data. Tingkat kesalahan perhitungan juga dapat ditekan secara drastis. Hollerith kemudian mengembangkan alat tersebut dan menjualnya ke masyarakat luas. Ia mendirikan Tabulating Machine Company pada tahun 1896 yang kemudian menjadi International Business Machine (1924) setelah mengalami beberapa kali merger. Perusahaan lain seperti Remington Rand and Burroghs juga memproduksi alat pembaca kartu perforasi untuk usaha bisnis. Kartu perforasi digunakan oleh kalangan bisnis dn pemerintahan untuk permrosesan data hingga tahun 1960.
    Pada masa berikutnya, beberapa insinyur membuat penemuan baru lainnya. Vannevar Bush (18901974) membuat sebuah kalkulator untuk menyelesaikan persamaan differensial di tahun 1931. Mesin tersebut dapat menyelesaikan persamaan differensial kompleks yang selama ini dianggap rumit oleh kalangan akademisi. Mesin tersebut sangat besar dan berat karena ratusan gerigi dan poros yang dibutuhkan untuk melakukan perhitungan. Pada tahun 1903, John V. Atanasoff dan Clifford Berry mencoba membuat komputer elektrik yang menerapkan aljabar Boolean pada sirkuit elektrik. Pendekatan ini didasarkan pada hasil kerja George Boole (1815-1864) berupa sistem biner aljabar, yang menyatakan bahwa setiap persamaan matematik dapat dinyatakan sebagai benar atau salah. Dengan mengaplikasikan kondisi benar-salah ke dalam sirkuit listrik dalam bentuk terhubung-terputus, Atanasoff dan Berry membuat komputer elektrik pertama di tahun 1940. Namun proyek mereka terhenti karena kehilangan sumber pendanaan.
 
KOMPUTER GENERASI PERTAMA
 
    Dengan terjadinya Perang Dunia Kedua, negara-negara yang terlibat dalam perang tersebut berusaha mengembangkan komputer untuk mengeksploitasi potensi strategis yang dimiliki komputer. Hal ini meningkatkan pendanaan pengembangan komputer serta mempercepat kemajuan teknik komputer. Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer Z3, untuk mendisain pesawat terbang dan peluru kendali.
    Pihak sekutu juga membuat kemajuan lain dalam pengembangan kekuatan komputer. Tahun 1943, pihak Inggris menyelesaikan komputer pemecah kode rahasia yang dinamakan Colossus untuk memecahkan kode-rahasia yang digunakan Jerman. Dampak pembuatan Colossus tidak terlalu mempengaruhi perkembangan industri komputer dikarenakan dua alasan. Pertama, colossus bukan merupakan komputer serbaguna general-purpose computer), ia hanya didisain untuk memecahkan kode rahasia. Kedua, keberadaan mesin ini dijaga kerahasiaannya hingga satu dekade setelah perang berakhir.
    Usaha yang dilakukan oleh pihak Amerika pada saat itu menghasilkan suatu kemajuan lain. Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil. The Harvd-IBM Automatic Sequence Controlled Calculator, atau Mark I, merupakan komputer relai elektronik. Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik. Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah). Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks.
    Perkembangan komputer lain pada masa ini adalah Electronic Numerical Integrator and Computer (ENIAC), yang dibuat oleh kerjasama antara pemerintah Amerika Serikat dan University of Pennsylvania. Terdiri dari 18.000 tabung vakum, 70.000 resistor, dan 5 juta titik solder, komputer tersebut merupakan mesin yang sangat besar yang mengkonsumsi daya sebesar 160kW. Komputer ini dirancang oleh John Presper Eckert (1919-1995) dan John W. Mauchly (1907-1980), ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I.

    Pada pertengahan 1940-an, John von Neumann (1903-1957) bergabung dengan tim University of Pennsylvania dalam usha membangun konsep desin komputer yang hingga 40 tahun mendatang masih dipakai dalam teknik komputer.
    Von Neumann mendesain Electronic Discrete Variable Automatic Computer(EDVAC) pada tahun 1945 dengan sebuah memori untuk menampung baik program ataupun data. Teknik ini memungkinkan komputer untuk berhenti pada suatu saat dan kemudian melanjutkan pekerjaannya kembali. Kunci utama arsitektur von Neumann adalah unit pemrosesan sentral (CPU), yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Tahun 1951, UNIVAC I (Universal Automatic Computer I) yang dibuat oleh Remington Rand, menjadi komputer komersial pertama yang memanfaatkan model arsitektur von Neumann tersebut. Baik Badan Sensus Amerika Serikat dan General Electric memiliki UNIVAC. Salah satu hasil mengesankan yang dicapai oleh UNIVAC dalah keberhasilannya dalam memprediksi kemenangan Dwilight D. Eisenhower dalam pemilihan presiden tahun 1952.
   
    Komputer Generasi pertama dikarakteristik dengan fakta bahwa instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu. Setiap komputer memiliki program kode-biner yang berbeda yang disebut “bahasa mesin” (machine language). Hal ini menyebabkan komputer sulit untuk diprogram dan membatasi kecepatannya. Ciri lain komputer generasi pertama adalah penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dan silinder magnetik untuk penyimpanan data.
 
KOMPUTER GENERASI KEDUA
    Pada tahun 1948, penemuan transistor sangat mempengaruhi perkembangan komputer. Transistor menggantikan tube vakum di televisi, radio, dan komputer. Akibatnya, ukuran mesin-mesin elektrik berkurang drastis. Transistor mulai digunakan di dalam komputer mulai pada tahun 1956. Penemuan lain yang berupa pengembangan memori inti-magnetik membantu pengembangan komputer generasi kedua yang lebih kecil, lebih cepat, lebih dapat diandalkan, dan lebih hemat energi dibanding para pendahulunya. Mesin pertama yang memanfaatkan teknologi baru ini adalah superkomputer. IBM membuat superkomputer bernama Stretch, dan Sprery-Rand membuat komputer bernama LARC. Komputer-komputer ini, yang dikembangkan untuk laboratorium energi atom, dapat menangani sejumlah besar data, sebuah kemampuan yang sangat dibutuhkan oleh peneliti atom. Mesin tersebut sangat mahal dan cenderung terlalu kompleks untuk kebutuhan komputasi bisnis, sehingga membatasi kepopulerannya. Hanya ada dua LARC yang pernah dipasang dan digunakan: satu di Lawrence Radiation Labs di Livermore, California, dan yang lainnya di US Navy Research and Development Center di Washington D.C. Komputer generasi kedua menggantikan bahasa mesin dengan bahasa assembly. Bahasa assembly adalah bahasa yang menggunakan singkatan-singkatan untuk menggantikan kode biner.
  
    Pada awal 1960-an, mulai bermunculan komputer generasi kedua yang sukses di bidang bisnis, di universitas, dan di pemerintahan. Komputer-komputer generasi kedua ini merupakan komputer yang sepenuhnya menggunakan transistor. Mereka juga memiliki komponen-komponen yang dapat diasosiasikan dengan komputer pada saat ini: printer, penyimpanan dalam disket, memory, sistem operasi, dan program. Salah satu contoh penting komputer pada masa ini adalah IBM 1401 yang diterima secara luas di kalangan industri. Pada tahun 1965, hampir seluruh bisnis-bisnis besar menggunakan komputer generasi kedua untuk memproses informasi keuangan.

    Program yang tersimpan di dalam komputer dan bahasa pemrograman yang ada di dalamnya memberikan fleksibilitas kepada komputer. Fleksibilitas ini meningkatkan kinerja dengan harga yang pantas bagi penggunaan bisnis. Dengan konsep ini, komputer dapat mencetak faktur pembelian konsumen dan kemudian menjalankan desain produk atau menghitung daftar gaji. Beberapa bahasa pemrograman mulai bermunculan pada saat itu. Bahasa pemrograman Common Business-Oriented Language (COBOL) dan Formula Translator (FORTRAN) mulai umum digunakan. Bahasa pemrograman ini menggantikan kode mesin yang rumit dengan kata-kata, kalimat, dan formula matematika yang lebih mudah dipahami oleh manusia. Hal ini memudahkan seseorang untuk memprogram dan mengatur komputer. Berbagai macam karir baru bermunculan (programmer, analyst, dan ahli sistem komputer). Industri piranti lunak juga mulai bermunculan dan berkembang pada masa komputer generasi kedua ini.
 
KOMPUTER GENERASI KETIGA
    Walaupun transistor dalam banyak hal mengungguli tube vakum, namun transistor menghasilkan panas yang cukup besar, yang dapat berpotensi merusak bagian-bagian internal komputer. Batu kuarsa (quartz rock) menghilangkan masalah ini. Jack Kilby, seorang insinyur di Texas Instrument, mengembangkan sirkuit terintegrasi (IC: integrated circuit) di tahun 1958. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silikon kecil yang terbuat dari pasir kuarsa. Para ilmuwan kemudian berhasil memasukkan lebih banyak komponen-komponen ke dalam suatu chip tunggal yang disebut semikonduktor. Hasilnya, komputer menjadi semakin kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya adalah penggunaan sistem operasi (operating system) yang memungkinkan mesin untuk menjalankan berbagai program yang berbeda secara serentak dengan sebuah program utama yang memonitor dan mengkoordinasi memori komputer.

KOMPUTER GENERASI KEEMPAT
    Setelah IC, tujuan pengembangan menjadi lebih jelas yaitu mengecilkan ukuran sirkuit dan komponen-komponen elektrik. Large Scale Integration (LSI) dapat memuat ratusan komponen dalam sebuah chip. Pada tahun 1980-an, Very Large Scale Integration (VLSI) memuat ribuan komponen dalam sebuah chip tunggal.

    Ultra-Large Scale Integration (ULSI) meningkatkan jumlah tersebut menjadi jutaan. Kemampuan untuk memasang sedemikian banyak komponen dalam suatu keping yang berukuran setengah keping uang logam mendorong turunnya harga dan ukuran komputer. Hal tersebut juga meningkatkan daya kerja, efisiensi dan kehandalan komputer. Chip Intel 4004 yang dibuat pada tahun 1971 membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (central processing unit, memori, dan kendali input/output) dalam sebuah chip yang
sangat kecil. Sebelumnya, IC dibuat untuk mengerjakan suatu tugas tertentu yang spesifik. Sekarang, sebuah mikroprosesor dapat diproduksi dan kemudian diprogram untuk memenuhi seluruh kebutuhan yang diinginkan. Tidak lama kemudian, setiap perangkat rumah tangga seperti microwave oven, televisi, dan mobil dengan electronic fuel injection dilengkapi dengan mikroprosesor.
    Perkembangan yang demikian memungkinkan orang-orang biasa untuk menggunakan komputer biasa. Komputer tidak lagi menjadi dominasi perusahaan-perusahaan besar atau lembaga pemerintah. Pada pertengahan tahun 1970-an, perakit komputer menawarkan produk komputer mereka ke masyarakat umum. Komputer-komputer ini, yang disebut minikomputer, dijual dengan paket piranti lunak yang mudah digunakan oleh kalangan awam. Piranti lunak yang paling populer pada saat itu adalah program word processing dan spreadsheet. Pada awal 1980-an, video game seperti Atari 2600 menarik perhatian konsumen pada komputer rumahan yang lebih canggih dan dapat diprogram.

    Pada tahun 1981, IBM memperkenalkan penggunaan Personal Computer (PC) untuk penggunaan di rumah, kantor, dan sekolah. Jumlah PC yang digunakan melonjak dari 2 juta unit di tahun 1981 menjadi 5,5 juta unit di tahun 1982. Sepuluh tahun kemudian, 65 juta PC digunakan. Komputer melanjutkan evolusinya menuju ukuran yang lebih kecil, dari komputer yang berada di atas meja (desktop computer) menjadi komputer yang dapat dimasukkan ke dalam tas (laptop), atau bahkan komputer yang dapat digenggam (palmtop).
    IBM PC bersaing dengan Apple Macintosh dalam memperebutkan pasar komputer. Apple Macintosh menjadi terkenal karena mempopulerkan sistem grafis pada komputernya, sementara saingannya masih menggunakan komputer yang berbasis teks. Macintosh juga mempopulerkan penggunaan piranti mouse.
    Pada masa sekarang, kita mengenal perjalanan IBM compatible dengan pemakaian CPU: IBM PC/486, Pentium, Pentium II, Pentium III, Pentium IV (Serial dari CPU buatan Intel). Juga kita kenal AMD k6, Athlon, dsb. Ini semua masuk dalam golongan komputer generasi keempat. Seiring dengan menjamurnya penggunaan komputer di tempat kerja, cara-cara baru untuk menggali potensi terus dikembangkan. Seiring dengan bertambah kuatnya suatu komputer kecil, komputer-komputer tersebut dapat dihubungkan secara bersamaan dalam suatu jaringan untuk saling berbagi memori, piranti lunak, informasi, dan juga untuk dapat saling berkomunikasi satu dengan yang lainnya. Komputer jaringan memungkinkan komputer tunggal untuk membentuk kerjasama elektronik untuk menyelesaikan suatu proses tugas. Dengan menggunakan perkabelan langsung (disebut juga local area network, LAN), atau kabel telepon, jaringan ini dapat berkembang menjadi sangat besar.

 
KOMPUTER GENERASI KELIMA

    Mendefinisikan komputer generasi kelima menjadi cukup sulit karena tahap ini masih sangat muda. Contoh imajinatif komputer generasi kelima adalah komputer fiksi HAL9000 dari novel karya Arthur C. Clarke berjudul 2001:Space Odyssey. HAL menampilkan seluruh fungsi yang diinginkan dari sebuah komputer generasi kelima. Dengan kecerdasan buatan (artificial intelligence), HAL dapat cukup memiliki nalar untuk melakukan percapakan dengan manusia, menggunakan masukan visual, dan belajar dari pengalamannya sendiri.
    Walaupun mungkin realisasi HAL9000 masih jauh dari kenyataan, banyak fungsi-fungsi yang dimilikinya sudah terwujud. Beberapa komputer dapat menerima instruksi secara lisan dan mampu meniru nalar manusia. Kemampuan untuk menterjemahkan bahasa asing juga menjadi mungkin. Fasilitas ini tampak sederhan. Namun fasilitas tersebut menjadi jauh lebih rumit dari yang diduga ketika programmer menyadari bahwa pengertian manusia sangat bergantung pada konteks dan pengertian daripada sekedar menterjemahkan kata-kata secara langsung.
    Banyak kemajuan di bidang disain komputer dan teknologi semakin memungkinkan pembuatan komputer generasi kelima. Dua kemajuan rekayasa yang terutama adalah kemampuan pemrosesan paralel, yang akan menggantikan model von Neumann. Model von Neumann akan digantikan dengan sistem yang mampu mengkoordinasikan banyak CPU untuk bekerja secara serempak. Kemajuan lain adalah teknologi superkonduktor yang memungkinkan aliran elektrik tanpa ada hambatan apapun, yang nantinya dapat mempercepat kecepatan informasi.
    Jepang adalah negara yang terkenal dalam sosialisasi jargon dan proyek komputer generasi kelima. Lembaga ICOT (Institute for new Computer Technology) juga dibentuk untuk merealisasikannya. Banyak kabar yang menyatakan bahwa proyek ini telah gagal, namun beberapa informasi lain bahwa keberhasilan proyek komputer generasi kelima ini akan membawa perubahan baru paradigma komputerisasi di dunia. Kita tunggu informasi mana yang lebih valid dan membuahkan hasil.
 
Referensi:
Sudirman, Ivan, Sejarah Komputer, IlmuKomputer.com

http://fadel05.tripod.com/komputer/sejarah.html
http://id.wikipedia.org/wiki/Unit_Pengolah_Pusat
http://aletheaisfahanie.blog.ugm.ac.id/2010/10/01/cpu-central-processing-unit/

Senin, 31 Mei 2010

algoritma binary search

Jika kita mempunyai sebuah file dari record-record yang telah dijalankan, kita dapat melanjutkan menghapuskan memory pemeriksaan yang diperlukan untuk mendapatkan kembali sebuah record yang telah dipakai oleh suatu teknik binary search. Suatu binary search dibandingkan dengan kunci dari pencarian record dengan record tengah dari sebuah file. Kemudian masing-masing pencarian record yang telah ditempatkan atau setengah dari file yang telah dihilangkan dengan pertimbangan yang lebih lanjut. Dalam kasus yang sebelumnya, proses pembandingan dari record tengah dilanjutkan dalam record-record selanjutnya. Jika kita harus menghilangkan bagian atas dari sebuah file termasuk record yang telah dibandingkan berlawanan. Selanjutnya jika kita harus menghilangkan bagian bawah dari sebuah file termasuk record yang telah dibandingkan berlawanan. Dalam pengulangan proses dari pembandingan berlawanan dari record tengah, kita akhirnya akan menempatkan record yang kita inginkan atau menentukan bahwa itu tidak ada dalam file ketika tidak ada record-record selanjutnya.

Algorithm 2.1

Binary Search.

Terendah = 1.

Tertinggi = n.

While terendah < tertinggi do.

Tengah = (terendah + tertinggi) / 2.

if nilai kunci = nilai (tengah). Then data ditemukan.

Else if nilai kunci > nilai (tengah). Then terendah = tengah + 1.

Else tertinggi = tengah - 1.

end

end

end

Mari kita amati sebuah contoh dari suatu binary search yang telah disajikan terhadap suatu file dari record-record yang telah disusun secara urut. Dalam contoh ini, kita mencari record-record dengan kunci 39, dimana berindikasikan record yang terbaru yang telah dibandingkan berlawanan dari tanda kurung besar membatasi record yang masih dibawah pertimbangan.

Contoh 1

Di bawah ini adalah kunci–kunci carilah kunci 39 dengan mengunakan algorithm Binary Search.

[13, 16, 18, 27, 28, 29, 38, 39, 53].

1 2 3 4 5 6 7 8 9

File ini dinamakan File Sequential (secara berurutan).

Cara penyelesaian.

Bila di cari kunci 39 maka ;

Bila terendah = 1, dan tertinggi = 9,

maka 1 + 9 = 10 , lalu 10 / 2 = 5.

1. Nomor urut 5, adalah kunci 28 , tapi 28 < 39,

[13, 16, 18, 27, 28, 29, 38, 39, 53].

maka terendah = 5 , dan tertinggi = 9,

maka : 5 + 9 = 14

14 / 2 = 7.

2. Nomor urut 7 adalah 38 , tapi 38 < 39,

[13, 16, 18, 27, 28, 29, 38, 39, 53].

maka terendah = 8, dan tertinggi = 9, (karena mid + 1 jadi 7+1=8)

maka : 8 + 9 = 17

17 / 2 = 8,5 => 8,5 ≈ 8

Note: kl mengambil kebawah, haruskonsisten untuk jawaban selanjutnya jika ada kasus yg sama juga harus kebawah

3. Nomor urut 8 adalah kunci 39 , dimana kunci 39 = 39.

[13, 16, 18, 27, 28, 29, 38, 39, 53]

referensi : http://blog.uad.ac.id/afandi/2008/11/06/binary-search/

Selasa, 25 Mei 2010

algoritma divide dan conquer

adalah varian dari beberapa strategi pemrograman topdown,
tetapi keistimewaannya adalah membuat sub-sub problem dari problem yang
besar, oleh karena itu strategi ini ditunjukkan secara berulang-ulang (recursively),didalam menerapkan algoritma yang sama dalam sub-sub problem seperti yang diterapkan pada masalah aslinya (original problem). Sebagaimana prinsip dasar algoritma perulangan dibutuhkan sebuah kondisi untuk mengakhiri perulangan tersebut. Biasanya untuk mengecek apakah problem sudah cukup kecil untuk diselesaikan dengan metode secara langsung. Mungkin dari segi ilustrasi kita, bahwa proses-proses pada komputer paralel tentunya memiliki proses/problem/job yang cukup kompleks sehingga harus dipecah-pecah menjadi sub-sub problem. Selain dibutuhkan sebuah “kondisi”, juga diperlukan “fase divide” untuk membagi/memecah problem menjadi sub-sub problem yang lebih kecil, dan “fase combine“ untuk menggabungkan kembali solusi dari sub-sub problem kedalam solusi dari problem awalnya. Berikut pseudocode dari strategi divide and conquer

function d and c (p)
if basecase (p)
then
return solve (p)
else
(p1, : : :, pn) = divide (p)
return combine (d and c (p1), : : :, d and c (pn))
endif
Pseudocode untuk model algoritma n-way divide and conquer Pseudocode diatas adalah sebagai acuan dari strategi divide and conquer, tetapi dalam implementasinya ada beberapa diferensiasi dari bentuk diatas yang akan digunakan. Sebelum masuk ke pokok pemrograman dengan “Divide and Conquer strategy/algorithm”, ada 4 hal penting yang harus dipahami dalam strategi ini : branching factor, balance, data dependence of divide function dan sequentiality.

Branching Factor
Branching factor dalam algoritma divide and conquer adalah jumlah dari
subproblem yang akan dibagi dari sebuah problem awal. Ini adalah langkah
nyata dari algoritma divide and conquer, didalam proses pembagian yang
sebenarnya, jumlah dari branching factor harus 2 atau lebih, karena jika tidak
problem tidak bisa dibagi. Banyak jenis algoritma ini termasuk pula algoritma
komputasi geometric yang memiliki branching factor berjumlah 2.

Balance
Sebuah algoritma divide and conquer dikatakan balance jika problem awal dibagi
menjadi sub-sub problem dengan ukuran yang sama. Yang artinya jumlah dari
keseluruhan ukuran subproblem sama dengan ukuran problem awal (initial
problem). Algoritma Mergesort dan binary tree, dan sama halnya dengan
algoritma reduksi & prefix sum adalah beberapa contoh algoritma divide and
conquer yang seimbang (balance).

Data Dependence of Divide Function
Algoritma divide and conquer memiliki sebuah fungsi pembagian terhadap data
yang memiliki ketergantungan, artinya jika ukuran relatif dari sebuah
subproblem tergantung pada proses input datanya. Ini adalah salah satu ciri dari
algoritma yang tidak seimbang, salah satu contohnya adalah algoritma quicksort
yang akan membagi subproblem dengan fungsi data-dependent divide.

Control Parallelism or Sequentiality
Algoritma divide and conquer dikatakan berurutan (sequential) jika subproblem
dieksekusi sesuai dengan perintah program. Paralelisasi dari algoritma divide
and conquer yang terurut pertama kali didefinisikan oleh Mou’s Divacon[Mou90],
yang terjadi ketika hasil dari salah satu sub-eksekusi diperlukan oleh subeksekusi
yang lain. Dalam kasus ini hasil dari subtree pertama diberikan
(passing) kepada proses komputasi subtree kedua, supaya hasil akhir tersebut
bisa digunakan sebagai nilai awalnya, tetapi sekarang ini contoh diatas tidak
dapat dijadikan ilustrasi lagi karena teknologi komputer paralel yang semakin
canggih dan kompleks.

Contoh Penerapan Pada Binary Search
Temukan sebuah elemen atau bilangan pada array yang telah tersortir :
1. Divide : cek elemen tengah
2. Conquer : secara rekursif, cari disebuah subarray
3. Combine : trivial
Kasus :
Temukan bilangan 9 pada deret 3, 5, 7, 8, 9, 12, 15
Array awal

Temukan nilai tengah

Abaikan Subarray yang kurang dari 8

Temukan nilai tengah

Abaikan subarray yang lebih dari 12

Karena elemen tinggal satu, maka elemen tersebut adalah elemen yang dicari


Kesimpulan :
Algoritma divide and conquer sudah lama diperkenalkan sebagai sumber dari
pengendalian proses parallel, karena masalah-masalah yang terjadi dapat diatasi
secara independent. Banyak arsitektur dan bahasa pemrograman parallel
mendesain implementasinya (aplikasi) dengan struktur dasar dari algoritma
divide and conquer.
Divide and Conquer secara umum terbagi dalam tiga fase, divide yakni membagi
masalah kedalam sub-sub masalah yang lebih kecil, conquer yakni
menyelesaikan sub-sub masalah secara rekursif, dan combine menggabungkan
hasil dari penyelesian sub-sub masalah menjadi penyelesaian yang dikehendaki
Terdapat empat hal pada strategi “divide and conquer” : branching factor,
balance, data dependence of divide function dan sequentiality.

referensi :
http://www.informatika.org/.../Algoritma%20Divide%20and%20Conquer%20(lanjutan).ppt

Rabu, 28 April 2010

Spanning Tree

Spanning Tree Protocol disingkat menjadi STP, Merupakan bagian dari standard IEEE 802.1 untuk kontrol media akses. Berfungsi sebagai protocol untuk pengaturan koneksi dengan menggunakan algoritma spanning tree.

Kelebihan STP dapat menyediakan system jalur backup & juga mencegah loop yang tidak diinginkan pada jaringan yang memiliki beberapa jalur menuju ke satu tujuan dari satu host.

Loop terjadi bila ada route/jalur alternative diantara host-host. Untuk menyiapkan jalur back up, STP membuat status jalur back up menjadi stand by atau diblock. STP hanya membolehkan satu jalur yang active (fungsi pencegahan loop) diantara dua host namun menyiapkan jalur back up bila jalur utama terputus.

Bila "cost" STP berubah atau ada jalur yang terputus, algoritma spanning tree merubah topology spanning tree dan mengaktifkan jalur yang sebelumnya stand by.

Tanpa spanning tree pun sebenarnya memungkinkan koneksi antara dua host melewati beberapa jalur sekaligus namun dapat juga membuat looping yang tidak pernah akan selesai di dalam jaringan anda. Yang pasti akan menghabiskan kapasitas jalur yang ada hanya untuk melewatkan packet data yang sama secara berulang dan berlipat ganda.

Contoh :
Pandang sebuah graph sebagai berikut;



Soal diatas dapat dijawab dengan menggunakan Algoritma Kruskall seperti ditunjukkan dibawah ini :.
Edge Cost
1. ( 1,2 ) 10
2. ( 3,6 ) 15
3. ( 4,6 ) 20
4. ( 2,6 ) 25
5. ( 1,4 ) 30
6. ( 3,5 ) 35

Maka Spanning Tree- nya adalah




Sehingga total costnya ialah 105


Soal : Buatlah Minimum Spanning Tree + Total Cost !!




jawab :
Gunakan Algoritma Kruskall
Edge Cost
1. ( C,D ) 2
2. ( A,F ) 4
3. ( C,E ) 4
4. ( B,C ) 5
5. ( A,C ) 6

Maka Spanning Tree-nya adalah :



Sehingga Total Costnya adalah 21

referensi : http://id.wikipedia.org/wiki/Spanning_Tree_Protocol

Teknik Searching

Searching adalah satu ketrampilan penting yang harus dikuasai oleh siapapun yang senantiasa bersinggungan dengan dunia IT. Dengan ketrampilan yang satu ini, maka pada prinsipnya apapun yang kita inginkan dari  dunia maya bisa kita dapatkan. Hanya saja ketrampilan ini tidak banyak diperhatikan oleh setiap orang. Khususnya lagi oleh para mahasiswa.
Contoh yang diambil adalah menggunakan Google, karena harus diakui Google merupakan search engine yang paling banyak dipakai oleh pengguna internet. Beragam informasi dapat kita cari secara cepat dengan menggunakan google. Untuk mengoptimalkan hasil pencarian, google menyediakan beberapa option:
· Google tidak "case sensitive". Maka bila kita memasukkan Keyword: MODULASI, akan banyak hal-hal yang berhuungan dengan keyword tersebut.
· Menggunakan kata hubung  AND dan OR.  Secara Default Google menggunakan keyword and. Maka keyword: orang yogya sebenarnya sama dengan keyword : ‘orang’ AND ‘yogya’. Sementara kata hubung OR akan digunakan untuk menemukan halaman yang setidaknya berisi salah satu dari keyword.
· Google umumnya  akan mengabaikan pencarian dengan kata-kata umum seperti "how" dan "where".  Maka jika kata-kata umum ini begitu penting,  bisa ditambahkan dengan "+". Contohnya, Keyword: Blog +how ==> Kata "how" akan diikutsertakan.
· Bila tidak semua informasi ingin ditampilkan, maka bisa digunakan tanda minus "-" untuk mengecualikan kata tertentu dalam pencarian. Misal keywordnya : mudulasi – FM, maka akan menghasilkan pencarian tentang mudulasi tanpa melibatkan kata FM dalam hasilnya.
o Menyortir dokumen hasil pencarian berdasar tipe filenya, gunakan perintah filetype : ekstensi file, contohnya : informatika filetype:pdf.
· inurl: Option ini digunakan untuk mencari kata tertentu yang "masuk" sebagai url. Dengan option ini Anda dapat melakukan pencarian pada pencarian folder tertentu (jika dikombinasikan dengan option "index of").
Contoh:
inurl:admin -> pencarian ini menghasilkan url website yang mempunyai kata "admin"
· site: Option ini secara spesifik digunakan untuk melakukan pencarian pada situs tertentu. Contoh:
site:torry.net "xp style" –> mencari dengan keyword "xp style" pada situs www.torry.net
· intitle: Option ini digunakan untuk mencari kata tertentu yang terdapat pada title dari halaman web.
· link: Option ini digunakan untuk mengetahui situs mana saja yang nge-link ke situs tertentu.
Contoh: link:delphi3000.com –> mencari situs yang mempunyai link ke www.delphi3000.com
sumber :
· http://www.klik-kanan.com/fokus/tips-google.shtml
· http://ridwan.or.id/?pilih=news&mod=yes&aksi=lihat&id=178

Teknik Sorting

Dalam penyelesaian suatu masalah pasti terdapat banyak cara atau solusi-solusi yang dapat dilakukan, seperti halnya pembuatan program memiliki banyak tehnik atau algoritma yang dapat di gunakan salah satunya untuk kebutuhan SORTING atau PENGURUTAN kumpulan data-data. terdapat 4 algoritma atau tehnik dalam melakukan sorting.

Straight Selection Sort. teknik sorting ini dibuat dengan cara melakukan pengecek'an 1 persatu, bila kita akan mengurutkan secara ascending maka kita lakukan pengecek'an nilai tempat yang pertama (index pertama pada array) bila lebih kecil daripada index berikutnya (index 1 dengan index 2, index 1 dengan index 3, ..... index 1 dengan index terakhi) maka kita lakukan pertukaran nilai pada array index tersebut. proses ini dilakukan terus menerus sampai pada pengecekan index terakhir - 1 dengan nidex terakhir. listing program (open in Inrternet eplorer only)

Selection Sort.Teknik sorting ini dibuat dengan cara melakukan pengecek'an 1 persatu, bila kita akan mengurutkan secara ascending maka kita lakukan pengecek'an nilai tempat yang pertama (index pertama pada array)kita bandingkan dengan semua nilai yang ada kita cari nilai minimalnya. lalu simpan index/ letak nilai minimum itu di temukan, setelah pengecekan selesai tukar index awal pengecekan dengan nilai minimum yang telah di simpan tadi. Proses ini dilakukan terus menerus sampai pada pengecekan index terakhir min 1 dengan index terakhir. beda dengan streith selection sort adalah dengan teknik ini melakukan pertukaran nilai lebih sedikit, hanya jumlah data - 1 pertukaran. jadi waktu untuk melakukan proses sorting lebih cepat.listing program (open in Inrternet eplorer only)

Bubble Sort. Teknik ini dilakukan degan pola membawa nilai terbesar menjadi nilai index terakhir array. jadi sistem ini melakukan pengecekan nilai 1 dengan 2, lalu 2 dengan 3 samapai dengan data terakhir, bila nilai index yang lebih kecil lebih besar maka akan dilakukan pertukaran. proses ini dilakuan hingga jumlah data - 1. listing program (open in Inrternet eplorer only)

Modified Bubble Sort. Teknik ini dilakukan degan pola membawa nilai terbesar menjadi nilai index terakhir array. Jadi sistem ini melakukan pengecekan nilai 1 dengan 2, lalu 2 dengan 3 samapai dengan data terakhir, bila nilai index yang lebih kecil lebih besar maka akan dilakukan pertukaran. proses ini dilakuan hingga jumlah data dikurangi 1 atau sampai program tidak melakukan pertukaran. jadi waktu untuk melakukan proses sorting lebih cepat.

referensi : http://alpro.awardspace.com/tehnik.html

Struktur Data

Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data. Adapun daftar struktur data secara umum adalah sebagai berikut :
1.Array (Larik)
Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier
Contoh : Nilai = (56 42 89 65 48)
Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu
– Nilai(1) menunjuk 56
– Nilai(2) menunjuk 42
Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)
Array (Larik) [2]
Variabel bisa digunakan sebagai subscript, misalnya Nilai(i).
– Jika i = 2 maka menunjuk ke Nilai(2) yaitu 42
– Jika i = 4 maka menunjuk ke Nilai(4) yaitu 65
Item data individual dalam suatu array sering disebut elemen
Matriks
– Array yang hanya berisi bilangan dan tidak ada data alfabetisnya
Klasifikasi Array
– Array 1 dimensi
– Array multi dimensi
2.String
Rangkaian karakter yang ditangani sebagai unit data tunggal
Contoh (string literal) :
– “ABC, 32fl2. 3h”
– “Kucing dalam karung”
Contoh (variabel string) :
– A = “Universitas”
– B = “Gunadarma”
Berada dalam bentuk array karakter 1 dimensi
String [2]
Fixed-length string (String yang panjangnya tetap)

– Mempunyai jumlah tempat karakter yang tetap yang tersedia (bisa digunakan) untuk penyimpanan data
Variable-length string (String yang panjangnya berubah-ubah)
– Memberi data sejumlah spasi (ruang) sesuai yang ia perlukan
Fixed-length string



Variable-length string



Deklarasi String
Fixed-length string
Variables
nama : string[5]

Variable-length string
Variables
nama : string
Operasi pada String
Concatenation
– Penggabungan dua atau lebih string
– Contoh :
A = “Universitas”
B = “Gunadarma”
C = A + B
maka
C = “UniversitasGunadarma”
3.Record
Seperti array 1 dimensi
Terdiri dari serangkaian item data yang terkait
Item data berurutan yang ada dalam record bisa mempunyai jenis yang berbeda
Contoh : Mengorganisasikan 3 item data yang berbeda ke dalam struktur data tunggal
– NIP : string(8)
– Nilai : real
– Lulus : boolean
Deklarasi Record
mahasiswa : record
NIP : string(8)
Nilai : real
Lulus : boolean
end record
Setiap elemen memiliki identifier sendiri
Elemen dari suatu record disebut field
Penunjukan ke setiap field dari suatu record bisa dilakukan dengan :
Notasi “dot” (titik)
Begin
mahasiswa.NPM := ‘51292215’
mahasiswa.Nilai := 90.5
mahasiswa.Lulus := True
End

Notasi “with”
Begin
with mahasiswa
do
NPM := ‘51292215’
Nilai := 90.5
Lulus := True
end with
End

4.List
Memberikan cara yang fleksibel untuk penanganan item data secara urut
Perubahan terhadap urutan tersebut dapat dicapai (dilakukan) dengan perpindahan data yang minimal dan kehilangan ruang penyimpanan yang sedikit
Beberapa istilah
– Datum : item data dalam list
– Pointer : penunjuk yang menyambungkan item data satu dengan yang lain
– Node / elemen : elemen dari suatu list yang terbentuk dari datum dan pointer
– Terminator : pointer terakhir dari list
– Start pointer : menyatakan tempat datum pertama
– Free storage pointer : menyatakan di mana datum berikutnya bisa mengarah atau menuju
5.Tree
Struktur data hirarki
Dikonstruksi menggunakan aturan preseden untuk item data, misal : menggunakan rangkaian alfabet atau numerik
Beberapa Istilah :
– Node : elemen dari suatu tree
• Setiap node memiliki (sedikitnya) dua pointer yaitu left pointer dan right pointer
– Root node : datum pertama yang ditempatkan dalam tree
– Parent node : node yang memiliki node di bawahnya (sub-node)
– Child node : node yang berada di bawah parent
– Leaf node : node yang tidak mempunyai child
Contoh : bilangan-bilangan ini (56 42 89 65 48) ditempatkan ke dalam tree



Catatan :
– Node paling kiri berisi bilangan terkecil
– Node paling kanan berisi bilangan terbesar

referensi : openstorage.gunadarma.ac.id/handouts/D3_TK/PDE/
http://id.wikipedia.org/wiki/Struktur_data

Bahasa pemograman

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu set aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Bahasa Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh komputer dan manusia. Proses komputasi umumnya didefinisikan secara formal menggunakan konsep matematika dari Mesin Turing. Pada dasarnya bahasa Pemrograman dirancang untuk memfasilitasi komunikasi antara manusia dengan komputer
Sebuah bahasa pemrograman disebut Turing Complete jika dapat dipergunakan untuk mendeskripsikan semua komputasi yang dapat dilakukan Mesin Turing, yaitu memiliki variable integer dan operator aritmatik, pernyataan penugasan, pernyataan sekuensial, pernyataan seleksi, dan pernyataan iterasi
SecaraUmum terdapat 4 kelompok bahasa pemrograman yaitu :
1. Object Oriented Language (Visual dBase, Visual FoxPro, Dephi, Visual C)
2. high level (Seperti Pascal dan Basic),
3. middle level (Seperti Bahasa C), dan
4. low level (Seperti Bahasa Assembly).

a.Delphi
adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh CodeGear sebagai divisi pengembangan perangkat lunak milik Embarcadero, divisi tersebut sebelumnya adalah milik Borland. Bahasa Delphi, atau dikenal pula sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft .NET framework. Dengan menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE
Delphi terdapat 2 macam struktur yaitu struktur projrk dan struktur unit program Delphi.
Struktur Projek
Pada suatu projek yang anada bangun, terdapat sebuah file program utama yang berisi kode program untuk pengelolaan unit – unit. Kode program utama ini biasa juga disebut kode projek dan disimpan dalam file berekstensi .DPR.

Struktur Unit
Sebuah unit berisitipe-tipe, konstanmta-konstanta, variabel dan rutin (fungsi dari prosedur). Setiap unit didefinisikan dalaqm file .PAS yang menangani unit tersebut.

Kelebihan :
1). Sifatnya freeware
2). Dikembangkan dengan bahasa Pascal, sehingga pagi pengguna yang terbiasa dengan dasar pemrograman turbo Pascal akan lebih familiar.
3). Komponen yang disediakan sudah cukup lengkap tanpa harus add component dari sumber lain.
4). Dokumentasi cukup lengkap.

Kelemahan :
1). Pengguna yang tidak memiliki dasar pemrograman dengan bahasa Pascal akan mengalami kesulitan untuk pertama kalinya.
2). Setiap komponen yang dimasukkan dalam form tampilan, akan diikutsertakan kode deklarasi dan inisialisasinya dalam list code. Sehingga apabila terjadi perubahan komponen, penamaan maupun kesalahan penulisan kode, program tidak mau membetulkan otomatis.
3). Apabila terdapat form/list code lain yang di-include-kan, harus dituliskan code/nama dari form/lost code di bagian “uses” dan juga inisialisasi variablenya.


b.Bahasa C
merupakan salah satu bahasa pemrograman komputer. Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories.
Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa mempengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.
Kelebihan Bahasa C :
Beberapa alasan mengapa bahasa C banyak digunakan, diantaranya adalah sebagai berikut :
1. Bahasa C tersedia hampir di semua jenis komputer
2. Kode bahasa C sifatnya adalah portabel aplikasi yang ditulis dengan bahasa C untuk suatu komputer tertentu dapat digunakan di komputer lain hanya dengan sedikit modifikasi.
3. Bahasa C hanya menyediakan sedikit kata-kata kunci
4. Proses executable program bahasa C lebih cepat
5. Dukungan pustaka yang banyak keandalan bahasa C dicapai dengan adanya fungsi-fungsi pustaka.
6. C adalah bahasa yang terstruktur Bahasa C mempunyai struktur yang baik sehingga mudah untuk dipahami. C mempunyai fungsi-fungsi sebagai program bagiannya.
7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat menengah.
Bahasa C mampu menggabungkan kemampuan bahasa tingkat tingkat tinggi dengan bahasa tingkat tingkat rendah.
8. Bahasa C adalah kompiler karena C sifatnya adalah kompiler, maka akan menghasilkan executable program yang banyak dibutuhkan oleh program-program komersial.
Selain alasan tersebut ada beberapa alasan lain mengapa menggunakan bahasa C, yaitu:
a. C adalah bahasa pemrograman yang memiliki portabilitas tinggi.
Program C yang kita tulis untuk satu jenis platform, bisa kita kompile dan jalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standarisasi ANSI untuk C.
b. C adalah bahasa pemrograman dengan kata kunci (keyword) sedikit.
Kata kunci disini adalah merupakan fungsi ataupun kata dasar yang disediakan oleh kompiler suatu bahasa pemrograman. Hal ini membawa pengaruh semakin mudahnya kita menulis program dengan bahasa tingkat rendah. Pengaruh lain dari sedikitnya kata kunci ini adalah proses eksekusi program C yang sangat cepat.

Adapun kekurangan yang biasa di Bahasa C antara lain :
1. Banyaknya Operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.
2. Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

c.Visual Basic
merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM). Visual Basic merupakan turunan bahasa BASIC dan menawarkan pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda.
Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi eksternal tambahan.

Keuntungan Visual basic:
- Bahasa yang sederhana. Banyak hal yang mungkin sulit dilakukan jika kita menggunakan bahasa pemrograman lainnya, akan dapat dilakukan dengan mudah dengan menggunakan Visual basic.
- Karena Visual basic sangat populer, maka sangat banyak sumber-sumber yang dapat kita gunakan untuk belajar dan mengembangkan kemampuan kau baik berupa buku, web site dll
- Kita bisa memperoleh banyak tools baik gratis maupun tidak di Internet yang akan sangat membantu menghemat waktu kita dalam pemrograman.

Kekurangan Visual basic:
- Visual Basic adalah bahasa pemrograman yang powerful, tetapi sebenarnya tidak terlalu bagus untuk membuat game-game yang benar-benar memuaskan.
- Lebih lambat dibandingkan bahasa pemrograman lain.

d.Pascal
adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971. Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-kekurangan bahasa pemrograman yang ada pada saat itu.
Bahasa Pascal, secara garis besar mempunyai struktur sebagai berikut :
1. Judul program,
2. Blok program yang terdiri dari :
a. Bagian deklarasi, meliputi :
- deklarasi label,
- deklarasi konstanta,
- deklarasi tipe,
- deklarasi variabel,
- deklarasi prosedur dan/atau fungsi.
b. Bagian pernyataan, berisi perintah-perintah.
Latihan Pascal : Perulangan dan Seleksi Kondisi I – 2

Kelebihan :
- Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman. Pascal memiliki tipe data standar: boolean, integer, real, char, string,
- User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar.
- Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.
- Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang.
- Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.
Kekurangan:
Tidak fleksibel penggunaannya.

referensi : http://id.wikipedia.org/wiki/Bahasa_pemrograman

Senin, 26 April 2010

Induksi Matematika

Induksi matematika merupakan pembuktian deduktif, meski namanya induksi. Induksi matematika atau disebut juga induksi lengkap sering dipergunakan untuk pernyataan-pernyataan yang menyangkut bilangan-bilangan asli.
Teori Bilangan merupakan salah satu mata kuliah yang sangat familiar khususnya bagi mahasiswa yang mengambil jurusan atau pun program studi matematika. Dari namanya saja bisa kita amati bahwa hal-hal yang dipelajari dalam mata kuliah ini adalah mengenai dasar-dasar dari bilangan, yaitu berawal dari segala macam teori dari bilangan itu sendiri yang selanjutnya dapat digunakan dalam pendalaman materi matematika. Oleh karena itu, yang dasar ini harus benar-benar dikuasai agar dalam mempelajari matematika yang lebih tinggi tingkat kesulitannya tidak terlalu susah.

Sebenarnya, Teori Bilangan sudah kita gunakan dalam mempelajari matematika sejak dini, yaitu saat kita berada di bangku sekolah. Hanya saja mungkin kita tidak menyadari bahwa kita telah belajar tentang materi ini sebab di bangku sekolah kita hanya mengenal satu “matematika” saja. Sedangkan dalam matematika terdapat banyak cabangnya seperti geometri, aljabar, kalkulus termasuk juga Teori Bilangan. Lalu Teori Bilangan seperti apakah yang digunakan di SMA? Berikut ini akan kita kupas sedikit tentang Teori Bilangan untuk SMA.

Matematika identik dengan aksioma, teorema dan definisi serta tak lepas dari berbagai macam rumus. Dari definisi atau rumus pun diperlukan adanya pembuktian kebenarannya. Membuktikan kebenaran suatu definisi dan rumus ada berbagai macam cara dan salah satunya adalah dengan menggunakan Induksi Matematika. Seperti contoh berikut ini :

Terdapat pernyataan bahwa :

1 + 3 + 5 + … + ( 2n-1 ) = n2

Sebagai seorang matematika seharusnya kita tidak boleh langsung saja membenarkan pernyataan tersebut melainkan harus kita buktikan terlebih dahulu kebenarannya. Dengan menggunakan Induksi Matematika membuktikan kebenaran suatu pernyataan harus melalui prosedur sebagai berikut:

Memisalkan pernyataan tersebut. Misalkan pernyataan tersebut sebagai p(n) yaitu suatu proposisi yang berlaku untuk setiap bilangan asli n kemudian langkah selanjutnya adalah:

Langkah 1 : ditunjukkan bahwa p(1) benar

Langkah 2 : diasumsikan bahwa p(k) benar untuk suatu bilangan asli k>1, dan ditunjukkan bahwa p(k+1) benar.

Dengan Induksi Matematika langsung saja kita buktikan kebenaran dari pernyataan di atas.

Misalkan p(n) menyatakan 1 + 3 + 5 + … + ( 2n-1 ) = n2

Langkah 1:

p(1) adalah 1=12 , jelas benar

Langkah 2

Diasumsikan p(k) benar untuk suatu bilangan asli k, yaitu 1 + 3 + 5 + … + ( 2k-1 ) = k2

Dan ditunjukkan bahwa p(k+1) benar yaitu 1 + 3 + 5 + … + ( 2k-1 )+ (2k+1)= (k+1)2

Hal ini ditunjukkan sebagai berikut :

1 + 3 + 5 + … + ( 2k-1 )+ (2k+1) = k2+2k+1 = (k+1)2

Sehingga p(k+1) benar. Sehingga p(n) benar untuk setiap bilangan asli n.

soal:
4n – 1 habis dibagi 3 untuk setiap bilangan bulat positif n >= 1.

Jawab:

Langkah 1 (Basic Step)

S(1) = benar

S(n) = S(1)

n = 1

jika U = 4n – 1, maka nilai U berubah menjadi

U = 41 – 1

U = 3

Dari soal “habis dibagi 3” maka dari langkah 1 “benar” karena

U/3 = 3/3 = 1

Langkah 2 (Induktif Step)

S(k) = benar

S(n) = S(k)

n = k

Jadi, U = 4n – 1

U = 4k – 1 ……………pers1

Lalu

S (k +1) = benar

S(n) = S (k + 1)

n = k + 1

maka;

U = 4n – 1

U = 4k+1 – 1

U = 41 x 4k – 1

U = 4 x 4k – 1 ……………pers2

UJI KEBENARAN

S(k) = 4k – 1 ………1

S(k + 1) = 4 x 4k – 1 ……….2

Dari kedua persamaan maka didapat nilai:

4 x 4k - 4k = 3 x 4k …………pers3

gabungkan persamaan 3 + 1

3 x 4k + 4k – 1 …………pers4

maka,

UJI KEBENARAN I dengan cara menggunakan persamaan 3 yang nilainya habis dibagi 3, artinya nilai harus bernilai 1.

3 x 4k / 3 = 1 x 4k

jadi, uji kebenaran I benar karena hasilnya bernilai 1

UJI KEBENARAN II dengan cara menjumlahkan persamaan 3 + 1 yang hasilnya bernilai sama dengan persamaan 2

persamaan 3 + 1 :

3 x 4k + 4k – 1

4 x 4k – 1

jadi, uji kebenaran II benar karena hasilnya sama dengan persamaan II

Langkah 3 (kesimpulan)

Dari semua percobaan yang dilakukan, langkah 1 sampai langkah ke -2 bernilai benar. Maka kesimpulan akhir adalah BENAR.

referensi : http://blog.math.uny.ac.id/finahanifahidayati/2009/08/04/38/

Selasa, 16 Maret 2010

ashsgnjdfgm

Rabu, 24 Februari 2010

ALGORITMA

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.

Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.

Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.

Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.



Definisi Program/Pemrograman
• Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
• Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan. (Menurut P. Insap Santosa)
• Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang mempunyai komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan.
Bahasa Pemrograman
• Adalah alat untuk membuat program
• Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll.
• Perbedaan: cara memberikan instruksi
• Persamaan: bertujuan menghasilkan output yang sama
Paradigma Pemrograman
• Pemrograman Prosedural
• Berdasarkan urutan-urutan, sekuensial
• Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan.
• Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
• Pemrograman Fungsional
• Berdasarkan teori fungsi matematika
• Fungsi merupakan dasar utama program.
• Pemrograman Terstruktur
• Secara berurutan dan terstrukrtur.
• Program dapat dibagai-bagi menjadi prosedur dan fungsi.
• Contoh: PASCAL dan C
• Pemrograman Modular
• Pemrograman ini membentuk banyak modul.
• Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
• Sebuah program dapat merupakan kumpulan modul-modul.
• Contoh: MODULA-2 atau ADA
• Pemrograman Berorientasi Obyek
• Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi
• Contoh: C++, Object Pascal, dan Java.
• Pemrograman Berorientasi Fungsi
• Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.
• Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.
• Pemrograman Deklaratif
• Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.
• Contoh: PROLOG
sumber : Wikipedia & http://lecturer.ukdw.ac.id/anton/algoritmaTI.php

Selasa, 19 Januari 2010

Makanan penangkal Flu

Ada banyak cara untuk menghindari penularan virus influenza. Anda bisa memulainya dengan kebiasaan mencuci tangan, berolahraga teratur, hingga berusaha mendapatkan waktu istirahat yang cukup.

Namun, itu saja ternyata tidak cukup. Anda juga dapat mengonsumsi sejumlah makanan dan minuman yang bermanfaat untuk meningatkan kekebalan tubuh. Apa sajakah jenis-jenis makanan yang bisa membantu tubuh lebih tahan infeksi bibit penyakit itu? Berikut ini saran ahli gizi Amanda MacMillan dan Tamara Schryver RD, seperti dikutip dari situs Health24.com:

1. Yoghurt

Studi dari University of Vienna, Austria, menemukan bahwa minuman dua kemasan (sekitar 200 ml) yoghurt per hari sama efektifnya dengan konsumsi obat. Penelitian selama 80 hari di Swedia terhadap 181 pekerja pabrik yang diberi minuman probiotik yang mengandung lactobacillus menunjukkan penurunan jumlah hari sakit sebanyak 33 persen.


2. Bawang putih

Biarpun nggak semua orang tahan baunya, tapi bawang putih mengandung allicin aktif yang membuat tubuh bisa melawan infeksi dan bakteri. Studi lain menunjukkan, mereka yang makan bawang putih sedikitnya 6 siung per pekan memiliki resiko kanker usus 30 persen lebih rendah, begitu juga dengan resiko kanker lambung turun 50 persen. Jadi, makan setidaknya 2 siung bawang putih mentah per hari, atau selalu tambahkan geprakan bawang putih pada setiap masakan anda.

3. Ikan

Orang takut makan kerang, lobster, atau kepiting karena kolesterol. Padahal makanan laut mengandung selenium yang sangat kaya, itulah zat yang membantu sel darah putih menghasilkan sitokin protein yang bertugas mengusir virus flu dari tubuh. Ikan-ikan seperti salmon, makarel, dan hering juga baik dikonsumsi karena banyak mengandung lemak omega-3, yang membantu mengurangi pendarahan, mempelancar aliran darah, dan melindungi paru dari infeksi. Konsumsi makanan laut setidaknya dua kali dalam sepekan.

4. Jamur

Penelitian terkini menunjukkan, jamur meninggkatkan produksi dan aktivitas sel darah putih, dan membuatnya lebih agresif. “ini tentu sesuatu yang baik untuk dikonsumsi, khususnya ketika sedang mengalami infeksi virus,” Douglas Schar, DipPhyt, MCPP, MNIMH, Direktur Institude of Herbal Medicine in Washington DC.

Namun diluar empat jenis makan itu masih ada daging sapi yang kaya akan zink, serta sup ayam, teh dan gandum butir yang juga baik untuk meningkatkan kekebalan tubuh. Nah, anda tinggal mengombinasikan berbagai jenis nutrisi tersebut untuk mendapatkan hasil terbaik.

Trik makan telur

Anda sangat menyukai telur tapi sering ragu untuk mengkonsumsinya karena takut kolesterol bakal naik? Pada kenyataannya, telur memang salah salah satu sumber kolesterol yang cukup tinggi. Sebutir telur ukuran sedang kira-kira mengandung 210 mg kolesterol, atau dua pertiga dari batas asupan perhari. Wow!
Lalu apa yang bisa dilakukan agar kita tetap bisa mengonsumsi telur tanpa harus khawatir dengan kadar kolesterol? Beberapa trik berikut ini mungkin berguna bagi anda para penggemar telur, seperti dikutip dari situs gayahidupsehat.com:
1. Jika makan satu butir telur besar, batasi jumlah kolesterol dari makanan lainnya sampai sekitar 90 mg per hari.
2. Pilih makaan turunan susu yang berbahan rendah atau bebas lemak. Begitu juga dengan daging, pilih kandungan lemaknya sedikit.
3. Buat setidaknya satu jenis makanan vegetarian. Pasalnya, hanya makanan yang berasal dari hewan yang mengandung kolesterol. Makanan nabati mempunyai kolesterol nol.
4. Pilih daging rendah lemak, itupun tidak lebih dari tumpukan kartu remi sekitar 85 gram.
5. Beralihlah ke telur ukuran sedang, maka anda menghemat kelebihan 25 mg kolesterol.


Jadi, pada intinya potongan asupan kolesterol dengan cara mengurangi ukuran telur, dan mengombinasikannya dengan sumber nutrisi lain yang berfungsi sebagai penagkal kolesterol darah. Dengan beberapa trik itu, kolesterol anda niscaya tidak akan melebihi kebutuhan harian, 300 mg.

Hanya saja, tetap ada pengecualian, khususnya bagi mereka yang sudah memiliki kadar kolesterol cukup tinggi, diatas 240 mg/dl, atau mereka yang bertekanan darah tinggi dan diabetes. Batasan asupan harian kolesterol diturunkan menjadi 200 mg.

Untuk kalangan khusus ini, sebaiknya pilih telur berukuran sedang atau kecil. Dan, jangan lupa untuk memangkas kolesterol dari makanan lainnya. Beres kan?

Sumber : Warta Kota, 17 Januari 2010

Kamis, 14 Januari 2010

“Makanan” untuk rambut sehat

PERAWATAN rutin dipercaya mengurangi kerontokan rambut dan membuat mahkota anda kian bersinar, serta tumbuh lebat. Namun, tidak sepenuhnya disadari kaum hawa bahwa merawat kecantikan rambut tak hanya dari luar, tapi juga dari dalam.
keindahan rambut dapat tercermin dari asupan makanan yang telah anda konsumsi. Apabila anda mendambakan rambut sehat terawat, Allwomenstalk memaparkan daftar makanan bergizi yang wajib anda konsumsi, di antaranya :

telur
rahasia rambut sehat juga terletak pada makanan sehat seperti telur. cobalah mengkonsumsi beberapa telur, baik diolah dengan cara direbus ataupun digoreng. Telur merupakan salah satu sumber protein yang diperlukan untuk menyehatkan rambut.

wortel
wortel baik untuk kesehatan rambut anda. Wortel mengandung vitamin A yang tidak hanya menjadikan kulit kepalasehat, tetapi juga sangat bermanfaat untuk mencegah kerontokan rambut.

salmon
jenis ikan satu ini merupakan smber protein berkualitas tinggi yang kaya asam lemak Omega 3. Selain itu, ikan salmon mengandung vitamin B12 dan zat besi yang diperlukan rambut agar bisa tumbuh subur.

kacang-kacangan
jika anda mendambakan rambut berkilau dan lebat, konsumsilah bahan makanan kacang-kacangan. Kacang Brazil sangat kaya kandunagan selenium, mineral yang sangat penting untuk kulit kepala.
Kacang kenari mengandung asam lemak Omega-3 dan alfalinolenat yang sangat bagus untuk rambut. Kacang-kacangan juga merupakan sumber zinci. Beberapa kacang baik untuk rambut sehat, di antaranya kacang almond dan kacang mete.

Sumber : Koram seputar Indonesia, 6 Januari 2010

Supaya gigi lebih putih

Tak bisa dipungkiri bahwa gigi yang putih dan bersih memperindah sebuah senyuman. Malah, mungkin menyempurnakannya. Pada umumnya orang tidak terlalu percaya diri ketika tersenyum. Ada banyak alasan untuk itu. Karena itu, kini ditawarkan beberapa perawatan aman.
§ CARA mudah dan sederhana adalah menggosok gigi tiga kali sehari dan setiap selesai makan. Namun, hati-hati dalam menyikat gigi. Jangan terlalu keras karena itu malah bisa membuat gigi abrasi dan rusak. Lebih baik gunakan sikat gigi elektrik dan atur waktu menyikat gigi selama dua menit.
§ STROBERI adalah buah pemutih gigi yang sangat special. Hancurkan buah stroberi dan tempelkan pada seluruh gigi. Diamkan selama 1-2 menit. Setelah itu, gosoklah gigi sampai bersih.
§ GUNAKAN pasta gigi yang berperan sebagai pemutih. Namun, tentunya butuh waktu yang cukup lamadan perlakuan yang sangat intensif untuk mendapatkan hasil yang maksimal.
§ GUNAKAN sedotan jika anda minum kopi, the, minuman bersoda, dan merah. Dengan demikian, minuman tidak mengenai gigi secara langsung. Minuman semacam itu bisanya membuat gigi rusak.
§ YANG termudah dan tercepat, namun membutuhkan biaya lebih besar, adalah bleaching atau pemutihan. Hasil perawatan seperti ini bisa bertahan selama 2-3 tahun. Tetapi tetap saja setelah bleaching, anda harus menghindari makanan dan minuman yang bisa membuat gigi kembali kuning.
§ SEJUMLAH zat bisa melekat pada gigi dengan mudah. Gunakan brokoli, daun selada, atau bayam untuk mencegahnya.

Sumber : Koran Seputar Indonesia, 6 Januari 2010

Selasa, 05 Januari 2010

rate of return

Rate of return (ROR) adalah tingkat pengembalian / tingkat bunga yang diterima oleh investor atas investasi yang tidak diamortisasikan. Rate of return dapat disebut dengan Internal rate of return (IRR). Metode ini paling umum digunakan dalam analisa ekonomi.

Metode “Internal Rate of Return”
Metode ini untuk membuat peringkat usulan investasi dengan menggunakan tingkat pengembalian atas investasi yang dihitung dengan mencari tingkat diskonto yang menyamakan nilai sekarang dari arus kas masuk proyek yang diharapkan terhadap nilai sekarang biaya proyek atau sama dengan tingkat diskonto yang membuat NPV sama dengan nol.
RUMUS!
Apabila Ao adalah investasi pada periode 0 dan A1 sampai An adalah aliran bersih dari periode 1 sampai n, maka metode IRR semata mata mencari discount factor yang menyamakan A0 dengan A1 sampai An
Penerimaan atau penolakan usulan investasi ini adalah dengan membandingkan IRR dengan tingkat bunga yang disyaratkan (required rate of return). Apabila IRR lebih besar dari pada tingkat bunga yang disyaratkan maka proyek tersebut diterima, apabila lebih kecil diterima.
Kelemahan secara mendasar menurut teori memang hampir tidak ada, namun dalam praktek penghitungan untuk menentukan IRR tersebut masih memerlukan penghitungan NPV

Internal Rate of Return (IRR)
Ukuran kedua yang sering digunakan dalam analisis manfaat finansial adalah internal rate of return (IRR) atau tingkat pengembaliandari investasi. IRR menunjukan tingkat discount rate atau tingkat keuntungan dari investasi yang menghasilkan NPV sama dengan nol.
Untuk mengitung IRR digunakan rumus sebagai berikut:
RUMUS
Kriteria penilain digunakan tingkat bunga bank. Jadi, jika IRR ??tingkat bunga bank, maka usaha yang direncanakan atau yang diusulan layak untuk dilaksanakan, dan jika sebaliknya usaha yang direncanakan tidak layak untuk dilaksanakan.

Internal Rate of Return (IRR)
Teknik perhitungan dengan IRR banyak digunakan dalam suatu analisis investasi, namun relatif sulit untuk ditentukan karena untuk mendapatkan nilai yang akan dihitung diperlukan suatu 'trial and error' hingga pada akhirnya diperoleh tingkat bunga yang akan menyebabkan NPV sama dengan nol. IRR dapat didefinisikan sebagai tingkat bunga yang akan menyamakan present value cash inflow dengan jumlah initial investment dari proyek yang sedang dinilai.
Dengan kata lain, IRR adalah tingkat bunga yang akan menyebabkan NPV sama dengan nol, karena present value cash inflow pada tingkat bunga tersebut akan sama dengan initial investment. Suatu usulan proyek investasi akan ditetima jika IRR > cost of capital dan akan ditolak jika IRR < cost of capital. Perhitungan IRR untuk pola cash flow yang bersifat seragam (anuitas), relatif berbeda dengan yang berpola tidak seragam.
Menurut Arifin dan Fauzi (1999:13) bahwa: Adapun langkah-langkah menghitung IRR untuk pola cash flow yang sama adalah sebagai beiikut:
a. Hitung besarnya payback period untuk proyek yang sedang dievaluasi.
b. Gunakan tabel discount factor, dan pada baris umur proyek, cari angka yang sama
atau mendekati dengan hasil payback period pada langkah 1 di atas. IRR terletak pada persentase terdekat hasil yang diperoleh.
c. Untuk mendapatkan nilai IRR yang sesungguhnya dapat ditempuh dengan menggunakan interpolasi.
Sedangkan untuk proyek yang memiliki pola cash inflow yang tidak seragam, dapat diselesaikan dengan langkah-langkah berikut:
a) Hitung rata-rata cash inflow per tahun
b) Bagi initial investment dengan rata-rata cash inflow untuk mengetahui "estimasi" payback period dari proyek yang sedang dievaluasi.
c) Gunakan tabel discount factor untuk menghitung besarnya IRR, seperti langkah ke-2 dalam menghitung IRR untuk pola cash flow yang berbentuk seragam (anuitas). Hasil yang diperoleh akan merupakan "perkiraan IRR'.
d) Selanjutnya sesuaikan IRR yang diperoleh pada langkah ke-3 di atas, yaitu diperbesar atau diperkecil, ke dalam pola cash flow yang sesungguhnya. Apabila cash inflow yang sesungguhnya dalam tahun-tahun pertama temyata lebih besar dari rata-rata yang diperoleh dalam langkah ke 1 di atas, maka perbesarlah tingkat discount yang digunakan, dan apabila sebaliknya maka perkecillah discount tersebut.
e) Dari hasil discount rate yang diperoleh pada langkah ke-4, kernudian hitunglah NPV dari
proyek tersebut.
f) Apabila hasil yang diperoleh lebih besar dari nol, maka naikkanlah discount rate yang digunakan, dan apabila sebaliknya maka turunkanlah discount rate tersebut.
g) Hitunglah kembali NPV dengan menggunakan discount rate yang baru, sampai akhirnya diperoleh discount rate yang secara berurutan menghasilkan NPV yang positif dan negatif.
Dengan jalan interpolasi akan ditemukan nilai IRR yang sesungguhnya.

Setelah IRR diketahui langkah selanjutnya adalah membandingkan IRR dengan cost of capital. Apabila IRR lebih besar dari pada cost of capital maka rencana investasi dapat diterima karena menguntungkan dan sebaliknya apabila IRR lebih kecil dari pada cost of capital maka rencana investasi ditolak karena merugikan.

Internal Rate of Return
Menentukan tingkat bunga (try & Error) yang menyebabkan NPV sama dengan 0 (nol).
berdasarkan perhitungan NPV yang sudah didapatkan.
Jika IRR >= Cost of Capital maka : Proyek dipertimbangkan diterima.

http://one.indoskripsi.com/node/2112