Showing posts with label Pemrograman. Show all posts
Showing posts with label Pemrograman. Show all posts

Monday, March 21, 2016

Belajar Bahasa Pemrograman

Pada kesempatan ini kita akan mulai belajar memahami apa itu bahasa pemrograman.

Yang harus diketahui adalah belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar meprogram berarti mempelajari metedologi pemecahan masalah, kemudian menuliskan algoritma pemecahan masalah dalam notasi tertentu. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa komputer, aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan manfaat dari setiap instruksi tersebut untuk membuat program yang ditulis dalam bahasa itu saja.

Didalam pemrograman, kita lebih menekankan pada pemecahan masalah, sementara menulis kode program adalah aktivitas terakhir. Pertama kita pikirkan rancangan pemecahan masalah tanpa bergantung pada bahasa pemrograman yang digunakan atau komputeryang menjalankan program itu nanti. Rancangan tersebut berisi susunan langkah pencapapaian solusi yang biasanya ditulis dalam notasi deskriptif.

Bila rancangan sudah dibuat maka hal yang selanjutnya harus kita pikirkan adalah penggunaan bahasa pemrograman, karena jika rancangan sudah selesai itu berarti siap di transalnsi kan kedalam kode agar program bisa di eksekusi oleh komputer.

Hingga saat ini banyak sekali bahasa pemrograman. Kita dapat menyebutkan antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C++ dan masih banyak lagi.
Berdasarkan tujuan aplikasinya, bahasa pemrograman dapat dibagi menjadi dua jenis, yaitu:

  1. Bahasa pemrograman bertujuan khusus (Specific purpose programming language)
    Yang termasuk bahasa ini adalah Cobol (Untuk terapan bisnis dan administrasi), Fortran (aplikasi komputasi ilmiah) dan lain sebagainya.
  2. Bahasa pemrograman bertujuan umum (General purpose programming language)
    Yang dpaat digunakan untuk berbagai aplikasi. Bahasa pemrograman yang termasuk kelompok ini adalah Pascal, Basic, C, dan C++. Saya tidak menyebutkan hanya itu saja karena mungkin masih banyak bahasa pemrograman bertujuan umum yang lain yang belum Saya ketahui.
Dan tetu saja pembagian ini belum benar-benar kaku. Bahasa-bahasa bertujuan khusus tidak berarti tidak bisa digunakan untuk tujuan umum, begitupun sebaliknya.

Berdasakan kedekatan bahasa pemrograman apakah lebih condong ke bahasa mesin atau bahasa manusia, maka bahasa pemrograman dapat dikelompokan atas dua macam:
  1. Bahasa tingkat rendah.
    Bahasa ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer dan tidak membutuhkan Compiler atau penerjemah. Contohnya bahasa mesin (machine language). Bahasa mesin adalah sekumpulan kode biner. Setiap perintah yang diberikan dengan bahasa ini dapat langsung dimengerti oleh mesin dan langsung dikerjakan. Bahasa ini juga termasuk bahasa yang bersifat primitif, karena sulit untuk dipahami oleh manusia.
  2. Bahasa tingkat tinggi.
    Bahasa jenis ini membuat kita sebagai manusia lebih mudah memahaminya, bisa juga dikatakan lebih "manusiawi" karena lebih dekat dengan bahasa manusia (kebanyakan bahasa inggris). Kelemahannya bahasa ini adalah instruksi tidak dapat di eksekusi langsung, karena harus melalui proses penerjemaahan oleh sebuah translator bahasa (biasa disebut Compiler atau kompilator). Jika kita mengilustrasikan bahasa tingkat tinggi kedalam gambar kira-kira seperti ini:
Sebenarnya batasan penggolongan bahasa pemrograman itu tidak selalu jelas. Pengertian tentang apa yang dimaksud bahasa pemrograman tingkat tinggi seringkali berbeda pada beberapa penulis. Sampai saat ini kita belum mempelajari bagaimana cara membuat sebuah program tapi kita belajar memahami apa itu bahasa pemrograman? apa saja yg harus dimengerti sebelum menggunakan bahasa pemrograman? dan lain-lain. Pembahasan kita mengenai bahasa pemrograman dicukupkan sampai disini dulu.

