Kamis, 04 November 2010

Sistem Input dan Output pada komputer

1. Pengantar

Sistem komputer (computer system), terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Perangkat keras dan perangkat lunak harus bekerja bersama-sama membentuk suatu sistem, yaitu sistem komputer. Perangkat keras (H/W), sebagai sub sistem komputer juga mempunyai komponen, yaitu :

1. Komponen alat masukan (input device)
2. Komponen alat pemroses (processing device)
3. komponen alat keluaran (output device)
4. Komponen alat simpanan luar (storage)

2. Alat masukan (Input Device)

Alat masukan (input device), adalah alat yang digunakan untuk menerima masukan yangg dapat berupa masukan data ataupun masukan program. Beberapa alat masukan mempunyai fungsi ganda, yaitu, sebagai alat masukan dan sekaligus sebagai alat keluaran (ouput) untuk menampilkan hasil. Alat I/O demikian disebut terminal

Alat masukan dapat digolongkan ke dalam beberapa golongan yaitu :

1. Keyboard

Merupakan alat input yang paling umum dan banyak digunakan. Beberapa alat input yang menggunakan keyboard untuk memasukkan input adalah :

· Visual display terminal (VDT) disebut juga dengan nama Visual display unit terdiri dari keyboard dan visual display (tampilan display)

· Financial transaction terminal, digunakan untuk transaksi yang berhubungan dengan keuangan. Salah satu aplikasinya yaitu untuk Electronic Fund Transfer (EFT) dengan menggunakan ATM

· Point of sale terminal (POS), biasanya digunakan di swalayan.

POS terminal merupakan perkembangan dari cash register yang dapat dihubungkan dengan komputer untuk tujuan pengendalian persediaan (inventory control) dan penjadwalan pemesanan kembali barang yang akan dipesan. Alat tambahan pada POS Terminal meliputi OCR Tag Reader atau Bar code reader

2. Pointing device. Yang termasuk dalam peralatan pointing device adalah:

· mouse

· touch screen, layar monitor yang akan mengaktifkan program bila layarnya disentuh dengan tangan

· Light Pen, merupakan menyentuh layar monitor dengan pena. Posisi sentuhan di layar akan lebih tepat dan teliti

· Digitizer Graphic Tablet, digunakan untuk membuat grafik atau gambar dengan cara menghubungkan dua buah titik di graphic tablet dengan alat yang menyerupai pen

3. Scanner. Alat masukan scanner dapat berupa :

· magnetic Ink character recognition (MICR), alat pembaca pengenal karakter tinta magnetik, banyak digunakan di bank-bank amerika untuk transaksi cek. Dibutuhkan tinta magnetik yg khusus supaya bisa dibaca oleh alatnya

· Reader.

· Optical Data reader, dapat berupa Optical Character Recognition (OCR) Reader, OCR Tag Reader (banyak dipergunakan di toko-toko serba ada untuk membaca label data barang yang dijual yang dicetak dengan bentuk (font) karakter OCR), Bar Code Reader, Optical Mark Recognition (OMR) Reader (banyak digunakan untuk penilaian test (test scoring). Jawaban dari tes yang diberikan dijawab di kertas mark sense form (dengan pensil 2B). OMR juga banyak digunakan untuk membaca hasil dari daftar pertanyaan (Questionarries), registrasi mahasiswa dsb)

4. Sensor, Merupakan alat yang mampu secara langsung menangkap data kejadian fisik. Data analog dikumpulkan oleh alat sensor dan dimasukan ke pengubah AD/DC yang selanjutnya diproses oleh komputer. Kamera Digital merupakan salah satu sensor yang dipakai untuk menangkap objek yg selanjutnya diproses dengan komputer. Camera Recorder (Camcorder) merupakan sensor untuk menangkap objek yang bergerak
5. Voice recognizer, Biasa disebut Speech Recognizer yaitu alat untuk membuat komputer mengerti omongan manusia.

3. Alat Keluaran (Output Device)

Ouput yang dihasilkan dari pengolahan data dapat digolongkan ke dalam 3 bentuk tulisan (huruf, kata, angka, karakter dan simbol- simbol khusus), image (grafik atau gambar) maupun suara (musik atau omongan)

Alat keluaran juga dapat berbentuk

· Hard copy device

Merupakan alat keluaran yg digunakan untuk mencetak tulisan, grafik atau gambar pada media pencetak. Alat hard copy device yang umum dipergunakan adalah printer. Jenis-jenis printer meliputi dot matrix, inkjet printer dan laser. Selain itu juga dikenal Plotter, alat cetak yang mempunyai kemampuan mencetak grafik atau gambar dengan baik, biasanya menggunakan pen plotter

· Soft Copy Device

Merupakan alat yg digunakan untuk menampilkan tulisan, image dan suara pada media soft (lunak) yg berupa sinyal elektronik. Contoh soft copy device adalah video display (monitor), flat panel display (Liquid Crystal Dispaly), dan speaker.

· Alat Simpanan Luar

Main memory di dalam alat pemroses merupakan simpanan yg kapasitasnya tidak begitu besar dan umumnya bersifat Volatile (Volatile : informasi yg dikandungnya akan hilang bila aliran listrik terputus).

Selain itu terdapat juga Direct Access Storage Device (DASD) (Merupakan alat penyimpan pengaksesan langsung), contohnya floppy disk, harddisk, dan removable disk.

4. Jenis-jenis Perangkat I/O

Secara umum, terdapat beberapa jenis perangkat I/O, seperti perangkat penyimpanan (disk, tape), perangkat transmisi (network card, modem), dan perangkat antarmuka dengan pengguna (screen, keyboard, mouse). Perangkat tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki oleh perangkat akan digunakan oleh direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/shared direct access), dan pengendali (host adapter). Port ialah koneksi yang digunakan oleh perangkat untuk berkomunikasi dengan mesin. Bus ialah koneksi yang menghubungkan beberapa perangkat menggunakan kabel-kabel. Pengendali ialah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan perangkat.

Langkah yang ditentukan untuk perangkat ialah command-ready, busy, dan error. Host mengeset command-ready ketika perintah telah siap untuk dieksekusi oleh pengendali. Pengendali mengeset busy ketika sedang mengerjakan sesuatu, dan men-clear busy ketika telah siap untuk menerima perintah selanjutnya. Error diset ketika terjadi kesalahan.


5. Klasifikasi Umum Perangkat I/O

