Sabtu, 28 Juli 2012

Sains di Mata Islam




Bacalah dengan (menyebut) nama Tuhanmu Yang menciptakan. Dia telah menciptakan manusia dari segumpal darah. Bacalah dan Tuhanmulah Yang Maha Pemurah. Yang mengajar (manusia) dengan perantaraan kalam. Dia mengajarkan kepada manusia apa yang tidak diketahuinya.
QS. AL-ALAQ: 1-5
Manusia diciptakan dari substansi serupa gumpalan darah yang telah dianugerahi Allah SWT dengan kemampuan analisis untuk mengurai rahasia-rahasia di balik fenomena alami. Kompilasi pengetahuan manusia kemudian didokumentasikan dan disebarkan dalam bentuk tulisan yang di simbolkan dengan pena. Ayat-ayat tersebut melahirkan sains dalam upaya menafsirkannya.
“Bacalah dengan nama Tuhanmu Yang Menciptakan”. Maka riset saintis Islam berangkat dari keyakinan bahwa Allah pencipta dan pemelihara alam serta hanya karena-Nya pokok pangkal segala niat. Atas dasar itu, setiap tahapan riset yang menyingkapkan satu mata rantai rahasia alam semestinya disyukurinya dengan ungkapan.
Ya Tuhan kami, tiadalah Engkau menciptakan ini dengan sia-sia. Maha Suci Engkau, maka peliharalah kami dari siksa neraka Q.S. 3:191.
Dalam Al-Qur’an dinyatakan bahwa orang yang tidak beriman adalah mereka yang tidak mengenali atau tidak menaruh kepedulian akan ayat atau tanda-tanda kebesaran dan kekuasaan Allah di alam semesta ciptaan-Nya.
Sebaliknya, ciri menonjol pada orang yang beriman adalah kemampuan memahami tanda-tanda dan bukti-bukti kekuasaan sang Pencipta tersebut. Ia mengetahui bahwa semua ini diciptakan tidak dengan sia-sia, dan Ia mampu memahami kekuasaan dan kesempurnaan ciptaan Allah di segala penjuru manapun. Pemahaman ini pada akhirnya menghantarkan pada penyerahan diri, ketundukan dan rasa takut kepada-Nya. Ia adalah termasuk golongan yang berakal.
   
GEOGRAPHY
Ayat di bawah ini menjelaskan bahwa awan sebanyak gunung-gunung, apabila bila kita berpergian dengan menumpang pada pesawat terbang, kita akan lihat di jendela pesawat terbang itu bahwa awan sebanyak gunung-gunung yang berada dibawahnya. Fakta itu sudah tertulis di Al Qur’an 1400 tahun yang lalu sebelum umat manusia menemukan pesawat terbang. Jelaslah memang Al Qur’an adalah Firman dari Allah SWT karena pernyataan yang terkandung di dalamnya melebihi jaman.

Tidaklah kamu melihat bahwa Allah mengarak awan, kemudian mengumpulkan antara (bagian-bagian) nya, kemudian menjadikannya bertindih-tindih, maka kelihatanlah olehmu hujan keluar dari celah-celahnya dan Allah (juga) menurunkan (buiran-butiran) es dari langit, (yaitu) dari (gumpalan-gumpalan awan seperti) gunung-gunung, maka di timpakan-Nya (butiran-butiran) es situ kepada siapa yang dikehendaki-Nya dan dipalingkan-Nya dari siapa yang dikehendaki-Nya. Kilauan kilat awan itu hampir-hampir menghilangkan penglihatan QS.NUUR, 24:43

OCEANOLOGI
 
Atau seperti gelap gulita di lautan yang dalam, yang diliputi oleh ombak, yang di atasnya ombak (pula), diatasnya (lagi) awan; gelap gulita yang tertindih-tindih, apabila dia mengeluarkan tangannya, tiadalah dia dapat melihatnya, (dan) barangsiapa yang tiada diberi cahaya (petunjuk) oleh Allah tiadalah dia mempunyai cahaya sedikitpun. QS.NUUR, 24:4

Sumber: http://www.scribd.com/doc/2918652/Membangun-Sains-Teknologi-Menurut-Islam

Jumat, 27 Juli 2012

Evolusi Bahasa Pemrograman


Assalamu'alaikum wr.wb. 
Salam Blogger!, pada kesempatan kali ini saya akan membahas tentang Evolusi Bahasa Pemrograman. Dibawah ini adalah beberapa evolusi bahasa pemrograman.
 
  • Plankalkul
