WELCOME GUYZZZZ...

elektro - kabe hatake

Selasa, 02 November 2010

SISTEM I/O

Sistem I/O terdiri dari :
1.Perangkat Keras I/O
2.Aplikasi Antarmuka I/O
3.Kernel I/O Subsystem
4.Mengubah I/O Request Menjadi Operasi Perangkat Keras
5.Streams
6.Performance
Perangkat Keras I/O terdiri dari :
1.Banyaknya jenis perangkat keras I/O
2.Konsep Umum :
a. Port
b. Bus (Daisy chain atau shared direct access)
c. Controller (host adapter)
3.Perangkat kontrol instruksi I/O
4.Perangkat-perangkat tersebut memiliki alamat, digunakan untuk:
a. Instruksi I/O langsung
b. Memory-mapped I/O
Jenis Perangkat Keras terdiri dari :
1.Perangkat penyimpan data
2.Perangkat penghubung
3.Perangkat antarmuka dengan user
Konsep Umum Sistem I/O ialah :
1.Suatu perangkat berhubungan dengan sistem komputer dengan cara mengirim sinyal melalui suatu kabel atau bahkan melalui udara.
2.Perangkat tersebut berkomunikasi dengan mesin melalui port
3.Struktur komputer yang umum dipakai adalah Daisy Chain

Dalam dunia komputer, BIOS atau Basic Input-Output System, adalah suatu kode software yang ditanam di dalam suatu sistem komputer yang memiliki fungsi utama untuk memberi informasi visual pada saat komputer dinyalakan, memberi akses ke keyboard dan juga memberi akses komunikasi secara low-level diantara komponen hardware, seperti untuk meload sistem operasi dari storage ke RAM. BIOS dapat disebut sebagai miniatur dan suatu sistem operasi yang dikhususkan untuk komunikasi low-level pada hardware. BIOS biasanya ditulis dalam bahasa assembly atau mesin yang mana bahasa ini biasanya spesifik kepada suatu prosesor tertentu.
Istilah BIOS ini pertama kali muncul pada sistem operasi CP/M, sebagian dari dari CP/M diload ketika saat booting dan berhubungan dengan hardware. (Mesin CP/M biasanya memiliki boot loader sederhana di dalam ROM). Sebagian besar dari versi DOS memiliki suatu file yang bernama IBMBIO.COm atau IO.SYS yang bisa dikatakan sebagai analogi dari BIOS disk pada CP/M.
Bagaimana BIOS booting?
BIOS menjalankan flash memory onboard ketika komputer dinyalakan dan dia akan menginisialisasi chipset dan juga subsistem dari memori. Selanjutnya, dia akan mendekompres dirinya sendiri dari flash memory tadi untuk kemudian menuju ke memori utama dan mulai dieksekusi dari sana. Kode PC BIOS biasanya juga berisi semacam diagnosa untuk memastikan kondisi dari komponen hardware yang sifatnya penting, seperti misalnya keyboard, disk drive, I/O ports dan lain sebagainya. BIOS memastikan apakah alat-alat tersebut bisa berfungsi dengan baik dan diinisialisasi dengan benar. Hampir semua implementasi BIOS dapat mengeksekusi suatu program setup melalui CMOS memory. Memori ini menyimpan konfigurasi yang dapat diatur oleh user (seperti time, date dan juga informasi detail mengenai hardisk dan lain sebagainya) dan bisa diakses oleh BIOS.
Pada implementasi BIOS yang modern, seseorang dapat memilih apa yang dibooting pertama kali, seperti CD, hardisk, floppy disk, flash keydrive dan lain sebagainya. Ini sangat berguna ketika Anda ingin menginstall suatu sistem operasi atau juga melakukan booting dari CD-ROM. Bahkan Anda juga bisa melakukan booting dari media USB.
Beberapa sistem BIOS membolehkan user untuk memilih sistem operasi yang ingin diload (misalnya load OS lain dari hardisk yang berbeda dalam satu PC), meskipun cara ini sekarang lebih sering dihandle oleh fase berikutnya atau yang sering dikenal dengan tool boot loader.
BIOS sebagai suatu firmware
BIOS terkadang disebut sebagai firmware karena merupakan bagian integral dari suatu sistem hardware.Sebelum 1990, BIOS berada dalam chip ROM dan tidak bisa diubah. Seiring dengan semakin kompleksnya sistem dan juga kebutuhan akan “bisa diupgrade” maka sekarang BIOS firmware disimpan di dalam EEPROM atau flash memory device yang dapat dengan mudah diupgrade isinya oleh user. Sementara itu, kesalahan dalam proses upgrade dari BIOS akan menyebabkan sistem komputer tidak akan bisa diakses. Untuk mencegah BIOS corruption, maka beberapa motherboard yang baru memiliki backup BIOS (“Dual BIOS” boards). Meskipun demikian, banyak BIOS yang memiliki “boot block” dimana bagian ini adalah bagian dari ROM yang berjalan pada saat pertama kali dan tetap tidak bisa diupdate. Kode dalam boot block ini akan memastikan sisa BIOS block lainnya melalui prosedur checksum, hash dan lain sebagainya, sebelum loncat ke block tersebut. Jika boot block mendeteksi adanya kerusakan atau corruption, maka dia akan melakukan booting melalui floppy disk sehingga user dapat melakukan flashing lagi dengan image yang lebih bagus. Beberapa pembuat hardware seringkali mengeluarkan update BIOS untuk mengupdate dan upgrade produk mereka dan juga menghilangkan bug yang ada.
Firmware pada card adapter
Suatu sistem komputer dapat berisi beberapa chip BIOS. Sebagai tambahan dari boot BIOS yang fungsi utamanya untuk mengakses komponen fundamental dari komputer, maka plug-in adapter card seperti SCSI atau USB hardisk adapter atau network card dapat memiliki BIOS sendiri dan merupakan komplemen atau pengganti dari kode BIOS untuk komponen tersebut.
Untuk mencari ekspansi ROM memori yang sudah dimapping selama proses booting, implementasi BIOS dari PC menscan memori real dari alamat 0xC8000 sampai 0xF0000 dalam batas 2 kilobyte mencari suatu signature 0×55 0xaa, yang mana diikuti dengan suatu byte yang mengindikasikan sejumlah 512 byte block dari expansion memory yang menduduki memori real. BIOS kemudian loncat ke offset setelah size byte, dimana pada titik tersebut kode dari expansion ROM mengambil alih dan menggunakan service BIOS untuk memberikan user sebuah configuration interface, meregister interrupt vector yang digunakan oleh aplikasi setelah booting, atau menampilkan informasi diagnosa.
Pada sistem UNIX, ada suatu utility dimana Anda dapat melakukan dump terhadap software BIOS firmware. Anda bisa dapatkan pada alamat http://www.linuks.mine.nu/ree/
Spesifikasi BIOS boot
Jika expansion ROM ingin merubah cara dari suatu sistem melakukan booting (misalnya saja boot dari jaringan atau SCSI adapter dimana BIOS tidak memiliki drivernya), maka dia dapat menggunakan BIOS Boot Specification (BBS) API untuk meregisterkan kemampuan tambahannya. Sesaat setelah expansion ROM sudah teregister menggunakan BBS API, maka pengguna akan dapat memilih berbagai macam pilihan booting dari user interface BIOS. Hal ini yang menyebabkan mengapa kebanyakan implementasi BIOS yang compliant dengan BBS, tidak akan membolehkan pengguna untuk masuk ke dalam BIOS user interface sampai expansion ROM selesai dalam mengeksekusi dan meregister dirinya sendiri dengan API BBS.