Pendapat orang-orang mengenai I/O berbeda-beda. Seorang insinyur mungkin akan memandang perangkat keras I/O sebagai kumpulan chip-chip, kabel-kabel, catu daya, dan komponen fisik lainnya yang membangun perangkat keras ini. Seorang programmer akan memandangnya sebagai antarmuka yang disediakan oleh perangkat lunak atau perintah yang diterima perangkat keras, fungsi yang dikerjakannya, dan error yang ditimbulkan.

Perangkat I/O dapat dibagi secara umum menjadi dua kategori, yaitu: perangkat blok (block devices), dan perangkat karakter (character devices). Perangkat blok menyimpan informasi dalam sebuah blok yang ukurannya tertentu, dan memiliki alamat masing-masing. Umumnya blok berukuran antara 512 bytes sampai 32.768 bytes. Keuntungan dari perangkat blok ini ialah mampu membaca atau menulis setiap blok secara independen. Disk merupakan contoh perangkat blok yang paling banyak digunakan.

Tipe lain perangkat I/O ialah perangkat karakter. Perangkat karakter mengirim atau menerima sebarisan karakter, tanpa menghiraukan struktur blok. Tipe ini tidak memiliki alamat, dan tidak memiliki kemampuan mencari (seek). Printer dan antarmuka jaringan merupakan contoh perangkat jenis ini. Pembagian ini tidaklah sempurna. Beberapa perangkat tidak memenuhi kriteria tersebut. Contohnya: clock yang tidak memiliki alamat dan juga tidak mengirim dan menerima barisan karakter. Yang ia lakukan hanya menimbulkan interupsi dalam jangka waktu tertentu.

Senin, 11 Oktober 2010

Organisasi dan Arsitektur Komputer

Organisasi & Arsitektur Komputer Bagian 1
Skema komputer adalah diagram yang menggambarkan unit-unit dasar yang terdapat dalam semua sistem komputer.

Terdapat beberapa bagian:
1. Central processing unit (CPU), yang mengendalikan semua unit sistem komputer yang lain dan mengubah input menjadi output.
• Primary storage (penyimpanan primer), berisi data yang sedang diolah dan program.
• Control unit (unit pengendali), membuat semua unit bekerja sama sebagai suatu sistem
• Arithmatika and logical Unit , tempat berlangsungkan operasi perhitungan matematika dan logika.
2. Unit Input, memasukkan data ke dalam primary storage.
3. Secondary storage (penyimpanan sekunder), menyedikan tempat untuk menyimpan program dan data saat tidak digunakan.
4. Unit Output, mencatat hasil pengolahan.

Skema Komputer
A. Peralatan Input
Beberapa alat input memiliki fungsi ganda, yaitu sebagai alat input dan juga sebagai alat output untuk menghasilkan data. Alat input/ouput demikian dikenal dengan terminal. Alat input dibagi ke dalam dua golongan yaitu alat input langsung dan tidak langsung. Bila terminal dihubungkan dengan pusat komputer yang letaknya jauh dari terminal melalui alat komunikasi, maka disebut dengan nama Remote Job Entry (RJE) terminal atau Remote Batch terminal.

Alat input langsung memungkinkan input diproses secara langsung oleh CPU melalui alat input tanpa terlebih dahulu dinmasukkan ke dalam media penyimpanan ekternal. Alat input langsung terdiri dari beberapa golongan yaitu: keyboard, pointing device, scanner, voice recognizer.

Alat input tidak langsung , dimana data yang dimasukkan tidak langsung diproses oleh CPU, tetapi direkam terlebih dahulu ke suatu media mechine readable form (bentuk yang hanya dapat dibaca oleh komputer dan merupakan penyimpanan ekternal). Alat input tidak langsung terdiri dari: key-to-card, key-to-tape, key-to-disk.

Input hardware digunakan untuk mentranmisikan data ke processing dan storage hardware. Peralatan yang paling popular untuk memasukkan data yaitu kombinasi antara keyboard dan layar monitor. Layar monitor dianggap sebagai bagian dari input hardware kerena digunakan untuk memeriksa apakah data yang akan dimasukkan telah diketik. Disamping jenis input hardware di atas, terdapat juga input harware lainnya yaitu mouse, scanner, voice recognition, handwriting device, machine data input (misalnya : modem),light pen, dan bar code reader.
Voice recognition device dipakai untuk memasukkan suara manusia ke dalam signal interpreter. Kebanyakan voice system yang digunakan sekarang mempunyai vocabulary yang kecil dan harus dilatih untuk mengenal kata-kata tertentu. Caranya, seseorang membacakan sebuah daftar kata-kata yang biasa digunakan sehingga signal interpreter dapat menetapkan polanya. Misalnya pekerja menyebut box yang mereka bawa. Voice input diperlukan karena tangan pekerja sibuk dan tidak dapat mengetik atau memanipulasi peralatan ketik input device lainnya.
Hardwriting recognition device digunakan untuk memasukkan data dengan cara menulis pada elektronis yang sensitive. Karakter-karakter tersebut dikenal dan dimasukkan ke dalam system computer, biasanya suatu system PC (personal computer).

Handwriting Recognition Device


Modem merupakan salah satu jenis alat input data untuk menghubungkan komputer dengan computer lain melalui jaringan telepon. Jenis input hardware lainnya yaitu light pen yang digunakan untuk menunjuk item-item pada layar monitor dan bar code reader yang biasa digunakan di supermarket untuk mengidentifikasi suatu jenis barang.


Contoh Modem

Kamis, 15 April 2010

Teknik Pencarian (Search Engine)