Bahasa pemrograman juga sudah ada pada sekitar  tahun 1945 yang bernama Plankalkul yang dibuat oleh ilmuwan Jerman bernama Konrad Zuse ( baca : Tsoo zuh), namun belum sempat diterapkan karena kondisi pada saat itu  sedang perang.
  • Pseudo-code
Pseudo-code adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah.Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan.Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan (hampir sama dengan algoritma), hanya saja bentuknya sedikit berbeda dari algoritma.
Pseudo-code menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma.
  • Laning dan Zierler System
Bahasa ini diimplementasikan pada komputer Whilwind – MIT. Laning dan Zierler System merupakan bahasa yang menggunakan system compiler pertama di dunia. Selain itu bahasa ini juga mempunyai fasilitas translasi ekspresi dan pemanggilan fungsi. Kelemahannya adalah bahasa ini tidak pernah diporting ke mesin lain.
  • Fortran I
Pada tahun 1954, John Backus dan IBM mulai mengembangkan bahasa pemrograman FORTRAN (FORmula TRANslator). Bahasa FORTRAN merupakan bahasa pemrograman level tinggi pertama yang dikomersialkan. Pemrograman level tinggi maksudnya adalah perintah atau kodenya mudah dibaca dan dipahami oleh manusia. FORTRAN pada mulanya didesain untuk mengekspresikan humus matematika dan maiz merupakan bahasa matematika yang paling banyak digunakan. Bahasa ini juga berguna untuk aplikasi bisnis yang kompleks, seperti perkiraan (forecasting) dan pemodelan. Namur karena tidak mampu manangani operasi input/output atau pemrosesan file dalam volume besar, maka bahasa FORTRAN tidak digunakan untuk masalah bisnis yang biasa.
Pseudo-code & flowchart
Kerugian :
-         FORTRAN tidak menangani operasi input dan output pada peralatan penyimpanan seefisien bahasa lain yang levelnya lebih tinggi
-         Memiliki keterbatasan untuk mengekspresikan dan memproses data nonnumerik
-         Tidak bisa dibaca atau dipahami semudah bahasa level tinggi yang lain.
Keuntungan : FORTRAN bisa menangani ekspresi matematika dan logika yang kompleks. Pernyataanya cukup pendek dan sederhana.
  • Fortran II
Pada tahun 1958, FORTRAN II dan ALGOL dipublikasikan bersamaan dengan diluncurkannya LISP. Sedangkan pada tahun 1959, bahasa pemrograman COBOL juga diluncurkan. Sejak saat itu perkembangan bahasa pemrograman berkembang sangat cepat.
Merupakan perbaikan dari generasi sebelumnya yaitu FORTRAN I. hal yang membedakan antara FORTRAN II dengan FORTRAN I adalah mengenai compilationnya. Dimana kita tahu pada FORTRAN I compilationnya tidak terpisah, sedangkan pada FORTRAN II ini compilationnya terpisah.
  • FORTRAN IV (1962)
Bahasa ini menggunakan deklarasi tipe eksplisif serta logical selection statement (Logical IF). Subprogram dapat menjadi  parameter. FORTRAN IV kemudian menjadi standar ANSI pada tahun 1968.
  • FORTRAN 77 (1978)
Secara umum, FORTRAN 77 merupakan perkembangan ke arah pemrograman terstruktur dibandingkan FORTRAN IV. Misalnya struktur IF THEN – ELSE – END IF yang semula belum ada pada FORTRAN IV mulai dimasukkan pada FORTRAN 77.
Tambahan fasilitas baru lainnya :
- Adanya variabel berjenis karakter (dengan spesifikasi CHARACTER) beserta fungsi-fungsi bawaannya (intrinsic function)
- Fasilitas penanganan unit input dan output (OPEN, CLOSE, INQUIRE)
- Pendemensian larik dengan indeks yang tidak harus positif (bisa nol atau negatif)
  • FORTRAN 90  (1990)
FORTRAN 90 sudah menggunakan modul-modul dengan akses private maupun public. Terdapat array dinamik. record dan pointer. FORTRAN 90 juga bersifat rekursif. Terdapat statement CASE, EXIT, dan CYCLE. Serta pengecekan tipe parameter.
  • LISP ( 1959 )