Input Device
Adalah alat yang digunakan untuk menerima input dari luar sistem, dan dapat berupa signal input atau maintenance input. Di dalam sistem komputer, signal input berupa data yang dimasukkan ke dalam sistem komputer, sedangkan maintenance input berupa program yang digunakan untuk mengolah data yang dimasukkan. Dengan demikian, alat input selain digunakan untuk memasukkan data juga untuk memasukkan program.
Beberapa alat input mempunyai fungsi ganda, yaitu disamping sebagai alat input juga berfungsi sebagai alat output sekaligus. Alat yang demikian disebut sebagai terminal. Terminal dapat dihubungkan ke sistem komputer dengan menggunakan kabel langsung atau lewat alat komunikasi. Terminal dapat digolongkan menjadi non intelligent terminal, smart terminal, dan intelligent terminal.Non intelligent terminal hanya berfungsi sebagai alat memasukkan input dan penampil output, dan tidak bisa diprogram karena tidak mempunyai alat pemroses. Peralatan seperti ini juga disebut sebagai dumb terminal. Smart terminal mempunyai alat pemroses dan memori di dalamnya sehingga input yang terlanjur dimasukkan dapat dikoreksi kembali. Walaupun demikian, terminal jenis ini tidak dapat diprogram oleh pemakai, kecuali oleh pabrik pembuatnya. Sedangkan intelligent terminal dapat diprogram oleh pemakai.
Peralatan yang hanya berfungsi sebagai alat input dapat digolongkan menjadi alat input langsung dan tidak langsung. Alat input langsung yaitu input yang dimasukkan langsung diproses oleh alat pemroses, sedangkan alat input tidak langsung melalui media tertentu sebelum suatu input diproses oleh alat pemroses. Alat input langsung dapat berupa papan ketik (keyboard), pointing device (misalnya mouse, touch screen, light pen, digitizer graphics tablet), scanner (misalnya magnetic ink character recognition, optical data reader atau optical character recognition reader), sensor (misalnya digitizing camera), voice recognizer (misalnya microphone).
Sedangkan alat input tidak langsung misalnya keypunch yang dilakukan melalui media punched card (kartu plong), key-to-tape yang merekam data ke media berbentuk pita (tape) sebelum diproses oleh alat pemroses, dan key-to-disk yang merekam data ke media magnetic disk (misalnya disket atau harddisk) sebelum diproses lebih lanjut.

Output Device
Adalah perangkat keras komputer yang berfungsi untuk menampilkan keluaran sebagai hasil pengolahan data. Output yang dihasilkan dari pemroses dapat digolongkan menjadi empat bentuk, yaitu tulisan (huruf, angka, simbol khusus), image (dalam bentuk grafik atau gambar), suara, dan bentuk lain yang dapat dibaca oleh mesin (machine-readable form). Tiga golongan pertama adalah output yang dapat digunakan langsung oleh manusia, sedangkan golongan terakhir biasanya digunakan sebagai input untuk proses selanjutnya dari komputer. Peralatan output dapat berupa :
• Hard-copy device, yaitu alat yang digunakan untuk mencetak tulisan dan image pada media keras seperti kertas atau film. Sifatnya permanen dan lebih portable (dapat dilepas dari alat outputnya dan dapat dibawa ke mana-mana). Alat yang umum digunakan untuk ini adalah printer, plotter, dan alat microfilm.
• Soft-copy device, yaitu alat yang digunakan untuk menampilkan tulisan dan image pada media lunak yang berupa sinyal elektronik. Misalnya video display, flat panel, dan speaker.
• Drive device atau driver, yaitu alat yang digunakan untuk merekam simbol dalam bentuk yang hanya dapat dibaca oleh mesin pada media seperti magnetic disk atau magnetic tape. Alat ini berfungsi ganda, sebagai alat output dan juga sebagai alat input menggunakan media magnetic disk misalnya adalah disk drive, dan yang menggunakan media magnetic tape adalah tape drive


REFERENSI :
http://habeahan.wordpress.com/2008/04/25/mengenal-bios-basic-input-output-system/
http://free.vlsm.org/v06/Kuliah/SistemOperasi/2003/49/produk/transparan/s7.pdf

PROSESOR PENTIUM GENERASI PERTAMA DAN KEDUA

Prosesor Pentium generasi pertama, yang memiliki nama kode i586, P5, atau 80586 memiliki kecepatan 60 MHz dan 66 MHz. Prosesor ini dipaketkan pada paket Pin-Grid Array 273-pin yang ditancapkan pada Socket-4. Prosesor ini dibangun dengan menggunakan teknik manufaktur Bipolar CMOS 800. Karena ada 3100000 tabung vakum di dalamnya (sekarang digantikan fungsinya oleh transistor yang berukuran sepermiliar meter), prosesor ini pun terlihat besar karena untuk menetralisir panas yang dihasilkan diperlukan komponen tambahan. Akibatnya, prosesor ini hanya tersedia sebentar saja di pasaran. Prosesor ini pun menggunakan tegangan operasi yang sangat besar 5 volt, yang menyebabkannya ia boros daya (hingga 16 Watt), dan juga panas yang berlebih.
Menyadari kelemahan Pentium generasi pertama, Intel pun merevisi Pentium dengan meluncurkan Pentium generasi selanjutnya (yang memiliki nama kode P54C), pada tanggal 7 Maret 1994. Prosesor baru ini diperkenalkan pada frekuensi 90 MHz, 75 MHz, 100 MHz. Selanjutnya dirilis pula seri dengan kecepatan 120 MHz, 133 MHz, 150 MHz, 166 MHz, dan yang tercepat 200 MHz. Berbeda dengan prosesor Pentium Generasi awal, prosesor ini dibangun dengan menggunakan teknologi manufaktur Bipolar CMOS 600 nanometer, mengikuti beberapa saingannya dari Motorola dan IBM. Versi yang lebih baru (120 MHz ke atas) bahkan dibuat dengan menggunakan teknologi manufaktur 350 nanometer, sehingga dapat menampung 3300000 transistor. Dengan menggunakan teknologi manufaktur yang lebih canggih, Pentium pun lebih ramping dan lebih hemat daya (frekuensi 200 MHz hanya memakan 15.5 Watt).
Prosesor ini dipaketkan dengan menggunakan paket Staggered Pin-Grid Array (SPGA) 296-pin yang tentu saja tidak kompatibel dengan prosesor generasi sebelumnya. Satu-satunya cara yang digunakan oleh pengguna untuk melakukan upgrading dari prosesor generasi pertama ke generasi kedua adalah dengan melakukan penggantian motherboard.

Referensi : Organisasi Dan Arsitektur Komputer, Eviana Puspaningrum, Universitas Negeri Malang

SEJARAH PENTIUM INTEL

Pentium adalah generasi kelima dari arsitektur prosesor mikro x86 buatan Intel Corporation, yang desainnya dibuat oleh Vinod Dham. Pentium merupakan penerus dari jajaran prosesor 486, dan mulai dijual ke pasaran pertama kali pada tanggal 22 Maret 1993. Nama asli (kode) Pentium adalah 80586 atau i586, untuk mengikuti penamaan generasi sebelumnya.
Pentium merupakan prosesor pertama dari Intel yang menggunakan arsitektur superskalar, sehingga walaupun Pentium merupakan prosesor yang bersifatCISC, Pentium dapat bekerja seperti layaknya prosesor RISC, meskipun pada saat itu belum ada aplikasi yang mampu mengutilisasinya.
Intel beberapa kali melakukan revisi prosesor Pentium miliknya, yakni dikarenakan ada kesalahan dalam operasi pembagian terhadap bilangan floating pointyang tenar dengan sebutan Floating Point Division Bug. Selain karena kesalahan tersebut, Intel juga pernah merevisi Pentium karena ada masalah pada panas dan penurunan tegangan, serta pengubahan proses manufaktur prosesor.

Referensi : ORGANISASI DAN ARSITEKTUR KOMPUTER, Eviana Puspaningrum, Universitas Negeri Malang

CENTRAL PROCESSING UNIT (CPU)