Search engine termasuk media yang pertumbuhan paling cepat dan mempunyai nilai kapital sangat tinggi., Mesin pencari (search engine) adalah sesuatu yang tidak bisa dilepaskan dari budaya nge-net. Dengan bantuan mesin pencari, kita bisa dengan mudah mendapatkan halaman-halaman web yang kita inginkan. Cukup ketikkan kata kunci Anda lalu enter, maka akan ditampilkan untuk Anda sekian banyak weblink yang relevan atau berhubungan dengan kata kunci Anda. Hasil pencarian yang ditampilkan oleh sebuah mesin pencari biasanya berbeda dengan yang ditampilkan oleh mesin pencari yang lainnya. Tergantung pada algoritma pencarian yang dipakai oleh masing-masing mesin pencari. Dengan mempelajari algoritma itulah, para pemilik web melakukan SEO (Search Engine Optimization) untuk menaikkan ranking (urutannya) pada sebuah mesin pencari. kata kunci search engine sebenarnya hanya 3 yaitu relevansi, keberagaman, dan kecepatan.
Relevansi menyangkut kesesuain kata kunci pencarian terhadap hasil yang diinginkan oleh pencari(manusia), relevan menjadi sangat rumut bila menyangkut jumlah halaman website dan komposisi kata kuncinya, repotnya lagi perpsepsi kata pada tiap2 bahasa juga berbeda. Keberagaman adalah sebaran hasil pencarian yang beragam tapi tetap relevan, hasil pencarian yang beragam memberikan informasi lebih komplet, bahkan bisa memperluas opini yang sedang kita cari. Kecepatan adalah delay waktu antara mulai pencarian hingga hasil ditampilkan, semakin lambat respon maka pengguna malas memanfaatkannya. Untuk pencarian dan pengurutan nilai terdapat berbagai macam jenis algoritma yang dapat digunakan dengan tingkat keefektifan yang berbeda. Untuk pencarian nilai, ada beberapa jenis metode yaitu pencarian secara linear (sequential search) dan pencarian biner (binary search) untuk table yang telah terurut nilainya (sorted tabel).
Pencarian secara linear mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. Untuk pengurutan nilai ada beberapa jenis algoritma yaitu count sort (pengurutan dengan mencacah), selection sort (pengurutan dengan menyeleksi), insertion sort (pengurutan dengan penyisipan), quick sort (pengurutan cepat), merge sort (pengurutan dengan penggabungan), heap sort (pengurutan dengan tumpukan), shell sort (pengurutan cangkang), dan bubble sort (pengurutan gelembung). Sequential search adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Binary search merupakan salah satu metode searching, binary search hanya bisa dilakukan pada data yg telah tersort atau terurut karena proses algoritmanya yg terus menerus membagi data menjadi 2 bagian hingga angka / input yg dicari ditemukan. Selection Sorting adalah teknik atau cara untuk mengurutkan suatu deretan data.
Teknik atau algoritma untuk melakukan pengurutan, sesungguhnya ada beberapa, salah satunya: Selection Sort. Selection Sort salah satu algoritma pengurutan yang mudah untuk dipelajari. Konsep dasarnya yaitu : “Melakukan pencarian data terkecil/terbesar pada suatu iterasi. Kemudian data tersebut ditukar dengan data[index]. index=iterasi. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N-1.” Shell Short Tingkat kehandalan suatu algoritma, diukur berdasarkan seberapa baik algoritma itu melakukan pengurutan, dan seberapa cepat prosesnya dilakukan. Shell Sort, salah satu algoritma pengurutan yang lebih handal dibandingkan Selection Sort dan Bubble Sort. Kehandalannya yaitu : “Membagi deret data menjadi dua bagian. Masing-masing bagian diurutkan menggunakan Bubble Sort. Tidak menggunakan iterasi melainkan increment. Perulangan diakukan sesuai nilai increment.” Pengurutan Data ( Sorting ) Teknik Sorting ini dapat digunakan untuk mengurutkan data urut dari kecil ke besar maupun dari besar ke kecil baik unutk data numerik atau alphabetik.Teknik sorting ini sangat banyak sekali caranya, tetapi yang sering digunakan dan relatip mudah yaitu metode “Bubble Sort” dan “Straight Selection“.
Metode Bubble Sort juga salah satu algoritma pengurutan yang mudah untuk dipelajari. Konsep dasarnya yaitu : “Melakukan pembandingan antara ’data[n] dengan data[n+1]’ atau antara ’data[n] dengan data[n-1]’ kemudian jika lebih kecil/besar dilakukan pertukaran. Pada setiap iterasi dapat terjadi beberapa kali pertukaran atau tidak sama sekali. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N-1.” . Metode Straight Selection Metode ini sebenarnya kebalikan dari metode bubble sort. Metode seleksi langsung ini akan memilih nilai yang terkecil dan meletakkannya di urutan terkemuka. Nilai-nilai terkecil berikutnya akan diseleksi dan diletakkan diurutan setelah nilai terkecil pertama, kedua, dan seterusnya sampai akhirnya di dapat nilai yang urut dari kecil ke besar. Program berikut akan mengambil data yang sama dengan metode Bubble sort. Dari hasil output langkah-langkah pengurutan akan tampak perbedaan proses pengurutannya.
Merge sort adalah algritma yang digunakan untuk menyusun list yang diberikan dengan cara membagi list yang diberikan menjadi dua bagian yang lebih kecil. Kedua list yang baru ini kemudian akan disusun secara terpisah. Setelah kedua buah list tersusun, maka akan dibentuk list baru yang merupakan hasil penggabungan dua buah list sebelumnya. Menurut keefektifannya, alogaritma ini bekerja dengan tingkat keefektifan O(nlog(n)) Heap Sort Heapsort merupakan salah satu bentuk dari selection sort yang memiliki kompleksitas algorima O(n log(n)) yang menggunakan struktur data heap. Algoritma ini bekerja dengan menentukan elemen terbesar (atau terkecil) dari sebuah daftar elemen, dan diletakkan pada akhir (atau awal) dari daftar tersebut. Heap sort menyelesaikan sebuah pengurutan menggunakan struktur data yang disebut heap.

Rabu, 07 April 2010

stuktur data

Struktur Data
Objektif
 Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman
 Mengetahui operasi yang terkait dengan struktur data dan metode pemrograman paling umum yang terkait dengan struktur tersebut.
 Mengetahui metode dan notasi yang digunakan untuk menspesifikasi apa-apa yang perlu dikerjakan oleh program dan bagaimana program ini melakukan pekerjaan tersebut.
Jenis/Tipe Data (Data Type)
 Terdiri dari
– Set nilai data
– Set operasi yang bisa diterapkan pada nilai tersebut
Klasifikasi Jenis Data
 Simple Data Type (Jenis Data Sederhana)
– Item data individual
 Data Structures / data aggregates (struktur data)
– Kombinasi dari item data individual
– Membentuk item data lain
Jenis Data Sederhana
 Numerik, terdiri dari :
– Numerik integer (bilangan bulat)
– Numerik real (bilangan riil)
 Karakter, terdiri dari :
– Alfabet : a .. z, A .. Z
– Angka : 0 .. 9
– Simbol khusus : + ? ‘ ! [ ] { } … dll
 Boolean (logika), terdiri dari :