Sunday, March 20, 2016

Sejarah Algoritma

Sebenarnya tidak terlalu penting bagi kita untuk membahas mengenai asal-usul algoritma. Tapi dikarenakan dalam ilmu komputer algoritma sangatlah penting dan barang kali ada yang tertarik mengenai sejarah algoritma. Maka saya akan memberikan sedikit bahasan mengenai sejarah algoritma.

Algoritma adalah jangung ilmu komputer atau informatika. Banyak cabang dari ilmu komputer yang diacu dalam terminologi algoritma, misalnya algoritma perutean(routing) pesan di dalam jaringan komputer, algoritma brensengam untuk mengambil garis lurus(bidang grafika komputer), algoritma Knuth-morris-pratt untuk mencari suatu pola dalam teks dan lain sebagainya. 

Meninjai dari asal usul kata, kata "Algoritma" sendiri mempunyai sejarah yang cukup aneh. Kata ini tidak muncul didalam kamus Webster sampai akhir tahun 1957. Orang-orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab.

Anda dikatakan algorist jika anda menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata algorism ini namun hasilnua kurang memuaskan. Akhirmnya para ahli sejarah matematika emnemukan asal mula kata tersebut. Kata algorism berasal dari nama penulis buku arab yang terkenal, yaitu Abu Ja'far Muhammad ibnu Musa al-Khuwarismi(al-Khuwarizmi dibaca oleh orang-orang baratmenjadi algorism). Al-Khuwarizmi menulis buku yang berjudul Kitab al-jabar wal-muqabala, yang artinya "Buku Pemugaran dan Pengurangan". Dari judul buku itu kita juga memperoleh akar kata "aljabar" (algebra). Perubahan dari kata algorism, arithmatic, sehingga akhoran -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 aslinya. Dalam bahasa Indonesia kata "algorithm" diserap menjadi "algoritma".

Ini hanya perkiraan wajah al-Khuwarizmi
Pada tahun 1950, kata algoritma pertama kali digunakan pada "algoritma Euclidean". Euclid, adalah seorang matematikawan Yunani, dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar, dari dua buah bilangan bulat, m dan n.