Bagian ini berfungsi sebagai pemegang kendali dari jalannya kegiatan komputer, dan dikarenakan itu, CPU juga disebut sebagai otak dari komputer. Selain dari pada itu, CPU juga berfungsi sebagai tempat untuk melakukan berbagai pengolahan data. Pekerjaan pengolahan data diantaranya: mencatat, melihat, membaca, membandingkan, menghitung, mengingat, mengurutkan maupun membandingkan.
CPU juga disebut sebagai microprocessor. Dimana untuk bekerja microprocessor dipengaruhi oleh kapasitas pemrosesan Bit-nya dan juga frekwensi kerjanya. Kapasitas bit untuk Microprocessor ada 8 bit, 16 bit, 32 bit dan 64 bit. Kemampuan CPU dilihat dari bit-nya, bila suatu processor berkapasitas pemrosesan 8 bit, dapat diartikan bahwa pemrosesan tersebut memiliki 8 pintu masuk untuk menerima bit-bit instruksi. Dengan demikian, processor 16 bit, dapat memproses kira-kira 2 kali lebih cepat dari yang 8 bit.

Faktor lain yang mempengaruhi kecepatan kerja microprocessor adalah frekwensi kerja komputer. Ada CPU yang mempunyai frekwensi 4.77 Mhz (mega hertz = juta hertz), 8 Mhz, 16 Mhz, 40 Mhz, 50 Mhz dan lain sebagainya. Semakin tinggi frekuensi yang dimilikinya, semakin tinggi pula kecepatan memprosesnya.

Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut.
• Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
o Mengatur dan mengendalikan alat-alat input dan output.
o Mengambil instruksi-instruksi dari memori utama.
o Mengambil data dari memori utama (jika diperlukan) untuk diproses.
o Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
o Menyimpan hasil proses ke memori utama.
• 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.
• 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 (³ ).
• CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.

Sumber:
Unit pengolah pusat
http://id.wikipedia.org/wiki/Unit_Pengolah_Pusat
Kosep dasar komputer
http://kuliah.dinus.ac.id/edi-nur/intro1-cad.html

Sabtu, 29 Mei 2010

Algoritma binary search

Sebuah algoritma pencarian biner (atau pemilahan biner) adalah sebuah teknik untuk menemukan nilai tertentu dalam sebuah larik (array) linear, dengan menghilangkan setengah data pada setiap langkah, dipakai secara luas tetapi tidak secara ekslusif dalam ilmu komputer. Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Sebuah pencarian biner adalah salah satu contoh dari algoritma divide and conquer (atau lebih khusus algoritma decrease and conquer) dan sebuah pencarian dikotomi (lebih rinci di Algoritma pencarian).
Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah permainan tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list) nilai.
Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list; oleh karena nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara yang sama. Berikut ini adalah pseudocode sederhana yang menentukan indeks (posisi) dari nilai yang diberikan dalam sebuah list berurut, a berada antara left dan right :
function binarySearch(a, value, left, right)
if right < left
return not found
mid := floor((right-left)/2)+left
if a[mid] = value
return mid
if value < a[mid]
return binarySearch(a, value, left, mid-1)
else
return binarySearch(a, value, mid+1, right)
Karena pemanggilan fungsi di atas adalah rekursif ekor, fungsi tersebut dapat dituliskan sebagai sebuah pengulangan (loop), hasilnya adalah algoritma in-place:
function binarySearch(a, value, left, right)
while left ≤ right
mid := floor((right-left)/2)+left
if a[mid] = value
return mid
if value < a[mid]
right := mid-1
else
left := mid+1
return not found
Pada kedua kasus, algoritma akan berakhir karena paa setiap pemanggilan rekursif atau pengulangan, jangkauan indeks right dikurang left akan selalu mengecil, dan akhirnya pasti akan menjadi negatif.
Pencarian biner adalah sebuah algoritma logaritmik dan bekerja dalam waktu O(log n). Secara khusus, 1 + log2N pengulangan yang diperlukan untuk menghasilkan jawaban. Hal ini dianggap lebih cepat dibandingkan sebuah pencarian linear. Pencarian biner dapat diimplementasikan dengan rekursi atau iterasi, seperti yang terlihat di atas, walaupun pada kebanyakan bahasa pemrograman akan lebih elegan bila dinyatakan secara rekursif.

Sebuah contoh aksi pencarian biner adalah sebuah permainan tebak-tebakan dimana seorang pemain harus menebak sebuah bilangan bulat positif yang dipilih oleh pemain lain di antara 1 dan N, dengan memanfaatkan jawaban pertanyaan berupa ya dan tidak. Misalnya N adalah 16 dan angka yang dipilih adalah 11, permainan dapat berjalan sebagai berikut.
• Apakah angka lebih besar dari 8? (Ya)
• Apakah angka lebih besar dari 12? (Tidak)
• Apakah angka lebih besar dari 10? (Ya)
• Apakah angkat lebih besar dari 11? (Tidak)
Sehingga, angka tersebut pasti 11. Pada setiap langkah, kita memilih sebuah angka yang tepat berada di tengah-tengah jangkauan nilai-nilai yang mungkin. Sebagai contoh, saat kita mengetahui angka tersebut lebih besar dari 8, tetapi lebih kecil atau sama dengan 12, kita mengetahui untuk memilih angka di tengah-tengah jangkauan [9, 12] (pada kasus ini 10 adalah yang optimal).
Paling banyak ada log2 Npertanyaan yang dibutuhkan untuk mendapatkan angka tersebut, karena setiap pertanyaan menghilangkan setengah dari ruang pencarian. Sebagai catatan bahwa dibutuhkan kurang dari satu pertanyaan (iterasi) untuk algoritma umum, karena angka tersebut dibatasi oleh sebuah jangkauan tertentu.
Walaupun angka yang kita tebak sangat banyak, pada kasus tidak ada batas atas N, kita masih dapat menemukan angka paling banyak dalam 2 [ log2 K] langkah (dimana k adalah angka yang dipilih (yang tidak diketahui)), caranya adalah dengan pertama-tama menemukan sebuah batas atas dengan melipatduakannya. Sebaai contoh, jika angka tersebut adalah 11, kita dapat menggunakan urutan tebakan sebagai berikut untuk menemukannya:
• Apakah angka lebih besar dari 1? (Ya)
• Apakah angka lebih besar dari 2? (Ya)
• Apakah angka lebih besar dari 4? (Ya)
• Apakah angka lebih besar dari 8? (Ya)
• Apakah angka lebih besar dari 16? (Tidak, N=16, lakukan seperti di atas)
(Kita mengetahui angka tersebut lebih besar dari 8)
• Apakah angka lebih besar dari 12? (Tidak)
• Apakah angka lebih besar dari 10? (Ya)
• Apakah angka lebih besar dari 11? (Tidak)
Satu penerapan sederhan, pada sistem kendali revisi, dimungkinkan memanfaatkan sebuah pencarian biner untuk melihat pada revisi mana sebuah cuplikan isi ditambahkan ke sebuah file. Dengan mudah kita lakukan sebuah pencarian biner terhadap seluruh history versi; jika isi tidak ada dalam suatu versi, suatu saat kemudian pasti akan muncul, dan jika ada pasti muncul di versi tersebut atau versi berikutnya. Cara ini lebih cepat dibandingkan dengan memeriksa setiap perbedaan antar versi.

sumber : http://id.wikipedia.org/wiki/Pencarian_biner

Algoritma Divide and Conquer

Algoritma Divide and Conquer merupakan algoritma yang sangat populer
di dunia Ilmu Komputer. Divide and Conquer merupakan algoritma yang
berprinsip memecah-mecah permasalahan yang terlalu besar menjadi beberapa
bagian kecil sehingga lebih mudah untuk diselesaikan.

Langkah-langkah umum algoritma Divide and Conquer :
Divide : Membagi masalah menjadi beberapa upa-masalah yang memiliki
kemiripan dengan masalah semula namun berukuran lebih kecil ( idealnya
berukuran hampir sama ).
Conquer : Memecahkan ( menyelesaikan ) masing-masing upa-masalah ( secara
rekursif ).
Combine : Menggabungkan solusi masing-masing upa-masalah sehingga
membentuk solusi masalah semula.

Objek masalah yang di bagi adalah masukan (input) atau instances yang
berukuran n: tabel (larik), matriks, dan sebagainya, bergantung pada masalahnya.
Tiap-tiap upa-masalah mempunyai karakteristik yang sama (the same type)
dengan karakteristik masalah asal, sehingga metode Divide and Conquer lebih
natural diungkapkan dalam skema rekursif.