– True
– False
Identifier
 Dalam bahasa pemrograman, item data diidentifikasi menurut namanya, bukan menurut alamat lokasinya dalam memori
 Identifier akan merupakan konstanta jika ia selalu dikaitkan dengan nilai data yang sama
 Identifier akan merupakan variabel jika nilai datanya yang terkait bisa berubah
 Literal, nilai data yang tertera dalam program namun bukan sebagai identifier
Deklarasi Data
 Jenis data konstanta dan variabel harus didefinisikan dalam program sehingga :
– operasi yang tepat dapat dijalankan pada nilai data dan
– Jumlah ruang penyimpanan yang tepat bisa ditentukan
 Statement untuk mendefinisikan jenis data disebut declarative statement
 Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda
 Beberapa contoh program (pendeklarasian data) yang akan diberikan ditulis dalam pseudo-code
Struktur Data
 Kelompok item data yang terorganisasi yang dianggap sebagai suatu unit
 Disebut juga sebagai jenis data kompleks (complex data type) atau data aggregates
 Beberapa struktur data :
– Array (larik)
– String
– Record
– List (daftar)
– Tree
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)
 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

Rabu, 24 Maret 2010

TIPE-TIPE BAHASA PEMROGRAMAN SERTA KELEBIHAN DAN KELEMAHAN