LISP (LISt Processing) dispesifikasikan John McCarthy pada tahun 1950. Mulanya LISP dimaksudkan sebagai model komputasi alternatif berdasarkan teori fungsi/persamaan rekursif.
Tujuan McCarthy adalah sebagai berikut:
- Menciptakan bahasa untuk komputasi simbolik bukan numerik.
- Implementasi model komputasi berdasarkan teori fungsi rekursif.
- Menyediakan definisi sintaks dan simantiks bahasa yang bersih.
- Mendemonstrasikan secara formal kelengkapan model komputasi ini.
Selain sebagai formalisasi matematika, LISP merupakan bahasa pemrograman yang praktis. LISP sesuai namanya LISt Processing dirancang untuk menyediakan kemampuan manipulasi simbol untuk menangani masalah pemrograman yang melibatkan banyak manipulasi simbolik.
Pada LISP, list adalah basis program dan struktur data. LISP menyediakan fungsi-fungsi penanganan list yang diimplementasikan secara internal sebagai struktur pointer berkait. Program dapat menggunakan keampuhan dan generalitas penuh struktur berkait dengan bebas dari tangungjawab mengelola pointer dan operasi-operasi pointer secara eksplisit.
Mulanya LISP adalah bahasa yang sangat kecil dan sederhana, yaitu:
- Fungsi untuk membentuk dan mengakses list
- Mendefinisikan fungsi baru
- Mendeteksi kesamaan
- Evaluasi ekspresi
- Kendali Program: Rekursi dan Kondisi tunggal
Selain itu, adanya penambahan pada LISP yaitu :
- Fungsi untuk penstrukturan data
- Kendali program
- Aritmatika real dan integer
- I/O
- Penyuntingan fungsi LISP
- Penelusuran eksekusi program.
LISP berkembang menjadi lingkungan yang kaya, ampuh dan praktis untukmembangun sistem perangkat lunak besar. Pada tahun 1993, DARPA mengusulkan standarisasi disebut Common LISP.
LISP merupakan bahasa yang memiliki fitur unik. Bahasa LISP menjadi media yang luar biasa untuk mempelajari bentukan-bentukan pemrograman dan struktur data serta menghubungkannya ke fitur-fitur bahasa yang mendukungnya.
Fitur paling berarti adalah deskripsi proses di LISP yang disebut procedure dapat direpresentasikan dan dimanipulasi sebagai data.
Pentingnya hal ini adalah bahwa teknik-teknik perancangan program yang ampuh yang bergantung pada pengaburan antara data “pasif” dan proses “aktif”.
Fleksibilitas LISP dalam menangani prosedur sebagai data membuatnya menjadi bahasa yang cocok untuk eksplorasi teknik-teknik pengaburan.
Kemampuan merepresentasi prosedur sebagai data juga membuat LISP merupakan bahasa luar biasa untuk menulis program yang harus memanipulasi program lain sebagai data seperti interpreter atau kompilator yang mendukung bahasa pemrograman.
  • ALGOL 58