Sesuai dengan karakteristik pembagian dan pemecahan masalah tersebut,
maka algoritma ini dapat berjalan baik pada persoalan yang bertipe rekursif
( perulangan dengan memanggil dirinya sendiri ). Dengan demikian, algoritma ini
dapat diimplementasikan dengan cara iteratif ( perulangan biasa ), karena pada
prinsipnya iteratif hampir sama dengan rekursif.
Salah satu penggunaan algoritma ini yang paling populer adalah dalam hal
pengolahan data yang bertipe array ( elemen larik ).
Mengapa ? Karena1pengolahan array pada umumnya selalu menggunakan prinsip rekursif atau iteratif.

Penggunaan secara spesifik adalah untuk mencari nilai minimal dan
maksimal serta untuk mengurutkan elemen array. Dalam hal pengurutan ini ada
empat macam algoritma pengurutan yang berdasar pada algoritma Divide and
Conquer, yaitu merge sort, insert sort, quick sort, dan selection sort. Merge sort
dan Quick sort mempunyai kompleksitas algoritma O(n ²log n). Hal ini lebih baik
jika dibandingkan dengan pengurutan biasa dengan menggunakan algoritma brute
force.

Skema Umum Algoritma Divide and Conquer :
prosedure DIVIDE_n_CONQUER(input n : integer)
{ Masukan: masukan yang berukuran n
Keluaran: solusi dari masalah semula
}
Deklarasi
r, k : integer
Algoritma
if n ≤ n0 then { masalah sudah cukup kecil }
SOLVE sub-masalah yang berukuran n ini
else
Bagi menjadi r sub-masalah, masing-masing
Berukuran n/
for masing-masing dari r upa-masalah do
DIVIDE_n_CONQUER(n/k)
endfor
COMBINE solusi dari r sub-masalah menjadi
solusi masalah semula
endif

SUMBER : gapra.files.wordpress.com/2009/01/algoritma-divide-and-conquer.pdf

Kamis, 22 April 2010

SPANNING TREE

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

TEKNIK SORTING

SORTING

Sorting (Pengurutan) merupakan proses penyusunan atau pengurutan sekumpulan data yang acak menjadi tersusun urut. Pengurutan dapat dilakukan secara terurut naik (ascending) atau terurut turun (descending). Tujuan pengurutan adalah mendapatkan kemudahan dalam pencarian anggota dari suatu himpunan disamping dapat mempercepat mengetahui data terbesar dan terkecil. Beberapa teknik dalam Sorting :
1. Bubble Sort
Mengurutkan data dengan cara membandingkan dua data yang letaknya berdekatan. Misalnya ada susunan data berikut :

index : 0 1 2 3 4 5
----------------------------------------------
Data : 2 20 13 15 5 45

Dua data yang letaknya berdekatan, 2 dan 20 akan dibandingkan pertama kali. Hasilnya, data yang terendah akan ditaruh di index pertama. Kemudian membandingkan index ke-dua dengan ke-tiga, data yang terendah dari perbandingan itu ditaruh di index ke-dua, dan begitu seterusnya.

2. Selection Sort
Dalam teknik ini pengurutan dilakukan dengan cara mencari data terkecil atau terbesar dari index awal sampai akhir kemudian ditukar posisinya.

3. Insertion Sort (Penyisipan)
Pengurutan dengan metode penyisipan dimulai dari data kedua, kemudian disisipkan pada tempat yang sesuai. Data pada posisi pertama diandaikan memang sudah pada tempatnya. Jadi pengurutan mulai dari membanding nilai data ke-2 dengan data sebelumnya, kemudian mencari posisi yang tepat untuk disisipkan.

4. 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)

5. 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

SUMBER : http://www.scribd.com/doc/13533354/Sorting
http://alpro.awardspace.com/tehnik.html

TEKNIK SEARCHING

Teknik Searching

Mungkin seluruh atau sebahagian dari kita selalu bergantung dengan search engine untuk mendapatkan informasi, berita, software gratis dan lain sebagainya. Tapi masih sangat sedikit yang mengerti searching yang baik. Ok mari kita mulai, bahawa dalam searching kita mengenal beberapa search engine salah satunya Google. Beberapa search engine mengenal karakter seperti +, - dan ". Tetapi masih banyak yang belum tahu mengenai karakter tersebut. Saya akan menggunakan mode Tanya jawab dalam menjelaskan hal tersebut.
Karakter Matematika.

# Tanda (+)

Ingin mencari artikel yang didalamnya terkandung kata hacking,security dan internet.

Anda dapat mengetikkan kata disearch engine : +hacking +security +internet Jika terdapat artikel yang memuat salah satu atau dua kata tersebut diatas tidak akan ditampilkan hanya artikel yang memuat tiga kata tersebut yang di tampilkan . Tanda + dibaca oleh search engine sebagai DAN symbol ini dapat dipakai sebanyak-banyaknya misalnya: +harga +komputer murah +untuk +wilayah +medan. Dan sebagai nya.

# Tanda (-)

Ingin mencari artikel yang didalamnya terkandung kata statistic penduduk kg baru kecuali lama.Ketik di search engine : +statistic +penduduk +kg baru -lama. Search engine yang bersangkutan akan mencari di internet artikel yan mengandung kata Statistik penduduk kg baru tetapi tidak terdapat kata lama. Atau seperti ini +tempat +wisata +bali -kuta. Maka search engine akan menampilkan artikel tentang tempat wisata di bali dan pada artikel tersebut tidak terdapat kata kuta. Tanda - dibaca oleh search engine sebagai KECUALI.

# Tanda (")

Ingin mencari artikel di internet yang didalamnya terdapat kata hacking dan security dan kata tersebut tidak dipisahkan oleh kata-kata yang lain. Klik di search engine : "hacking dan security" maka search engine yang bersangkuta akan mencari kata hacking dan security yang katanya tidak dipisah kan oleh kata-kata lain. Apabila ada artikel yang mengandung kata hacking dan security yang katanya dipisah kan
oleh kata-kata lain maka artikel tersebut tidak ditampilkan oleh search engine yang bersangkutan.


Dan anda dapat juga menggabungkan ketiga karakter tersebut tersebut seperti contoh berikut ini: +kuliah +"ilmu komputer" -bayar

Search engine akan mencari artikel di internet yang terdapat kata kuliah ilmu komputer kata ilmu komputer tidak akan dipisah kan oleh kata lain dan tidak akan menampilkan artikel tersebut bila terdapat kata bayar. Perlu di ingat bahwa penggunaan spasi untuk memisah kan antara kata-kata yang kita cari, spasi tersebut akaan dibaca ATAU contoh Ketik di search engine : ilmu komputer

Maka search engine akan menampilkan web yang mengandung kata ilmu atau komputer atau yang mengandung kata kedua-dua nya

Simbol Bolean

Seperti yang kita ketahui symbol bolean adalah kata-kata OR, AND dan NOT. Kita dapat menggunakan symbol tersebut dalam mencari informasi di internet.

# Bolean OR

Pada dasar nya symbol bolean OR sama seperti apabila kita menggunakan spasi contoh :
ilmu OR komputer

Search engine akan menampilkan web yang mengandung kata ilmu atau kata komputer atau kedua-duanya.

# Bolean AND

Penggunaan bolean AND sama dengan karakter/tanda + Contioh : ilmu AND komputer

Search engine akan menampilkan web yang mengandung kata ilmu komputer apabila tidak terdapat salah satu dari kata tersebut tidak akan di tampilkan.

# Bolean NOT

Penggunaan bolean NOT sama dengan tanda (- ) contoh saya akan mencari infor- masi tentang statistic penduduk di sumater tetapi tidak termasuk medan.

Ketik di sdearch engine : Statistik AND penduduk AND sumater NOT medan search engine akan menampilkan web yang berisi kata statistic penduduk sumatera tetapi tidak terdapat kata medan.

# Bolean NEAR

Contoh : saya ingin mencari kata ilmu komputeryang jarak antara kata tersebut berdekatan.