A. Bahasa C
1. Sejarah
Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C yang diciptakan oleh Dennis Ricthie & W. Kerninghan tahun 1972 di Bell Telephone Laboratories Inc. (Sekarang adalah AT & T Bell Laboratories)
2. Aplikasi bahasa C :
Bahasa C pertama kali digunakan di Computer Digital Equipment Corporation PDP-11 yang menggunakan system operasi UNIX.
Bahasa C juga digunakan untuk menyusun operasi Linux
Banyak bahasa pemrogaman popular seperti PHP dan Java menggunakan sintaks dasar mirip bahasa C.
3. Kelebihan dan Kekurangan Bahasa C
Kelebihan Bahasa C
Bahasa C tersedia hampir di semua jenis computer
Kode bahasa C sifatnya adalah portable dan fleksible untuk semua jenis computer
Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci
Proses executable program bahasa C lebih cepat
Dukungan pustaka yang banyak
C adalah bahasa yang terstruktur
Bahasa C termasuk bahasa tingkat menengah
Kekurangan Bahasa C
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai
Bagi pemula pada umumnya akan kesulitan menggunakan pointer
B. Bahasa Java
1.Sejarah
Java mulai dirilis pada tahun 1990 sebagai bahasa program yang disebut Oak, kemudian Sun MycroSystem mendirikan kelompok kerja yang terdiri atas para programmer handal untuk membuat produk dan memperluas pasar Sun. Oak didesain pertama kali untuk personal digital assistance yang disebut *7 yang akan dipasarkan Sun dengan fasilitas Graphical User Interface.
Ternyata *7 tidak pernah dipasarkan dan secara kebetulan Sun membentuk suatu perusahaan yang disebut Firstperson untuk mengembangkan *7 dalam bentuk TV set-top boxes untuk televisi interaktif. Karena persaingan begitu ketat akhirnya prospek TV interaktif menurun dan akhirnya Oak tidak laku di pasaran. Akan tetapi FirstPerson dan Oak mengalami kegagalan. bermunculan para perintis internet khususnya World Wide Web seperti Netscape membuat software yang memungkinkan terjadinya koneksi antara internet dengan www. Sun akhirnya menyadari bahwa Oak memiliki kemungkinan besar untuk membuat jalur akses ke dunia web. Tidak lamam kemudian Oak diluncurkan di Internet dengan nama baru yaitu, Java
Sekarang, java masih dalam taraf pengembangan dan sudah mempengaruhi arah pemrogaman computer dan internet. Bahasa pemrogaman Java dirilis secara gratis di Internet dan Sun memberikan lisensi penuh terhadap implementasi Java dan segala komponennya untuk digunakan di berbagai vendor software Internet dengan harapan supaya dapat menciptakan standard pemrogaman web.
2. Aplikasi Bahasa Java
Pemrograman jaringan
Pembuatan aplikasi berbasis windows
Program untuk membuat web
3. Kelebihan dan Kekurangan
Kelebihan Bahasa Java:
Sederhana dan ampuh, java menyediakan sarana untuk membuat program (applet) yang berjalan pada web browser. Programmer dapat menggunakan applet kecil yang aman, dinamik, lintas platform, aktif dan siap dijalankan di jaringan.
Aman, java dirancang dengan konsep keamanan internet.
Berorientasi objek, java tidak diturunkan bahasa pemrogaman manapun. Java memiliki keseimbangan yang menyediakan mekanisme peng-class-an sederhana dengan model antarmuka dinamik yang intuitif hanya jika diperlukan.
Kokoh, java membatasi programmer dengan memberi kunci supaya progamer dapat menemukan kesalahan lebih cepat saat mengembangkan program.
Interaktif, java dirancang untuk menciptakan program jaringan yang interaktif.
Netral terhadap berbagai arsitektur, java mampu berjalan dalam platform apapun seperti PC, UNIX, Macintosh, dll.
Terinterpretasi dan berkinerja tinggi, java melengkapi keajaiban lintas platform yang luar biasa dengan kompilasi ke dalam representasi langsung yang disebut java code byte yang dapat diterjemahkan oleh system apapun yang memiliki java interpreter dan java virtual machine.
Mudah dipelajari karena bersifat sederhana
Mendukung koneksi ke database
Kekurangan bahasa Java :
Java memiliki kecepatan yang kurang dari bahasa C ++
Implementasi J2ME tidak global. Misalnya, J2ME untuk Motorola dengan J2ME untuk Sony Ericson tidak sama. Berbeda lagi J2ME untuk Nokia. Setiap produk selalu mempunyai modul tersendiri yang dinilai aneh penerapannya dan harus di-compile dengan modul yang berbeda-beda.
Java memakan banyak memori computer
Java merupakan bahasa yang kompleks dan susah dipelajari
Program yang dibuat oleh bahasa ini lebih lambat disbanding program yang dibuat dengan bahasa lain seperti C atau C++.
C. Bahasa Pascal
1. Sejarah
Pascal dibuat pertama kali oleh Prof. Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971. pascal berasal dari nama matematikawan yaitu Blaise Pascal. Pascal digunakan untuk mengenalkan pemrograman terstruktur.
2. Aplikasi Bahasa Pascal
Pascal dipakai sebagai landasan pembuatan kode perangkat lunak Delphi (berbasis windows)
Pascal dipakai sebagai landasan pembuatan kode perangkat lunak Kylix (berbasis Linux)
3. Kelebihan dan kekurangan
Kelebihan bahasa pascal :
Tipe data standar, tipe-tipe data standar yang telah tersedia bahasa pemrogaman. Pascal memiliki tipe data standar Boolean, integer, char, real, 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 variable dan variable tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain format yang ditentukan.
Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedur 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 bahasa pascal :
Versi awal Pascal kurang cocok untuk aplikasi bisnis karena dukungan basisdata yang terbatas.
Sintaks Pascal terlalu bertele-tele
Tidak mendukung pemrograman berorientasi objek
Pascal tidak fleksibel dan banyak kekurangan yang dibutuhkan untuk membuat aplikasi yang besar.
D. Bahasa PHP
1. Sejarah
PHP adalah bahasa pemrogaman web atau scripting language yang didesain untuk web. PHP dibuat pertama kali oleh Rasmus Lerdford untuk menghitung jumlah pengunjung pada homepagenya pada akhir tahun 1994. PHP terus berkembang dari PHP 1 yang ditulis ulang Rasmus dalam bahasa C pada tahun 1995 sampai PHP 4 yang diluncurkan tanggal 22 Mei 2000.
2. Aplikasi Bahasa PHP
PHP digunakan sebagai landasan operasi pada pemrogaman jaringan berbasis web
PHP digunakan juga untuk pemrogaman database.
PHP digunakan untuk membuat aplikasi web
3. Kelebihan dan Kekurangan
Kelebihan:
PHP menjadi popular karena kesederhanaannya dan kemampuannya dalam menghasilkan berbagai aplikasi web seperti counter, system artikel/ CMS, e-commerce, bulletin board, dll
PHP adalah salah satu bahasa server-side yang didesain khusus untuk aplikasi web.
PHP termasuk dalam Open Source Product dan telah mencapai versi 4.
Aplikasi PHP cukup cepat dibandingkan dengan aplikasi CGI dengan Perl atau Phyton bahkan lebih cepat disbanding dengan ASP maupun Java dalam berbagai aplikasi web
Tersedia baik di Windows maupun Linux, walau saat ini paling efektif di web server Apache dan OS Linux
Sintaks mirip C dan mudah dipelajari
Komunitas yang ramai dan saling membantu, seperti di diskusiweb.com, phpbuilder.com, phpindo.com, dll
Berbagai script atau aplikasi yang gratis telah tersedia.
Kekurangan :
Tidak detail untuk pengembangan skala besar
Tidak memiliki system pemrogaman berorientasi objek yang sesungguhnya
Tidak bisa memisahkan antara tampilan dengan logic dengan baik
PHP memiliki kelemahan security tertentu apabila programmer tidak jeli dalam melakukan pemrogaman dan kurang memperhatikan isu konfigurasi PHP.
Kode PHP dapat dibaca semua orang, dan kompilasi hanya dapat dilakukan dengan tool yang mahal dari Zend
E. Bahasa Ruby
1. Sejarah
Ruby adalah bahasa pemrogaman scripting yang berorientasi objek. Tujuan dari ruby adalah menggabungkan kelebihan dari semua bahasa pemrogaman scripting yang ada di dunia. Ruby ditulis dengan bahasa C dengan kemampuan dasar seperti Perl dan Phyton.
Ruby pertama kali dibuat oleh seorang programmer Jepang bernama Yukihiro Matsumoto. Penulisan Ruby dimulai pada February 1993 dan pada Desember 1994 dirilis versi alpha dari ruby. Pada awal perkembangan Ruby, Yukihiro meulis Ruby sendiri sampai pada tahun 1996 terbentuk komunitas Ruby yang banyak mengkotribusikan Ruby.
2. Aplikasi bahasa ruby
Implementasi besar Ruby pada JRuby dan Rubinius
Ruby dapat diterapkan pada teknologi Asynchronous JavaScript dan XML (AJAX).
Ruby on Rails untuk membuat framework web
3. Kelebihan dan Kekurangan
Kelebihan:
Sintaks sederhana
Memiliki Exception Handling yang baik
OOP
Single inheritance
Didukung oleh OS Linux, Windows, MacOS X, OS/2, BeOs, dan Unix.
Merupakan bahasa pemrograman scripting yang berorientasi objek
Memiliki garbage collector yang secara otomatis akan menghapus informasi tak terpakai dari memori
Kelemahan :
Multithreading. Implementasi thread di ruby masih berupa green thread, bukan native thread. Hal ini membuat aplikasi GUI (desktop) dengan background thread tidak mungkin diimplementasikan di ruby.
Virtual Memory, ruby masih fully interpreted sehingga program ruby cenderung lebih lambat.
Spek. saat ini spesifikasi ruby (syntax, behaviour, dll) adalah implementasi ruby yang asli dari matz.
IDE. Saat ini kualitas IDE untuk ruby masih jauh daripada .net dan java. Tapi dengan bermunculnya IDE ruby yang dibuat dengan java.net, kondisinya agak berubah. Tapi karena ruby bahasa yang sangat dinamis, sulit untuk bisa mendapatkan informasi secara lengkap mengenai struktur sebuah program ruby secara statis.
F. Bahasa PROLOG
1. Sejarah
Prolog (Programmation en logique) adalah bahasa pemrograman logika atau bahasa non-prosedural. Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman untuk aplikasi kecerdasan buatan. Bahasa ini menjadi popular semenjak Jepang mengumumkan pada tahun 1981 bahwa jepang akan menggunakannya sebagai basis computer “generasi kelima”.
2. Aplikasi bahasa prolog
Bahasa pemrograman Artificial Intellegence dan robot
Bahasa pemrograman computer generasi kelima
PROLOG banyak digunakan dalam aplikasi pembuatan bahasa alami, penulisan compiler, penambahan ilmu pada sistem pakar dan purwarupa (prototype) perangkat lunak.
Bagus untuk menulis sistem pakar dan knowledge based system.
3. Kelebihan dan Kekurangan
Kelebihan :
Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl sebagai teknik pencariannya seperti pada Delphi, Pascal, Basic, COBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebut heuristik (heutistic) dengan menggunakan pohon logika.
Melakukan komputasi rumit pada data yang kompleks.
Mengekpresikan algoritma dengan baik.
Mengalokasikan memori secara dinamis sehingga programmer tidak harus mendeklarasikan ukuran sebuah struktur data sebelum membuatnya.
Mengembangkan dan memodifikasi dirinya sendiri sehingga sebuah program dapat “belajar” melalui informasi yang didapat selama program dijalankan
PROLOG mempunyai Automated Reasoning Procedure (Prosedur Sebab-Akibat Otomatis) yang disebut Inference Engine (Inference = proses pengambilan kesimpulan) yang sudah built-in didalamnya. Akibatnya, program yang menggunakan logika sebab-akibat jadi lebih mudah ditulis dalam PROLOG.
Kekurangan :
Pemborosan dalam pengalokasian memory sehingga program berjalan menjadi lambat
G. Bahasa Phyton
1. Sejarah
Bahasa pemrograman ini dibuat oleh Guido van Rossum dari Amsterdam, Belanda. Pada awalnya, motivasi pembuatan bahasa pemrograman ini adalah untuk bahasa skrip tingkat tinggi pada sistem operasi terdistribusi Amoeba. Bahasa pemrograman ini menjadi umum digunakan untuk kalangan engineer seluruh dunia dalam pembuatan perangkat lunaknya, bahkan beberapa perusahaan menggunakan python sebagai pembuat perangkat lunak komersial.
Python merupakan bahasa pemrograman yang freeware atau perangkat bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau mendistribusikannya. Lengkap dengan source codenya, debugger dan profiler, antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka, fungsi sistem, GUI (antarmuka pengguna grafis), dan basis datanya. Python dapat digunakan dalam beberapa sistem operasi, seperti kebanyakan sistem UNIX, PCs (DOS, Windows, OS/2), Macintosh, dan lainnya. Pada kebanyakan sistem operasi linux, bahasa pemrograman ini menjadi standarisasi untuk disertakan dalam paket distribusinya.
2. Aplikasi bahasa phyton
Perangkat bantu shell. Tugas-tugas sistem administrator, program baris perintah.
Kerja bahasa ekstensi. Antarmuka untuk pustaka C/C++, kustomisasi
Pembuatan prototipe secara cepat/pembuatan sistem aplikasi. Prototipe yang dapat dibuang atau sesuai dengan permintaan.
Modul berdasarkan bahasa pemrograman. Pengganti dari penulisan parser khusus.
Antarmuka pengguna grafis. Penggunaan GUI API sederhana dan canggih.
Pengaksesan basisdata. Penyimpanan objek tetap, antarmuka sistem SQL.
Pemrograman terdistribusi. Penggunaan API mekanisme client/server terintegrasi.
Skrip internet. Skrip CGI, antarmuka HTTP, Aplet WWW, dan lainnya.
3. Kelebihan dan Kekurangan
Kelebihan :
Tidak ada tahapan kompilasi dan penyambungan (link) sehingga kecepatan perubahan pada masa pembuatan system aplikasi meningkat.
Tidak ada deklarasi tipe sehingga program menjadi lebih sederhana, singkat, dan fleksible.
Manajemen memori otomatis yaitu kumpulan sampah memori sehingga dapat menghindari pencatatan kode
Tipe data dan operasi tingkat tinggi yaitu kecepatan pembuatan system aplikasi menggunakan tipe objek yang telah ada
Pemrograman berorientasi objek
Pelekatan dan perluasan dalam C
Terdapat kelas, modul, eksepsi sehingga terdapat dukungan pemrograman skala besar secara modular
Pemuatan dinamis modul C sehingga ekstensi menjadi sederhana dan berkas biner yang kecil
Pemuatan kembali secara dinamis modul phyton seperti memodifikasi aplikasi tanpa menghentikannya
Model objek universal kelas Satu
Konstruksi pada saat aplikasi berjalan
Interaktif, dinamis dan alamiah
Akses hingga informasi interpreter
Portabilitas secara luas seperti pemrograman antar platform tanpa ports
Kompilasi untuk portable kode byte sehingga kecepatan eksekusi bertambah dan melindungi kode sumber
Antarmuka terpasang untuk pelayanan keluar seperti perangkat Bantu system, GUI, persistence, database, dll
Kekurangan:
Beberapa penugasan terdapat diluar dari jangkauan python, seperti bahasa pemrograman dinamis lainnya, python tidak secepat atau efisien sebagai statis, tidak seperti bahasa pemrograman kompilasi seperti bahasa C.
Disebabkan python merupakan interpreter, python bukan merupakan perangkat bantu terbaik untuk pengantar komponen performa kritis.
Python tidak dapat digunakan sebagai dasar bahasa pemrograman implementasi untuk beberapa komponen, tetapi dapat bekerja dengan baik sebagai bagian depan skrip antarmuka untuk mereka.
Python memberikan efisiensi dan fleksibilitas tradeoff by dengan tidak memberikannya secara menyeluruh. Python menyediakan bahasa pemrograman optimasi untuk kegunaan, bersama dengan perangkat bantu yang dibutuhkan untuk diintegrasikan dengan bahasa pemrograman lainnya.
H. Bahasa Cobol
1. Sejarah
COBOL diciptakan pada tahun 1959. Bahasa COBOL pertama kali diperkenalkan secara resmi atau formal pada bulan Januari 1960. Versi dari bahasa COBOL ini disebut dengan COBOL-60. Dan diperbaharui pada tahun 1965. Bila suatu bahasa komputer tidak standar, dalam arti banyak versinya, maka menyulitkan pemakai untuk menerapkannya, pemakai harus menyesuaikan versi dari COBOL yang dipakai oleh komputer tertentu. Untuk mengatasi masalah hal ini, pada tahun 1968 dan 1974 bahasa COBOL dikembangkan dan disempurnakan lebih lanjut dan distandardisasikan dengan nama ANSI COBOL (American National Standards Institute ). ANSI COBOL ini yang sekarang banyak diterapkan oleh sejumlah pabrik-pabrik komputer. Dengan adanya standardisasi, pemakai tidak terlalu sulit menggunakan bahasa COBOL versi yang berbeda, karena inti dari bahsa ini sama.
2. Aplikasi bahasa COBOL
Untuk membuat aplikasi bisnis
Untuk pengolahan data dan database
3. Kelebihan dan Kekurangan
Kelebihan :
Program COBOL dibuat dalam instruksi bahasa inggris, sehingga lebih mudah dipelajari dan dibuat.
Program COBOL sesuai untuk pengolahan data yang banyak diterapkan pada permaslahan .
Program COBOL sifatnya standard, sehingga dapat dipergunakan pada komputer-komputer yang berbeda, tanpa banyak perbedaan.
Struktur program COBOL jelas, sehingga dapat dimengerti oleh orang seperti akuntan, auditor, atau manajer-manajer yang hanya mempunayai pengetahuan pengolahan data yang sedikit.
COBOL menyediakan fasilitas Listing Program, bilamana perlu dapat diperiksa oleh orang lain selain programer.
Mudah didokumentasikan dan dikembangkan bilamana perlu
Problem Orientad Language
Kekurangan :
Operasi masukan dan keluaran yang masih kaku
Struktur penulisan program yang sangat kaku dan bertele-tele
I. Bahasa Basic
1. Sejarah
BASIC adalah beginner all-purpose symbolic instruction code dikembangkan tahun 1965 di Darmouth College oleh John Kemeny dan Thomas Kurtz. Awalnya ditujukan untuk pengajaran dasar pemrogaman computer.
2. Aplikasi bahasa basic
Landasan pemrograman Visual Basic dan visual basic for aplication
Bahasa pemrograman pada banyak produk Microsoft seperti untuk administrasi dan otomatisasi batch skrip, windowskrip house.
Untuk pembuatan program kid Basic, FreeBasic, dan Gambas
3. Kelebihan dan Kekurangan
Kelebihan:
Bahasa Basic tergolong bahasa serbaguna dan dapat digunakan di aplikasi apa saja.
Kekurangan:
Bahasanya kurang terstruktur
Tidak cocok untuk membuat aplikasi besar
Sintaksnya penuh dengan GOTO yang menyesatkan
Bahasa ini merupakan bahasa yang primitif di era DOS
J. Bahasa C++
1. Sejarah
Bahasa C++ diciptakan oleh Bjarne Stroustrup tahun 1983 di Lab Bell. C++ merupakan bahasa pemrograman berorientasi objek menggunakan kaidah bahasa C
2. Aplikasi bahasa C++
Sebagai bahasa pemrograman di Windows, UNIX, Linux.
Visual C++ dapat dibuat aplikasi apa saja seperti database.
Bahasa untuk pembuatan system operasi, game, system kendali,pembuatan aplikasi
Untuk membuat bahasa baru atau membuat compiler bahasa baru
Untuk menulis komponen dan file-file pustaka bahasa lain
3. Kelebihan dan Kekurangan
Kelebihan:
Merupakan induk dari bahasa pemrograman perl, php, phyton, visual basic, gambas, java, C#
Compiler bahasa C++ terdapat di semua platform
Untuk pengembangan visual dijejali dengan platform yang sangat banyak seperti OWL, MFC, Cocoa, QT, GTK, dll
Merupakan pemrograman berorientasi objek
Kekurangan:
Bahasa ini cukup sulit untuk dipel;ajari dan dipahami
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai
Bagi pemula pada umumnya akan kesulitan menggunakan pointer