Alasan dikembangkannya ALGOL 58 :
1.     FORTRAN terbatas untuk mesin IBM 70x.
2.     Bahasa-bahasa yang lain juga dikembangkan tetapi hanya untuk mesin tertentu.
3.     Tidak terdapat bahasa yang portable, semuanya bergantung pada mesin
4.     Tidak terdapat bahasa yang universal.
Tujuan dari bahasa ALGOL adalah bahasa ini mendekati notasi matematika, baik untuk mendeskripsikan algoritma, dan harus dapat ditranslasikan ke kode mesin.Fitur dari bahasa ALGOL :
1.     Menggunakan konsep tipe data secara formal.
2.     Nama variable tidak terbatas panjangnya.
3.     Index array tidak terbatas.
4.     Parameter dipisahkan oleh modenya (in dan out).
5.     Index ditempatkan dalam bracket (tanda [ ]).
6.     Mendukung compound statement (pernyataan majemuk) (begin…end).
7.     Tanda semicolon (titik koma, merupakan pemisah antar statement.
8.     Menggunakan operator assignment :=
9.     Statement IF mempunyai ELSE-IF (nested-IF)
  • ALGOL 60
Fitur baru pada ALGOL 6 adalah:
1.     Block structure (local scope).
2.     2 model passing parameter (by name dan by value).
3.     Rekursi subprogram.
4.     Stack-dynamic array.
Meskipun ALGOL 60 merupakan penyempurnaan dari ALGOL 58 tetap saja ALGOL 60 belum mempunyai I/O dan string handling. Bahasa ini merupakan bahasa pertama yang syntaxnya didefinisikan secara formal. (Menggunakan BNF- Backus Naur Form/ Backus Normal Form). Karena dominasi FORTRAN di Amerika dan syntaxnya formal bahasa ini tidak dipakai secara luas.
  • COBOL (1960)
Singkatan dari COmmon Business Oriented Language. Tujuan desain COBOL adalah:
1.     Harus seperti bahasa Inggris yang sederhana.
2.     Mudah untuk digunakan.
3.     Harus dapat dipergunakan secara luas.
4.     Harus terbebas dari masalah implementasi compiler.
5.     Kontribusi terhadap perkembangan bahasa pemrograman :
6.     Fasilitas makro yang pertama dalam bahasa tingkat tinggi.
7.     Struktur data hirarki (record).
8.     Statement kondisi bersarang (nested selection statements).
9.     Nama variable dapat mencapai 30 karakter.
10.                        Pembagian data.
  • BASIC (1964)
Beginners All-purpose Symbolic Instruction Code dibuat oleh John Kemeny dan Thomas Kurtz. Walaupun struktur program ini jelek tetapi bahasa ini tergolong mudah untuk dipelajari. Dialek dari BASIC yang sekarang populer adalah  QuickBASIC dan Visual BASIC.
  • Pascal (1971)
Didesain oleh Niklaus Wirth, yang keluar dari tim ALGOL 68. Merupakan bahasa yang dikembangkan dari ALGOL 68. Didesain untuk pengajaran pemrograman terstruktur. Kecil dan mudah, tidak terdapat hal yang benar-benar baru. Tetap menjadi bahasa pemrograman yang digunakan secara luas untuk mengajarkan pemrograman di universitas-universitas.
  • Prolog (1972)
Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-prosedural. Namanya diambil dari bahasa perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alanin Colmerauer dan Robert kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankankomputer.
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.
  • C (1972)
Didesain untuk pemrograman system oleh Dennis Ritchie dari Bell Labs. Dikembangkan dari bahasa B dan ALGOL 68. Memiliki operator yang banyak, tetapi dari segi pengecekan tipe data (type checking) kurang baik. Didistribusikan bersama system operasi UNIX.
  • Smalltalk (1972-1980)
Dikembangkan di Xerox Palo Alto Research Center (Xerox PARC), oleh Alan Kay, kemudian dilanjutkan oleh Adele Goldberg. Merupakan bahasa yang pertama kali mengimplementasikan  konsep object-oriented (data abstraction, inheritance, dan dynamic type binding). Merupakan pionir dari GUI (Graphical User Interface).
  • Ada (1983)
Bahasa pemrograman Ada, adalah sebuah bahasa pemrograman prosedural yang didesain di bawah arahan Departemen Pertahanan Amerika Serikat pada akhir tahun 1970-an dan awalnya ditujukan sebagai bahasa utama dalam membangun perangkat lunak Departemen Pertahanan. Nama Ada sendiri diambil dari Augusta Ada Byron, seorang istri bangsawan (countess) Lovelace yang dianggap sebagai seorang pemrogram komputer (programmer) yang pertama. Bahasa ini diturunkan dari bahasaPascal tapi memiliki beberapa tambahan semantik dan sintaksis, seperti halnya eksekusi tugas secara serentak, operator overloading, dan juga module. Ada 95 mendukung OOP melalui penurunan tipe, terdapat mekanisme kontrol yang lebih baik dalam penggunaan data secara bersama-sama, library lebih flexible.
Kontribusi :
– Packages – dukungan untuk data abstraction.
– Exeception handling.
– Generic program units.
– Concurrency – melalui model tasking
  • C++ (1985)
Dikembangkan oleh Bjarne Stroustrup di Bell Labs. Merupakan pengembangkan dari C dan SIMULA 67. Terdapat fasilitas OOP yang berasal dari SIMULA 67 dan ditambahkan ke C. Mempunyai exception handling. Merupakan bahasa yang besar dan kompleks karena mendukung procedural programming dan object-oriented programming. Popularitasnya cepat berkembang bersama dengan OOP. Menjadi standard ANSI pada tahun 1997.
  • Java (1995)
Dikembangkan oleh James Gosling, Sun Microsystems. Java didasarkan pada penyederhanakan C++. Kekurangan Java adalah bahasa ini hanya mendukung OOP. Java mempunyai reference, tetapi tidak pointer. Terdapat juga dukungan untuk applets (world wide web) dan concurrency (Java Threads).
  • Scripting Language untuk Web
a)      JavaScript
Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document. Mempunyai syntax yang mirip dengan Java.
b)      PHP (PHP Hypertext Preprocessor)
Digunakan pada Pemrograman Web (server-side). PHP menghasilkan code HTML sebagai outputnya. Mempunyai syntax yang mirip dengan C++ (support OOP).
c)      VBScript
Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document. Didasarkan atas Visual Basic. Bahasa ini dikembangkan oleh Microsoft.
d)      Jscript
Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document. Memiliki syntac yang mirip dangan C++. Dikembangkan oleh Microsoft.
e)      ASP (Active Server Page)
Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya. Dikembangkan oleh Microsoft.

Sumber: 
alizamil.wordpress.com/2010/06/17/evolusi-bahasa-pemrograman/