Aturan penting dari pembuatan algoritma adalah:
  1. Algoritma harus benar
  2. Algoritma harus berhenti dan setelah berhenti , algoritma harus memberi hasil yang benar.
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming sebuah algoritma harus memiliki 5 ciri penting, yaitu:
  1. Algoritma harus bergehenti setelah mengerjakan sejumlah langkah terbatas.
  2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti ganda (ambiguous).
  3. Algoritma memiliki nol atau lebih masukan.
  4. Algoritma mempunyai nol atau lebih keluaran (output).
  5. Algoritma harus sangkil(effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam jumlah waktu yang masuk akal.
Itulah sedikit mengenai Sejarah Algoritma. Postingan ini menjadi penting ketika kita mengetahui ciri dan aturan penting dalam sebuah algoritma. Semoga artikel ini bermanfaat.


Saturday, March 19, 2016

Pengertian Algoritma

Menyambung dari postingan sebelumnya yaitu Mulai Memahami Algoritma, jika Anda belum membacanya silahkan klik Memulai memahami apa itu Algoritma dan Pemrograman agar mendapat pemahaman yang lebih jelas saat membaca artikel ini.

Pengertian Algoritma
Untuk masalah yang kerumitannya cukup kecil seperti contoh di artikel sebelumnya, kita dapat menemukan solusinya dengan cepat dan mudah. Nah, bagaimana jika kerumitan masalah cukup besar? Misal pada masalah pengurutan, jika n=1000 maka jelas tidak mudah untuk mengurutkan data dari terkecil kebesar dari banyaknya data tersebut. Oleh karena itu, kita perlu menuliskan prosedur yang berisi langkah-langkah pengurutan sehingga prosedur tersbut dapat 'dijalankan' oleh sebuah pemroses baik itu komputer, manusia dan lain sebagainya. Prosedur yang berisi langkah-langkah penyelesaian masalah disebut algoritma.

Terdapat banyak definisi algoritma, namun tetap senada dengan apa yang diungkapkan diatas. Berbagai definisi dari beberapa literatur, antara lain adalah:

Algoritma adalah deretan langkah-langkah komputasi yang mentransformasikan data masukan menjadi keluaran.

Algoritma adalah deretan instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas.

Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi algoritma adalah deretan langkah komputasi yang mentransformasikan masukan menjadi keluaran.

Lebih Jelasnya
Dalam kehidupan sehari-hari kita sering menemukan langkah-langkah dalam pengerjaan sesuatu meskipun kita tidak menyebutnya sebagai sebuah algoritma. Contoh: Resep membuat masakan yang terdapat pada majalah, buku resep, blog, dan lain-lain. Contoh lain: Panduan praktikum yang terdapat pada buku modul praktikum.

Contoh langkah-langkah pengerjaan didalam resep masakan:

  1. Tuangkan satu gelas santan kedalam wajan
  2. Masukan bumbu yang sudah dihaluskan, aduk hingga merata.
  3. Tambahkan garam, merica dan kecap asin
  4. Masak dengan api sedang sambil tetap diaduk
Contoh langkah-langkah praktikum:
  1. Siapkan tabung reaksi ukuran 100cc
  2. Teteskan 50cc larutan H2SO4
  3. Campurkan 20cc laruan NaOH kedalamnya, aduk hingga tercampur merata.
Meskipun kita tidak menyebutnya sebagai algorima, tapi dalam konteks ini beberapa contoh diatas adalah termasuk algoritma.

Sekarang Anda sudah mulai memahami maksud dari apa itu algoritma bukan? Jika belum baca kembali paragraf diatas dengan teliti dan bukan hanya membaca.
Jika sudah mengerti apa itu algoritma maka kita akan memberikan artikel lainnya yang lebih mendalam mengenai pembahasan Algoritma.

Friday, March 18, 2016

Memulai Memahami Apa Itu Algoritma dan Pemrograman


Pemrograman sudah menjadi kegiatan yang sangat penting di era teknologi informasi. Program yang berjalan di komputer, baik itu komputer desktop, laptop, bahkan telpon genggam seperti android, ios dan lain sebagainya, tidak tercipta begitu saja tetapi ditulis melalui proses analisis dan percancangan yang sangat cermat dan sangat teliti. Sebuat program komputer pada dasarnya mengimplementasikan suatu algoritma. Dengan kata lain, algoritma adalah ide dibalik setiap program komputer apapun. Tetapi tahukah sahabat lotd apa itu Algoritma? apa itu program? jika tidak maka itu adalah alasan utama mengapa kita membuat artikel ini.

Pada artikel ini (terutama pada kategori artikel ini) kita akan mengupas tuntas mengenai pemrograman dan algoritma. Kami tidak akan memberikan pelajaran yang terkesan buru-buru, karena penjelasan algoritma ini harus dijelaskan pelan-pelan dan sangat detil karena jika tidak tentu kita akan kebingungan baik pembaca ataupun penulis sendiri, karena sayapun sama-sama dalam tahap belajar dalam pemrograman ini. Baik kita mulai.

Permasalahan pertama
Manusia hidup dengan segala masalah yang mengelilinginya. Hidup pada dasarnya adalah serangkaian aktivitas menyelesaikan masalah. Dalam Bahasa Indonesia, istilah yang sepadan pengertiannya dengan kata "masalah" adalah "persoalan". Dalam artikel ini kita tidak akan membedakan makna dari kedua istilah tersebut, oleh karena itu kita akan menggunakan kedua istilah tersebut secara bergantian, kadang kita sebut masalah dan kadang kita akan menyebutnya persoalan.

Contoh dari beberapa permasalahan (atau persoalan haha). Saya rasa ini terlalu sulit bagi kita menggunakan dua istilah secara bergantian, baik kita gunakan satu istilah saja yaitu permasalahan.

Contoh dari beberapa permasalahan sehari-hari misalnya:

  1. Adi diberikan setumpuk kartu pasien disebuah tempat praktek dokter yang tersusun dengan acark. Setiap kartu mempunyai nomer registrasi pasien. Permasalahannya adalah Bagaimana mengurutkan kartu tadi berdasarkan nomor urut yang tersusun dari nomer terkecil diatas nomor terbesar? maka jawaban dari permasalahan ini adalah barisan kartu pasien yang sudah tersusun dari nomer terkecil ke nomer terbesar. Bagaimana caranya? kita tentu memiliki cara masing-masing yang berbeda untuk mengurutkan nomer tersebut.
  2. Asep diberikan sebuah daftar yang berisi nama-nama mahasiswa baru yang diterima disebuah perguruan tinggi. Daftar tersebut hanya berisi nomor peserta ujian yang diterima. Carilah apakah seorang calon mahasiswa baru yang nomor perserta ujiannya diketahui terdapat di dalam daftar nomor tersebut? Jawaban dari permaslahan ini adalah "ya" jika nomor tersebut ditemukan dalam daftar dan "tidak" jika nomor tersebut tidak ditemukan dalam daftar yang diberikan pada asep.
  3. Diberikan daftar nama pejabat baru beserta jumlah kekayaannya. Tentukan pejabat mana yang mempunyai kekayaan paling besar? Jawaban dari permasalahan ini adalah nama pejabat yang mempunyai kekayaan paling besar.
Sudah dapat pengertian mengenai apa itu permasalahan dan apa itu jawaban dari sebuah permasalahan? Jika sudah Bagus! Anda bisa melanjutkan membaca. Jika belum silahkan baca berulang-ulang hingga Anda paham. 

Beberapa masalah yang muncul didalam dunia nyata banyak memiliki kemiripan subtansi. Misal masalah mengurutkan tumpukan kartu yang tersusun acak secara subtansi sama dengan masalah mengurutkan sekumpulan nilai ujian agar terurut menaik atau menurun. Begitu pula masalah mencari nama pejabat yang mempunyai kekayaan terbesar secara subtansi sama dengan masalah mencari nama siswa yang meraih nilai ujian nasional tertinggi. Oleh karena itu, secara generik kita sering mendeksripsikan masalah yang muncul didunia nyata dengan menggunakan beberapa ukuran(parameter), Misal sebagai berikut:
  1. [Masalah pengurutan] Diberikan sebuah senarai (list/ daftar) yang di simbolkan dengan S yang terdiri dari n buah bilangan bulat. Bagaimana mengurutkan  n  buah nilai tersebut sehingga terususun secara menaik?
  2. [Masalah Pencarian] Tentukan apakah suatu nilai x terdapat dalam sebuah list yang berisi n buah bilangan bulat!
  3. [Masalah Mencari elemen terbersar] Diberikan list S yang terdiri dari n buah nilai bilangan bulat. Carilah elemen terbesar di dalam senarai tersebut.
Sebagai contoh, jawaban tergadap masalah pengurutan adalah 

Sebleum terurut:
S= 15, 4, 8, 11, 2, 10, 19

Setelah terurut:
S= 2, 4, 8, 10, 11, 15, 19

Untuk masalah yang lain silahkan dicari jawabannya sendiri.

Kita memang belum membahas secara pasti apa itu pengertian Algoritma, tapi dari artikel ini Saya harap sahabat lotd dapat mendapat konsep dasar mengenai Algoritma. Untuk pengertian apa itu algoritma kita bisa mendapatkannya dipostingan berikutnya.