Rabu, 10 Maret 2010

TUGAS ALGORITMA BASIS STEP

Tugas algoritma basis step dan inductive step
Nama : RHEKA WIDAYA
Kelas : 3IB01A
Npm : 10407714
Mata kuliah : Algoritma dan Pemrograman
Dosen : Ety . S


1. Basis step 4n-1 habis dibagi 3 untuk setiap bilangan.
S (1) = benar
S (n) = S(1) n>1
N = 1
4n-1 = 41- 1 {habis dibagi 3 (benar) }

2. Inductive step
S (k) = benar
S(n) = S (k)
N = k
4n-1 = 4k- 1 …………………………………… (1)

S (k + 1) = benar
S (n) = S (k+1)
N = k+1

• Jadi, 4n-1 = 4k+1 – 1
= 4k 4-1
= 3 4k + 4k - 1 {habis dibagi 3 } (benar)

Selasa, 23 Februari 2010

Algoritma & Pemrograman

Pengantar Algoritma dan
Pemrograman

Bab 1 Pengantar Algoritma

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.
Pengantar Algoritma dan Pemrograman

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 computer 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 alat-
alat 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 :

Programming
Language Paradigm
Imperative
Declarative
Prosedural
ObjOriented
Parallel
Logic :
Functional :
Database :
C, Pascal,
Ada, Object
Processing :
PROLOG
LISP, APL,
SQL
Fortran,
Pascal, C++,
Ada, Pascal S,
SCHEME
Basic
Java,
Occam, C-
Smalltalk,
Linda
Eiffel

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 Algoritma