Ketik di search engine : ilmu NEAR komputer maka search engine akan menampilkan web yang berisi kata ilmu komputer yang jarak antara kedua kata tersebut berdekatan.

Penggunaan Bolean tersebut diatas dapat juga digabungkan contoh Saya ingin mencari definisi dari kata cinta atau kasih maka dapat di klik di search engine : definisi AND (cinta OR kasih) Search engine akan menampilkan web yang mengandung kata defini cinta atau definisi kasih

Sumber : http://thalz142.blogspot.com/2006/07/teknik-search-engine.html



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: angga = surahman
• 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 "+" didepan keyword tersebut.
Keyword: Blog how ==> Kata "how" akan diabaikan
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 : angga – gunadarma, maka akan menghasilkan pencarian tentang angga tanpa melibatkan kata gunadarma dalam hasilnya.
• Tidak sebagaimana pencarian file dalam dekstop, maka Google tidak mendukung pencarian dengan bantuan tanda * sebagai pengganti huruf sisa. Dalam pencarian dektop, bila kita ingin mencari dengan kata depan komput*, maka akan muncul berbagai kemungkinan : komputa,komputer, dll. Namun di google hanya akan menghasilkan kata "komput". Namun demikian google mendukung penggunaan * dalam pencarian kalimat. Maka keyword: "menjadi * politisi ", hasilnya adalah pencarian "menjadi seorang politisi","menjadi muslim politisi",
• Menyortir dokumen hasil pencarian berdasar tipe filenya, gunakan perintah filetype : ekstensi file, contohnya : informatika filetype:pdf. Ekstensi file yang didukung dalam pencarian ini antara lain adalah :
o Microsoft Word Document => .doc
o Portable Document Format => .pdf
o Microsoft Power Point Slide => .pps
o Microsoft Power Point Presentation => .ppt
o Microsoft Excel => .xls
o Text Format => .txt
o Rich Text Format => .rtf
o Compiled HTML Help Modules => .chm
Contoh:
filetype:xls -> untuk mencari file MS Excel
filetype:doc -> untuk mencari file MS Word
• 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
Anda dapat mengkombinasikan berbagai option di atas untuk mendapatkan hasil pencarian yang lebih spesifik.
Contoh:
pdf "rapidshare.de/files" site:rapidshare.de
–> untuk mencari buku atau file pdf di rapidshare.de
+inurl:exe|rar|zip site:rapidshare.de
–> untuk mencari program, aplikasi di rapidshare.de


sumber :
• http://www.klik-kanan.com/fokus/tips-google.shtml
• http://ridwan.or.id/?pilih=news&mod=yes&aksi=lihat&id=178

STRUKTUR DATA

Struktur data menyangkut susunan fisik data dalam komputer. Struktur data menyerupai beberapa bentuk teknik kom presi data
– Agar penyim panan lebih efisien
– Agar tersusun lebih terurut
– Agar data retrieval lebih efektif
Struktur data dibagi atas :
a. Struktur data linier
b. Struktur data non-linier
A. Struktur Data Linier
Struktur data linier adalah struktur data yang menggam barkan hubungan tentang elemen-elemen yang berdekatan. Terdiri dari :
ARRAY :
a. dimensi satu (vektor matriks)
b. dimensi dua (matriks)
c. multi dimensi
Array (larik) adalah tipe terstruktur yang terdiri dari sejumlah komponen - komponen dengan tipe yang sama. Banyaknya komponen dalam satu larik adalah tetap dan lokasi dalam suatu larik ditunjukkan oleh suatu INDEKS. Yang penting dalam array adalah pengalam atan memori dan digunakan pengalam atau secara statik.


Karakteristik pemakaian array :
¢ jum lah elem en array terbatas
¢ sem ua elem en array bisa diakses secara acak
¢ panjang elem en sam a.
Contoh : int A[10 ];
float B [5];
Aplikasi penggunaan array diantaranya adalah
a. stack (tumpukan)
Adalah suatu list yang semua operasi penambahan (insertion) dan penghapusan (deletion) elemennya dilaksanakan pada satu ujung atas (TOP). Elemen pertama yang akan dihapus adalah elemen terakhir yang disisipkan, sehingga disebut sebagai “Last In First Out” (LIFO ).
b. queue (antrian)
Prinsip : FIFO (First In First Out) atau FCFS (First Com e First Serve), yang lebih awal masuk akan dilayani terlebih dahulu .
c. deque (antrian dengan 2 pintu)
¢ LINKED LIST (LIST BERKAIT ) :
a. linear singly linked list
b. linear doubly linked list
c. circular singly linked list
d. circular doubly linked list
Aplikasi linked list pada struktur data linier diantaranya :
a. linked stack
b. linked queue
Sedang multi linked list banyak digunakan pada struktur data non-linier yaitu untuk representasi tree maupun graph.
PENGELOLAAN MEMORI
Dapat secara STATIS atau DINAMIS.
a. Secara STATIS : menem pati lokasi memori yang tetap (fixed size),tidak dapat dikembangkan atau diciutkan.
Misal : array
alamat memori menjadi kunci array
b. Secara DINAMIS : menem pati lokasi memori dimana dapat dikem bangkan atau diciutkan sesuai dengan kebutuhan. Pengelolaan alamat dinamis (dynamic address) ditunjukkan oleh pointer.
B Struktur Data non- Linier
Terdiri dari :
¢ Struktur pohon
Definisi Pohon adalah : susunan dari satu atau lebih simpul (node) yang terdiri dari satu simpul khusus yang disebut akar (root) sedang sisanya membentuk subtree dari akar.


DERAJAT (DEGREE) SUATU POHON : adalah derajat maksimum dari suatu simpul dalam pohon.
NENEK MOYANG DARI SUATU SIMPUL ADALAH : adalah seluruh simpul – simpul yang ada sepanjang lintasan dari akar sampai simpul tersebut.
KEDALAM AN (HEIGHT atau DEPTH ) : dari suatu pohon ditentukan oleh level maksimum dari simpul dalam pohon.
HUTAN (FOREST) : adalah susunan dari beberapa pohon .
Ada 2 cara untuk menyatakan struktur pohon,yaitu dengan :
1. gambar
2. daftar (list)
¢ Graph
Dinyatakan dalam suatu fungsi G = (V , E ) dim ana
V = kum pulan sim pul/ vertex/ node
E = kum pulan busur / edge/ arc
Tiap busur pasti menghubungkan 2 simpul. Ada 2 macam graph
1. Graph tak terarah (Undirected graph)
2. Graph terarah (Directed graph)
Referensi :
http://www.unsri.ac.id/fasilkom/old_version/dosen/jaidan/materi/Bahan%20Kuliah%20Struktur%20Data.pdf
http://lecturer.eepis-its.edu/~arna/GIS/04%20-%20Tipe%20Data%20dan%20Struktur%20Data.pdf
http://webdosen.bl.ac.id/dosen/930011/Kuliah/strdata.PDF

bahasa pemrograman

Secara Umum 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
Borland Delphi atau biasa disebut Delphi saja, merupakan sarana pemrograman aplikasi visual. Bahaa pemrograman yang disunakan adalah bahasa pemrograman Pascal atau yang kemudian disebut bahsa pemrograman Delphi. Delphi merupakan generasi penerus dari Turbo Pascal. Turbo Pascal yang diluncurkan pada tahun 1983 dirancang untuk dijalankan pada sistem operasi DOS ( yang merupakan sistem operasi yang paling banyak disunakan pada saat itu ). Sedangkan Delphi yang diluncurkan pertama kali tahun 1995 dirancang untuk beroperasi dibawah sistem operasi Windows.
Borland Delphi merupakan salah satu bahasa pemrograman yang semenjak diluncurkan pertama kali langsung dilirik dan diminati oleh para programmer komputer. Hal ini disebabakan karena Delphi menyediakan fasilitas untuk pembuatan aplikasi dengan antarmuka visual secara mudah dan dapat memberikan hasil yang memuaskan.
Pada 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

Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1972-an di Bell Telephone Laboratories Inc.( sekarang adalah AT&T Bell Laboratories).

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.

Struktur Program Bahasa C adalah :

Main ()


{


Statemen_1;


Statemen_2;


…… FungsiUtama


Statemen_n;


}

____________________________


Fungsi_lain()


{

Stetemen_stetemen; Fungsi_fungsi lain yang ditulis oleh pemrograman komputer

}



Struktur Program C Prepocessor Directive


#include ---------------------- > Prepocesor directive


Fungsi_lain ( ) ; ---------------------- > Prototype fungsi lain


Main ( )

{

//statemen; ---------------------- > Fungsi Utama

}


___________________

Fungsi_lain ( )
{
//statemen; ----------------------- > Fungsi Lain
}


Keterangan :
1. Dimulai dari tanda { hingga tanda } disebut tubuh fungsi / blok.

2. Tanda ( ) digunakan untuk mengapit argumen fungsi, yaitu nilai yang dilewatkan ke fungsi.
Pada fungsi main( ) tidak ada argumen yang diberikan, maka tidak ada entri di dalam ( ).

3. Kata void menyatakan bahwa fungsi ini tidak memiliki nilai balik.

4. Tanda { menyatakan awal eksekusi program dan tanda } menyatakan akhir eksekusi program.

5. Didalam tanda { } bisa tergantung sejumlah unit yang disebut pernyataan (statemen).
Umumnya pernyataan berupa instruksi untuk :

a. Memerintah komputer melakukan proses menampilkan string ke layar.
b. Menghitung operasi matematika.
c. Membaca data dari keyboard.
d. dll.

c.Visual Basic

Visual Basic 6 merupakan salah satu tool untuk pengembangan aplikasi yang banyak diminati oleh orang. Di sini Visual Basic 6 menawarkan kemudahan dalam pembuatan aplikasi dan dapat menggunakan komponen-komponen yang telah disediakan. Untuk memulai Visual Basic 6 anda perlu menginstall Visual Basic 6.0. Program ini biasanya dalam satu paket dengan Visual Studio 6.0. Dengan menggunakan Visual Basic 6 kita bisa menghasilkan berbagai macam jenis program. Dari aplikasi yang mengintegrasikan database, jaringan, office automation, dan web application.


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
- Dirancang oleh Prof. Nicklaus Wirth dari Technical University di Zurich, Switzerlandtahun 1971.

-Nama Pascal berasal dari Blaise Pascal, nama ahli matematika dan philosopi dari Perancis (abad 17).

-Pengembangan dari bahasa Algol 60 dan Algol W (turunan Algol 60).

-Memiliki beberapa versi, seperti : Turbo Pascal, Ms Pascal (Microsoft), Apple Pascal,UCSD (University of California at San Diego Pascal), dll.

-Turbo Pascal yang dibuat oleh Borland Inc. adalah versi yang paling banyak digunakan karena menggunakan Compiler untuk menterjemahkannya dan juga mengikuti standard bahasa Pascal yang dibuat oleh Nicklaus Wirth dan K. Jensen.

-Pascal merupakan bahasa pemrograman tingkat tinggi (high level language) dan terstruktur (Structured Programming language).


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

Untuk lebih jelas memahami struktur program Pascal, perhatikan contoh program
berikut ini :

program Struktur_Pascal; { judul program }


label { deklarasi label }


ulang;


const { deklarasi konstanta }


bahasa = 'Pascal';


versi = 1.9;


type { deklarasi tipe }


tipeku = integer;


var { deklarasi variabel }


A : tipeku;


procedure Tulis; { deklarasi prosedur }


begin


Writeln('Latihan Pascal 1: Perulangan dan Seleksi Kondisi');


Writeln('------------------------------------------------');


Writeln;


Writeln('Halo,saya sedang belajar bahasa ',bahasa,' versi ',versi);


end;


begin { bagian pernyataan }


Tulis;


Readln;


end.

Kelebihan :

Bahasa Pascal adalah bahasa pemrograman tingkat tinggi (high level language) yang cukup populer, khususnya di Indonesia. Hal ini disebabkan bahasa Pascal lebih mudah dipahami dibanding bahasa pemrograman lainnya, seperti bahasa C, bahasa assembler, dan lain sebagainya. Selain itu, bahasa Pascal adalah bahasa pemrograman yang terstruktur dan lebih mendekati bahasa manusia (bahasa Inggris) sehingga sangat cocok diterapkan dalam dunia pendidikan.

Kekurangan:

Tidak fleksibel penggunaannya.


Bahasa Pemrograman Dibawah ini biasa digunakan untuk pemrograman Web :

d.HTML

HyperText Markup Language (HTML) adalah sebuah bahasa markup yang digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi di dalam sebuah browser Internet. HTML saat ini merupakan standar Internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). HTML berupa kode-kode tag yang menginstruksikan browser untuk menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan file HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet Explorer.

e.PHP

PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script yang digunakan untuk mengolah data form dari web.PHP banyak dipakai untuk membuat situs web yang dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain. PHP biasanya berjalan pada sistem operasi linux (PHP juga bisa dijalankan dengan hosting windows).

f.ASP

ASP adalah singkatan dari Active Server Pages yang merupakan salah satu bahasa pemograman web untuk menciptakan halaman web yang dinamis. ASP merupakan salah satu produk teknologi yang disediakan oleh Microsoft. ASP bekerja pada web server dan merupakan server side scripting.

g.XML

Extensible Markup Language (XML) adalah bahasa markup serbaguna yang direkomendasikan W3C untuk mendeskripsikan berbagai macam data. XML menggunakan markup tags seperti halnya HTML namun penggunaannya tidak terbatas pada tampilan halaman web saja. XML merupakan suatu metode dalam membuat penanda/markup pada sebuah dokumen.

h.WML

WML adalah kepanjangan dari Wireless Markup Language, yaitu bahasa pemrograman yang digunakan dalam aplikasi berbasis XML (eXtensible Markup Langauge). WML ini adalah bahasa pemrograman yang digunakan dalam aplikasi wireless. WML merupakan analogi dari HTML yang berjalan pada protocol nirkabel.

i.PERL

Perl adalah bahasa pemrograman untuk mesin dengan sistem operasi Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS, EBCDIC, dan PocketPC. PERL merupakan bahasa pemograman yang mirip bahasa pemograman C.

j.CFM

CFM dibuat menggunakan tag ColdFusion dengan software Adobe ColdFusion / BlueDragon / Coldfusion Studio. Syntax coldfusion berbasis html.

k.JAVA

Java adalah sebuah teknologi yang diperkenalkan oleh Sun Microsystems pada pertengahan tahun 1990. Menurut definisi dari Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat luinak pada komputer standalone ataupun pada lingkungan jaringan. Kita lebih menyukai menyebut Java sebagai sebuah teknologi dibanding hanya sebuah bahasa pemrograman, karena Java lebih lengkap dibanding sebuah bahasa pemrograman konvensional. Teknologi Java memiliki tiga komponen penting, yaitu:

• Programming-language specification
• Application-programming interface
• Virtual-machine specification

Bahasa Java dapat dikategorikan sebagai sebuah bahasa pemrograman berorientasi objek, pemrograman terdistribusi dan bahasa pemrograman multithrreaded . Objek Java dispesifikasi dengan membentuk kelas. Untuk masing-masing kelas Java, kompiler Java memproduksi sebuah file keluaran arsitektur netral yang akan jalan pada berbagai implementasi dari Java Virtual Machine (JVM). Awalnya Java sangat digemari oleh komunitas pemrograman internet, karena Java mendukung untuk applets , dimana program dengan akses sumber daya terbatas yang jalan dalam sebuah web browser. Java juga menyediakan dukungan level tinggi untuk networking dan objek terdistribusi. Java juga dianggap sebagai sebuah bahasa yang aman. Tampilan ini pada khususnya penting menganggap bahwa sebuah program Java boleh mengeksekusi silang sebuah jaringan terdistribusi. Sehingga bahasa Java saat ini termasuk bahasa pemrograman yang relatif mudah untuk dipelajari karena banyaknya contoh dan konsep yang beredar luas, baik berupa buku maupun di internet. Tetapi program yang dibuat dalam bahasa Java juga relatif lebih banyak membutuhkan waktu saat di eksekusi (lebih lama) dikarenakan untuk menjalankan
programnya dibutuhkan JVM (perantara antar program dan sistem operasi).