Aksi :
– kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan
berakhir pada saat T1)
– Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan
Contoh :
– Ibu Tati mengupas kentang untuk mempersiapkan makan malam..(luas
ruang lingkupnya)
– Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek
netto yang direncanakan ( Initial State dan Final State)
– Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan
ditaruh di rak dapur dimana ibu Tati akan mengupasnya
– Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci,
siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi.
– Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan.
– Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian
– Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari
sudut pandang. Contoh mengupas kentang dapat dijelaskan :
Ambil kantong kentang dari rak
Ambil panci dari almari
Kupas kentang
Kembalikan kantong kentang ke rak
– Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang
diambil dari rak sebelum ambil panci) :
Ambil kantong kentang dari rak dan ambil panci dari almari
Kupas kentang
Kembalikan kantong kentang ke rak
Jika esok hari ibu Tati mengupas kentang lagi untuk makan malam juga, dan
kita mengamati hal-hal yang sama, apakah hal tsb bisa disebut sama ?
Ini tergantung jawabannya bisa sama bisa tidak.
Tidak karena ibu Tati tidak mungkin mengupas kentang yang sama dengan
Kemarin Sama karena kemiripan pola yang dilakukan Notasi Algoritma Independen Terhadap Bahasa Pemrograman Dan Mesin Komputer
Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Analoginya sama dengan resep membuat kue. Sebuah resep dapat ditulis dalam bahasa
apapun. Bahasa Jepang, Inggris, Perancis, Indonesia, dan lain sebagainya. Apapun
bahasanya, kue yang dihasilkan tetap sama asalkan semua aturan pada resep diikuti.
Mengapa demikian ? Karena setiap juru masak (sebagai pemroses) dapat melakukan
operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan lain
sebagainya. Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda teknologinya, tetapi secara umum semua komputer dapat melakukan operasi-operasi dasar dalam pemrograman seperti operasi pembacaan data, operasi perbandingan, operasi aritmatika, dan sebagainya.
Perkembangan teknologi komputer tidak mengubah operasi-operasi dasar it, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain setiap program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam bahasa mesin sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap komputer.
Pemrograman Prosedural Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti Algoritma adalah proses yang procedural.