l.CSS

Cascading Style Sheets (CSS) adalah suatu bahasa stylesheet yang digunakan untuk mengatur tampilan suatu dokumen yang ditulis dalam bahasa markup. Penggunaan yang paling umum dari CSS adalah untuk memformat halaman web yang ditulis dengan HTML dan XHTML. Walaupun demikian, bahasanya sendiri dapat dipergunakan untuk semua jenis dokumen XML termasuk SVG dan XUL. Spesifikasi CSS diatur oleh World Wide Web Consortium (W3C).

Referensi :
http://www.ruzman.co.tv/2009/06/macam-macam-bahasa-pemrograman.html


http://www.bankriau.co.id/forum/viewtopic.php?p=1214


poss.ipb.ac.id/.../JENI-Intro1-Bab02-Pengenalan%20Bahasa%20JAVA.pdf


bebas.vlsm.org/v06/Kuliah/SistemOperasi/.../04._Bahasa_Java-1.pdf


http://mahdiannoor.student.umm.ac.id/2010/01/23/pemrograman-dengan-java/


http://www.findtoyou.com/ebook/cara+penggunaan+turbo+c.html

http://www.findtoyou.com/ebook/download-visual+basic-515129.html


http://prothelon.com/mambo/dasar-dasar-vb-1-apa-itu-vb-visual-basic- .html


http://id.answers.yahoo.com/question/index?qid=20091208040923AAoJwuL


Pemrograman Borland Delphi 7.0, Penerbit Andi Wahana Komputer


http://mic.ac.id/artikel/pascal_D3.pdf


http://sman1bukittinggi.sch.id/download/latihan_fpc.pdf


http://download.evopage.com/vb6/Visual%20Basic

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.
Pembuktian cara induksi matematika ingin membuktikan bahwa teori atau sifat itu benar untuk semua bilangan asli atau semua bilangan dalam himpunan bagiannya. Caranya ialah dengan menunjukkan bahwa sifat itu benar untuk n = 1 (atau S(1) adalah benar), kemudian ditunjukkan bahwa bila sifat itu benar untuk n = k (bila S(k) benar) menyebabkan sifat itu benar untuk n = k + 1 (atau S (k + 1) benar).

1. Basis Step --> S (1 ) = benar
2. Inductive Step --> S ( k ) = S ( k + 1 ) = benar
3. Conclusion

Contoh :

A. 2 pangkat (3n) – 1 habis dibagi 7 untuk semua bilangan bulat n ≥ 1

Jawab : 1. Basis Step

s ( 1 ) = benar
s ( n ) = s ( 1 )
n = 1
maka 2 pangkat (3n) – 1 = 2 pangkat (3) – 1 = 7 habis dibagi 7

2. Inductive Step

s ( k ) = benar
s ( n ) = s ( k )
n = k
--> 2 pangkat (3n) – 1 = 2 pangkat (3k) – 1 . . . . . . . . . . . . . . . . . . . (1)

s ( k + 1) = benar
s ( n ) = s ( k + 1 )
n = k + 1
-->2 pangkat (3n) – 1 = 2 pangkat [3( k + 1 )] – 1 = 2 pangkat [3k+3] – 1
=2 pangkat [3k] . 2 pangkat [3]– 1 = 8. 2 pangkat [3k] – 1 . . . . . . . . . . . . .(2)
=7 . 2 pangkat [3k] + 2 pangkat [3k] – 1 habis dibagi 7

Maka s ( k ) = s ( k + 1 ) benar


SOAL :

1. 4 pangkat [n] – 1 habis dibagi 3 untuk setiap bilangan bulat positif n ≥ 1

Jawab : 1. Basis Step

s ( 1 ) = benar
s ( n ) = s ( 1 )
n = 1
maka 4 pangkat [n] – 1 = 4 pangkat [1] – 1 = 3 habis dibagi 3

2. Inductive Step

s ( k ) = benar
s ( n ) = s ( k )
n = k
4 pangkat [n] – 1 = 4 pangkat [k] – 1 . . . . . . . . . . . . . . . . . . . (1)

s ( k + 1) = benar
s ( n ) = s ( k + 1 )
n = k + 1
-->4 pangkat [n] – 1 = 4 pangkat [(k + 1 )] – 1 = 4 pangkat [k] . 4 – 1
= 4 . 4 pangkat [k] – 1. . . . . . . . . . . . .(2)
= 3 . 4 pangkat [k] + 4 pangkat [k] – 1 habis dibagi 3

Maka s ( k ) = s ( k + 1 ) benar


Referensi : http://id.wikipedia.org/wiki/Induksi_matematika

Selasa, 02 Maret 2010

algoritma dan pemrograman

Apakah Itu Algoritma
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang
hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda
dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa
berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli
sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku
arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-
Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang
berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan”
(The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar
kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena
kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi
–thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat
laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)
secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata
Algorithm diserap menjadi Algoritma
Definisi Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis dan logis”.
Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma
harus logis dan harus dapat ditentukan bernilai salah atau benar.
Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer
yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu
identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat
proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang
dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu
ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak
dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan
akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses
sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut
pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat
elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau
“mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma
tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya.
Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan
lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam
bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer,
algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
Jadi program adalah prwujudan atau implementasi teknis Algoritma yang ditulis dalam
bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.

Belajar Memprogram Dan Belajar Bahasa Pemrograman
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar
memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian
menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangakan
belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan
memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya
dalam bahasa itu saja.
Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan berdasarkan
tujuan dan fungsinya. Diantaranya adalah :
Belajar Memprogram
• Belajar memprogram ≠ belajar bahasa pemrograman
• Belajar memprogram : belajar tentang strategi pemecahan masalah, metodologi dan
sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang
disepakati bersama
• Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis
• Belajar memprogram, titik berat : designer program

Belajar Bahasa Pemrograman
• Belajar bahasa pemrograman : belajar memakai suatu bahasa pemrograman, aturan
sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa
• Belajar bahasa pemrograman , titik berat : coder

Produk yang dihasilkan pemrogram :
• program dengan rancangan yang baik (metodologis, sistematis)
• Dapat dieksekusi oleh mesin
• Berfungsi dengan benar
• Sanggup melayani segala kemungkinan masukan
• Disertai dokumentasi
• Belajar memprogram, titik berat : designer program

Sumber : Pengantar Algoritma dan Pemrograman
Alex Budiyanto
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

Jumat, 01 Januari 2010

new year is coming

tahun baru finaly is coming.. perayaan malam tersebut di laksanakan hampir di seluruh dunia tentunya dengan gaya yang sama yaitu KEMBANG API ( fire works ) ... tapi ada yang bereda di stiap perayaan misalnya di new york setelah waktu menunjukkan pukul 12 malem di bola Raksasa ( aduh apa namanya w lupa). masyarakat teriak2 dan selanjutnya berciuman ... kenapa yaa.. apa maksudnya??....
tapi btw kapan ya perayaan thn br di indonesia khususnya di jakarta seperti di negara2 luar yang kembang apinya hebat2... klo di jkt kan ya tau sendiri kembang apinya ky gt... riweuh ma ramenya ja yg sama....

Internal Rate of Return (IRR)

Rate of return adalah tingkat pengembalian atau tingkat bunga yang diterima investor atas investasi yang tidak di amortisasikan.
untuk menghitung tingkat pengembalian atas investasi. kita harus mengkonversi berbagai konsekuensi dari investasi ke dalam cash flow. maka kita akan memecahkan cash flow untuk nilai yang tidak diketahui tersebut. yang tingkat pengembalian dalam lima bentuk persamaan cash flow yaitu:

1. PW of benefits - PW of cost = 0
2. PW of benefits/PW of cost = 1
3. Net Present Worth =0
4. EUAB - EUAC =0
5. PW of Cost = PW of benefits

Pengertian rate of return dapat dilihat dari 2 sisi. Dari pihak investor, tinggi rendahnya tingkat laba yang disyaratkan merupakan pencerminan oleh tingkat resiko aktiva yang dimiliki dan struktur modal serta faktor lain seperti manajemen. Sedangkan di pihak perusahaan, tingkat laba yang diminta. Merupakan biaya yang harus dikeluarkan untuk mendapatkan modal dari pemegang saham secara umum bahwa resiko perusahaan yang tinggi berakibat bahwa tingkat keuntungan yang diminta oleh investor juga tinggi dan biaya modal / juga tinggi. Tinggi rendahnya tingkat keuntungan yang diminta dipengaruhi oleh tingkat keuntungan bebas resiko (risk free rate) (Rf) dan risk premium untuk mengkompensasikan resiko yang melekat pada surat berharga itu. Rp = Rf + risk premium.

EXPECTED RATE OF RETURN

Rp = tingkat keuntungan yang diminta. Rp dipengaruhi oleh 2 faktor (1) tingkat inflasi yang diharapkan (2) demand&suppy dana 2 faktor tersebut sangat mempengaruhi return pada surat berharga bebas resiko & Required rate of return bagi semua surat berharga juga akan dipengaruhi oleh risk free. Bagi surat berharga yang spesifik terdapat 4 komponen resiko yang menentukan risk premium : (1) Bussiness risk ditentukan oleh variabilitas laba sebelum bunga & pajak (EBIT), (2) Financial risk, ditunjukkan variabilitas laba per lembar (EPS) , (3) Marketability risk, menunjukkan kemampuan investasi untuk membeli & menjual surat berharga perusahan, (4) interest rate risk, menunjukkan variabilitas tingkat keutungan atas surat berharga.

2. 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 maka : Proyek dipertimbangkan diterima.

sumber: BIAYA MODAL (COST OF CAPITAL) Agus Zainul Arifin, indoskripsi &Egineering Economic Analysis Donald G.Newman

time value of money

NILAI waktu uang atau time value of money adalah konsep yang menjabarkan bahwa uang yang tersedia pada saat ini lebih berharga dibandingkan uang dalam jumlah sama yang tersedia di masa yang akan datang. Soalnya, ada faktor bunga yang bisa membuat uang yang telah kita terima menjadi berbiak. Dus, semakin cepat uang itu kita terima, ia akan semakin berharga.
UNTUK menghitung nilai waktu uang (time value of money), ada dua konsep yang sering dipergunakan. Yakni, konsep nilai tunai atau present value (PV) dan nilai di masa mendatang atau future value (FV).Nah, berdasarkan dua konsep itu, kita bisa menghitung nilai di masa mendatang dari sejumlah uang tunai saat ini. Tentu saja, asumsinya, uang itu diinvestasikan atau didepositokan di bank dengan tingkat bunga tertentu.
Rumus Menghitung Nilai Waktu Uang

1. Rumus Nilai Masa Depan

FV = Ko (1 + r) ^n

Keteragan :
FV = Future Value / Nilai Mendatang
Ko = Arus Kas Awal
r = Rate / Tingkat Bunga
^n = Tahun Ke-n (dibaca dan dihitung pangkat n)

Contoh : Jika kita menabung 1 juta rupiah dengan bunga 10% maka setelah satu tahun kita akan mendapat :
FV = 1.000.000 (1 + 0,1) ^1
FV = 1.100.000 rupiah

2. Rumus Nilai Sekarang

PV = Kn / (1 + r) ^n

Keterangan :
PV = Present Value / Nilai Sekarang
Kn = Arus kas pada tahun ke-n
r = Rate / Tingkat bunga
^n = Tahun Ke-n (dibaca dan dihitung pangkat n)

Contoh : Jika di masa yang akan datang kita akan punya saldo sebesar 1,1 juta hasil berinvestasi selama satu tahun, maka uang kita saat ini adalah sebesar :
PV = 1.100.000 / (1 + 0,1) ^1
PV = 1.000.000 rupiah

Tambahan :
1 / (1 + r) ^n disebut juga sebagai discount factor

sumber:(kontan online & Perpustakaan Online Indonesia)

Cash flow

Cash flow (aliran kas) merupakan “sejumlah uang kas yang keluar dan yang masuk sebagai akibat dari aktivitas perusahaan dengan kata lain adalah aliran kas yang terdiri dari aliran masuk dalam perusahaan dan aliran kas keluar perusahaan serta berapa saldonya setiap periode. Yang perlu selalu diperhatikan yang mendasari dalam mengatur arus kas adalah memahami dengan jelas fungsi dana/uang yang kita miliki, kita simpan atau investasikan. Secara sederhana fungsi itu terbagi menjadi tiga yaitu :

1. fungsi likuiditas, yaitu dana yang tersedia untuk tujuan memenuhi kebutuhan sehari-hari dan dapat dicairkan dalam waktu singkat relatif tanpa ada pengurangan investasi awal.

2. fungsi anti inflasi, dana yang disimpan guna menghindari resiko penurunan pada daya beli di masa datang yang dapat dicairkan dengan relatif cepat.

3. capital growth, dana yang diperuntukkan untuk penambahan atau perkembangan kekayaan dengan jangka waktu relatif panjang..

Cash flow mempunyai beberapa keterbatasan-keterbatasan antara lain;

a) Komposisi penerimaan dan pengeluaran yang dimasukan dalam cash flow hanya yang bersifat tunai.

b) Perusahaan hanya berpusat pada target yang mungkin kurang fleksibel

c) Apabila terdapat perubahan pada situasi internal maupun eksternal dari perusahaan yang dapat mempengaruhi estimasi arus kas masuk dan keluar yang seharusnya diperhatikan, maka akan terhambat karena manager hanya akan terfokus pada budget kas misalnya; kondisi ekonomi yang kurang stabil, terlambatnya customer dalam memenuhi kewajibanya.

Adapun kegunaan dalam menyusun estimasi cash flow dalam perusahaan sangat berguna bagi beberapa pihak terutama manajement. Diantaranya:

1) Memberikan seluruh rencana penerimaan kas yang berhubungan dengan rencana keuangan perusahaan dan transaksi yang menyebabkan perubahan kas.

2) Sebagian dasar untuk menaksir kebutuhan dana untuk masa yang akan datang dan memperkirakan jangka waktu pengembalian kredit.

3) Membantu menager untuk mengambil keputusan kebijakan financial.

4) Untuk kreditur dapat melihat kemampuan perusahaan untuk membayar kredit yang diberikan kepadanya

Ada empat langka dalam penyusunan cash flow, yaitu :

1. Menentukan minimum kas

2. Menyusun estimasi penerimaan dan pengeluaran

3. Menyusun perkiraan kebutuhan dana dari hutang yang dibutuhkan untuk menutupi deficit kas dan membayar kembali pinjaman dari pihak ketiga.

4. Menyusun kembali keseluruhan penerimaan dan pengeluaran setelah adanya transaksi financial dan budget kas yang final.

Cash flow memuat tiga bagian utama, yang terdiri dari:

1. Cash in flow, pada bagian ini mengidentifikasi sumber-sumber dana yang akan diterima , jumlah dananya dan waktu dalam periode tersebut, yang akan dihasilkan berupa penjualan tunai, penjualan kredit yang akan menjadi piutang, hasil penjualan aktiva tetap dan penerimaan lainnya. Perincian kas ini terdiri dari dua sifat, yaitu kontinyu dan intermitan.

2. Cash out flow, pada bagian ini berhubungan dengan pengidentifikasian semua kas yang sudah diantisipasi, antara lain pembelian barang dagang baku, pembayaran hutang, upah, administrasi, dan pengeluaran lainnya. Cash out flow juga punya dua sifat yang sama yaitu kontinyu dan intermitan

3. Financing (pembiayaan), pada bagian ini menunjukan besarnya net cash flow dan besarnya kebutuhan dana jika terjadi deficit.