Definisi Prosedural menurut Kamus Besar Bahasa Indonesia :

1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.
Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian
instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena
adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan pemrograman procedural.
Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural. Selain paradigma pemrograman procedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented Programming). Paradigma pemrograman ini merupakan trend baru dan sangat populr akhir-akhir ini. Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan ini penulis hanya menyajikan paradigma pemrograman procedural saja.

Sabtu, 02 Januari 2010

IRR

IRR atau Internal Rate of Return, merupakan instrument evaluasi yang digunakan untuk memutuskan apakah suatu pemilik modal ingin melakukan investasi atau tidak.

IRR > tingkat keuntungan yang diisyaratkan, proyek diterima
IRR < tingkat keuntungan yang disyaratkan, proyek ditolak


IRR lebih merupakan suatu indikator efisiensi dari suatu investasi, berlawanan dengan NPV, yang mengindikasikan value atau suatu besaran uang. IRR merupakan effective compounded return rate annual yang dapat dihasilkan dari suatu investasi atau yield dari suatu investasi. Suatu proyek/investasi dapat dilakukan apabila rate of returnnya lebih besar daripada return yang diterima apabila kita melakukan investasi di tempat lain (bank, bonds, dll). Jadi IRR harus dibandingkan dengan alternatif investasi yang lain.
Secara matematis, IRR didefinisikan sebagai discount rate yang menghasilkan NPV sama dengan nol. Misal:

YearCash Flow
0-100
1+30
2+35
3+40
4+45
Internal Rate of Return (IRR)
NPV = 0 = -100 + 30/(1+r) + 35/(1+r)2 + 40/(1+r)3 + 45/(1+r)4
IRR: = r,
NPV = 0, pada r = 17.09% sehingga IRR = 17.09%


Grafik NPV sebagai fungsi dari r (sumbu X merupakan discount rate dan sumbu Y merupakan NPV) - terlampir.
IRR memiliki kelemahan dimana IRR umumnya digunakan untuk pengambilan keputusan untuk single project bukan mutually exclussive project (proyek yang saling menghilangkan). Untuk mutually exclusive project, kriteria NPV lebih dominan digunakan dimana proyek dengan NPV lebih besar akan dipilih walaupun memiliki IRR yang lebih kecil. Dari grafik, suatu proyek mungkin akan memiliki beberapa discount rate yang membuat nilai NPV = 0 (ada net income negatif di sela-sela tahun net income positif), sehingga nilai IRR bisa lebih dari satu atau kita dihadapkan pada beberapa pilihan nilai IRR. Dari segi reinvestasi, IRR juga memiliki kelemahan sehingga digunakan MIRR (Modified Rate of Return).

Walaupun secara akademik NPV lebih dominan dipilih, survey mengindikasikan bahwa kalangan eksekutif lebih menyukai IRR daripada NPV. Hal ini dikarenakan para manager ataupun pemilik modal lebih gampang membandingkan investasi/proyek yang berbeda besaran dalam bentuk % rate of return (IRR) dibandingkan dengan besaran uang (NPV).

nilai waktu dari uang

Time value of money (Nilai Waktu Uang)
Teknik discounted cash flow adalah didasarkan pada konsep time value of money. Konsep ini menyatakan bahwa utilitas uang saat ini lebih tinggi dibandingkan dengan utilitasnya untuk uang yang sama pada waktu yang akan datang. Konsep ini juga yang sangat popular menjustifikasi bunga atas modal yang dipinjam.
Menurut konsep ini, jika nilai guna uang pinjaman bagi yang dipinjamkan kepada peminjam adalah sama dengan nilai uang pada masa yang akan datang, maka pemberi pinjaman akan menambahkan bunga, sehingga nilai uang pada masa yang akan datang adalah sama dengan nilai uang pada saat ini. Sekarang ini secara konseptual merupakan suatu asumsi yang faulty. Hal ini adalah benar bahwa dalam beberapa kasus nilai guna uang saat ini dapat lebih besar daripada nilai gunanya pada masa yang akan datang.
Semua konsumsi signifoes sehingga nilai uang saat ini (atas sumber daya lainnya yang dikonsumsi) adalah lebih tinggi pada masa saat sekarang, kecuali konsumen akan menggunakannya untuk masa yang akan datang. Tetapi, uang yang disimpan dimanapun di dunia ini merupakan suatu indikasi tertentu yang menunjukkan bahwa penyimpan menerima nilai uang yang disimpan lebih besar di masa yang akan datang dari pada sekarang. Jika tidak, maka seseorang akan mengkonsumsinya sekarang dan uang tersebut memiliki nilai yang lebih besar pada saat sekarang. Jadi, banyaknya modal yang disimpan dan diinvestasikan, nilai uangnya di masa yang akan datang adalah lebih tinggi. Tidak ada justifikasi rasional untuk menambahkan bunga terhadap uang tersebut sehingga membuatnya memiliki nilai yang sama pada masa yang akan datang dengan nilainya sekarang.
Hal ini dapat diperdebatkan bahwa ada suatu keinginan manusia yang dipertanyakan untuk mendapatkan sumber daya sesegera mungkin pada waktu sekarang dibandingkan dengan masa yang akan datang. Oleh karena itu, aset yang menghasilkan cash-flow untuk masa yang akan datang akan menjadi lebih dapat dinilai daripada aset yang menghasilkan cash-flow pada masa yang lalu. Pengamatan kesepakatan umum ini adalah sangat valid, tetapi ini tidak perlu mendiskonto cash-flow dengan discount factor. Seseorang dapat membandingkan tingkat return akuntansi dari dua proposal investasi dan jika dua proposal tersebut sama, kemudian yang satunya mampu memberikan cash-flow yang lebih tinggi pada waktu yang dipilih. Tetapi jika tingkat return tidak sama, pada umumnya, proposal yang memberikan cash-flow yang lebih tinggi akan digunakan, kecuali jika seseorang itu mengharapkan bahwa dalam kasus tingkat return yang lebih tinggi, cash-flow yang diterima lebih dahulu saat ini akan menjadi cocok untuk diinvestasikan kembali dan tingkat return kumulatifnya akan lebih tinggi.[39] Tetapi kembali bahwa hal ini tidak perlu suatu discounting.