Peran Ilmu Matematika Terhadap Perkembangan Ilmu Komputer

Senin, 26 Desember 2016

Dewasa ini, komputer digunakan di hampir semua bidang kehidupan manusia, mulai dari pendidikan, bisnis, sampai dengan permainan. Berbicara tentang komputer tidak lepas dari pemrogaman komputer. Hal ini karena komputer pada dasarnya merupakan mesin yang tidak bisa apa-apa. Kita harus memberikan serangkaian instruksi kepada komputer agar mesin ‘pintar’ ini dapat memecahkan suatu masalah. Untuk bisa melakukannya kita harus mempunyai ilmu tentang komputer.Ilmu komputer, atau dalam bahasa Inggrisnya disebut Computer Science (CS),Ilmu komputer mencakup beragam topik yang berkaitan dengan komputer, mulai dari analisa abstrak algoritma sampai subyek yang lebih konkret seperti bahasa pemrograman, perangkat lunak, termasuk perangkat keras.

Sebagai suatu disiplin ilmu, Ilmu Komputer lebih menekankan pada pemrograman komputer, dan rekayasa perangkat lunak (software), sementara teknik komputer lebih cenderung berkaitan dengan hal-hal seperti perangkat keras komputer (hardware). Namun demikian, kedua istilah tersebut sering disalah-artikan oleh banyak orang. Ilmu Komputer mempelajari apa yang bisa dilakukan oleh beberapa program, dan apa yang tidak (komputabilitas danintelegensia buatan), bagaimana program itu harus mengevaluasi suatu hasil (algoritma), bagaimana program harus menyimpan dan mengambil bit tertentu dari suatu informasi (struktur data), dan bagaimana program dan pengguna berkomunikasi (antarmuka pengguna dan bahasa pemrograman. Ilmu komputer berakar dari elektronika, matematikadan linguistik. Dalam tiga dekade terakhir dari abad 20,

ilmu komputer telah menjadi suatu disiplin ilmu baru dan telah mengembangkan metode dan istilah sendiri.

Peranan matematika

Sejak peradaban manusia bermula, Matematika memainkan peranan yangsangat vital dalam kehidupan sehari hari. Berbagai bentuk simbol digunakan untuk membantu perhitungan, pengukuran, penilaian dan peramalan. Dari penemuan penemuan situs purbakala, para ahli arkeologi telah menemukan penggunaan sistem penjumlahan di Afrika,dan diperkirakan telah terwujud sejak 8.500 SM dengan menggunakan tulang sebagai alat perhitungan. Begitu juga dengan perkembangan komputer, matematika juga mempunyai banyak peran dalam perkembangaanya. Kita tidak sangsi bahwa sumbangan Matematika terhadap perkembangan Ilmu dan Teknologi sangat besar sekali. Boolean Aljabar untuk komputer berdigital modern, Splines untuk merubah bentuk 3 dimensi, Fuzzy untuk peralatan elektronik, metoda numerik untuk bidang tehnik, rantai markov untuk bidang finansial dan ekonomi adalah beberapa contoh penggunaan matematika dalam bidang ilmu dan teknologi.

Perkembangan matematika ini telah banyak melahirkan mencetuskan ide-ide ke arah pelaksanaan peralatan modern, seperti komputer dan sistem komunikasi. Walaupun peradapan manusia berubah dengan pesat namun bidang matematika terus relevan dan menunjang kepada perubahan ini. Sumbangan matematika terhadap perkembangan Ilmu Komputer sangatlah besar tengok saja istilah-istilah seperti Statistika, Probabilitas, Teori Informasi, Teori Graf, Aljabar Boolean, Matematika Diskret, Algoritma, dan Kalkulus yang ternyata sangat dibutuhkan dalam perkembangan Ilmu Komputer

Probabilitas

Probabilitas suatu kejadian adalah angka yang menunjukkan kemungkinan terjadinya suatu kejadian. Nilainya di antara 0 dan 1. Kejadian yang mempunyai nilai probabilitas 1 adalah kejadian yang pasti terjadi, dan tentu tidak akan mengejutkan sama sekali. Misalnya matahariyang masih terbit di timur sampai sekarang. Sedangkan suatu kejadian yang mempunyai nilai probabilitas 0 adalah kejadian yang mustahil atau tidak mungkin terjadi. Misalnya seorang manusia melahirkan seekor kambing.

Algoritma


Penemu algoritma sendiri yang tercatat dalam sejarah awal adalah dari seorang yang bernama Abu Abdullah Muhammad Ibn Musa al Khwarizmi. Al Khwarizmi adalah seorang ahli matematika dari Uzbekistan yang hidup di masa tahun 770-840 masehi. Di literatur barat ia lebih terkenal dengan sebutan Algorizm. Kata algoritma sendiri berasal dari sebutannya ini.Algoritma adalah suatu prosedur yang tepat untuk memecahkan masalah dengan menggunakan bantuan komputer serta menggunakan suatu bahasa pemrogaman tertentu seperti bahasa Pascal, Visual Basic, Java, dan masih banyak lagi bahasa yang lain.Pranata (2002:8) dalam kehidupan sehari-hari, sebenarnya kita juga menggunakan algoritma untuk melaksanakan sesuatu. Sebagai contoh, ketika kita menulis surat, maka kita perlu melakukan beberapa langkah sebagai berikut: Mempersiapkan kertas dan amplop,mempersiapkan alat tulis, seperti pena atau pensil,mulai menulis,memasukkan kertas ke dalam amplop.

Fungsi Algoritma Dengan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat mempermudah kerja atau mempermudah dalam membuat program. Selain itu, algoritma dapat mengatasi masalah logika dan masalah matematika dengan cara berurutan, tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal dengan proses percabangan.

Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya bisa mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan tidak ada arus listrik (biasanya dilambangkan dengan 0). Dengan kata lain, kita harus menggunakan sandi 0 dan 1 untuk melakukan pemrogaman komputer. Bahasa pemrogaman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin. Karena bahasa mesin sangat susah, maka muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah difahami manusia biasa disebut dengan mnemonic code. Bahasa pemrogaman yang menggunakan singkatan kata ini disebut bahasa assembly.

Program algoritma harus komplit, nyata, dan jelas. Meskipun tugas algoritma tidak menghasilkan solusi, tetapi proses harus berakhir hal ini disebut dengan semi algorithm (prosedur akan berjalan terus atau biasa disebut dengan perulangan). Intinya kita tidak boleh menambah masalah, akan tetapi kita harus mampu menyelesaikan masalah untuk mendapat hasil yang tepat.

Kalkulus


Kalkulus adalah cabang ilmu matematika yang mencakup limit, turunan, integral, dan deret tak terhingga Kalkulus mempunyai aplikasi yang luas dalam bidang sains dan teknik dan digunakan untu memecahkan masalah yang kompleks yang mana aljabar tidak cukup untuk menyelesaikannnya. Kalkulus digunakan di setiap cabang sains fisik, sains komputer, statistik, teknik, ekonomi, bisnis, kedokteran, dan di bidang-bidang lainnya. Komputer membaca data dalam bentuk bilang biner sementara cara mencari bilangan biner dipelajari dalam ilmu kalkulus.

Logika Simbolik

Logika simbolik pertama dikembangkan oleh George Boole dan Augustus de Morgan. Boole secara sistematik dengan memakai simbol-simbol yang cukup luas dan metode analisis menurut matematika, dan Augustus De Morgan (1806-1871) merupakan seorang ahli matematika Inggris memberikan sumbangan besar kepada logika simbolik dengan pemikirannya tentang relasi dan negasi.Tokoh logika simbolik yang lain ialah John Venn (1834-1923), karyanya diagram Venn (Venn’s diagram) untuk melukiskan hubungan merangkum atau menyisihkan di antara subjek dan predikat yang masing-masing dianggap sebagai himpunan.Perkembangan logika simbolik mencapai puncaknya pada awal abad ke-20 dengan terbitnya 3 jilid karya tulis dua filsuf besar dari Inggris Alfred North Whitehead dan Bertrand Arthur William Russell berjudul Principia Mathematica (1910-1913) dengan jumlah 1992 halaman.

Statistika

Di bidang komputasi, statistika diterapkan dalam pengenalan pola maupun kecerdasan buatan.

Arsitek Bom Nuklir dan Komputer Modern

Jika berbicara siapakah tokoh yang paling berpengaruh terhadap perkembangan ilmu komputer dan komputasi modern, John Von Neumann-lah orangnya. John Von Neumann adalah salah satu ahli matematika terbesar abad ini. Beliaulah yang pertama kali menggagas konsep sebuah sistem yang menerima instruksi-instruksi dan menyimpannya dalam sebuah memori.

Konsep inilah yang menjadi dasar arsitektur komputer hingga saat ini. Beliau juga salah seorang ilmuwan yang sangat berpengaruh dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Kepiawaian Von Neumann terletak pada bidang teori game yang melahirkan konsep seluler automata, teknologi bom atom, dan komputasi modern yang melahirkan komputer. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya.

Sebenarnya masih banyak lagi peran matematika dalam ilmu komputer yang belum di jelaskan diatas antara lain Statistika,Teori Informasi,Teori Graf,Aljabar Boolean,Matematika Diskret, dan masih banyak lagi
Kesimpulan


Kesimpulan dari itu semua adalah matematika sangat berperan untuk memecahkan masalah dengan menggunakan bantuan komputer serta menggunakan suatu bahasa pemrogaman. . Juga untuk mempermudah kerja atau memudahkan kita dalam membuat program atau biasa di sebut sebagai Problem Solving. Jadi intinya adalah matematika sangat berperan dalam pengembangan komputer dari dulu sampai sekarang dan peran itu sangatlah besar.


"Dikutip dari kompasiana.com http://www.kompasiana.com/nurbaya/peranan-matematika-terhadap-perkembangan-ilmu-komputer_5528ddc1f17e61ce148b45a5 . "
 
Read more ...

Waterfall Model

Rabu, 02 November 2016


Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :
Gambar di atas adalah tahapan umum dari model proses ini. Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Pressman:
  • System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
  • Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
  • Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
  • Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
  • Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
  • Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
Mengapa model ini sangat populer??? Selain karena pengaplikasian menggunakan model ini mudah, kelebihan dari model ini adalah ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal project, maka SE dapat berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan seeksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal project lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap selanjutnya.
Meskipun demikian, karena model ini melakukan pendekatan secara urut / sequential, maka ketika suatu tahap terhambat, tahap selanjutnya tidak dapat dikerjakan dengan baik dan itu menjadi salah satu kekurangan dari model ini. Selain itu, ada beberapa kekurangan pengaplikasian model ini, antara lain adalah sebagai berikut:
  • Ketika problem muncul, maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini tidak muncul. Hal-hal seperti ini yang dapat membuang waktu pengerjaan SE.
  • Karena pendekatannya secara sequential, maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama pengerjaannya.
  • Pada setiap tahap proses tentunya dipekerjakan sesuai spesialisasinya masing-masing. Oleh karena itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini dibutuhkan seseorang yang “multi-skilled”, sehingga minimal dapat membantu pengerjaan untuk tahapan berikutnya.
Menurut saya, tahapan-tahapan model ini sudah cukup baik dalam artian minimal untuk melakukan SE, maka harus ada tahapan-tahapan ini. Tahapan-tahapan ini jugalah yang digunakan oleh model-model yang lain pada umumnya. Ada filosofi yang mengatakan sesuatu yang sukses diciptakan pertama kali, maka akan terus dipakai di dalam pengembangannya. Hal ini juga berlaku pada waterfall model ini. Mungkin dapat dikatakan bahwa inilah standar untuk melakukan SE.
Akan tetapi, yang mungkin menjadi banyak pertimbangan mengenai penggunaan dari model ini adalah metode sequential-nya. Mungkin untuk awal-awal software diciptakan, hal ini tidak menjadi masalah, karena dengan berjalan secara berurutan, maka model ini menjadi mudah dilakukan. Sesuatu yang mudah biasanya hasilnya bagus. Oleh karena itu model ini sangat populer. Akan tetapi, seiring perkembangan software, model ini tentu tidak bisa mengikutinya. Yang menjadi kelemahan adalah pada pengerjaan secara berurutan tadi, seperti yang sudah saya utarakan sebelumnya. Kelemahan-kelemahan yang lain juga sudah saya utarakan di atas, atau bahkan masih ada yang lainnya.
Dari sini, nantinya akan dikembangkan model-model yang lain, bahkan ada tahap evolusioner dari suatu model proses untuk mengatasi kelemahan-kelemahan tadi. Meskipun secara tahapan masih menggunakan standar tahapan waterfall model. Kesimpulannya adalah ketika suatu project skalanya sedang mengarah kecil bisa menggunakan model ini. Akan tetapi kalau sudah project besar, tampaknya kesulitan jika menggunakan model ini.

Sekian semoga bermanfaat.
Read more ...

Mengenal SDLC (System Development Life Cycle)

Rabu, 02 November 2016
 
Apa itu SDLC dan contoh-contohnya. Apa itu SDLC dan contoh-contohnya. System Development Life Cycle (SDLC) adalah pendekatan bertahap untuk melakukan analisa dan membangun rancangan sistem dengan menggunakan siklus yang spesifik terhadap kegiatan pengguna (Kendall & Kendall, 2006). System Development Life Cycle (SDLC) juga merupakan pusat pengembangan sistem informasi yang efisien. SDLC terdiri dari 4 (empat) langkah kunci yaitu, perencanaan dan seleksi, analisis, desain, implementasi dan operasional (Valacich, George, & Hoffer, 2012). Selain itu, System Development Life Cycle (SDLC) adalah sebuah proses memahami bagaimana Sistem Informasi dapat mendukung kebutuhan bisnis, merancang system, membangun sistem, dan memberikannya kepada pengguna (Dennis, Wixom, & Tegarden, 2005).

Berdasarkan pada penjelasan diatas maka SDLC dapat disimpulkan sebagai sebuah siklus untuk membangun sistem dan memberikannya kepada pengguna melalui tahapan perencanaan, analisa, perancangan dan implementasi dengan cara memahami dan menyeleksi keadaan dan proses yang dilakukan pengguna untuk dapat mendukung kebutuhan pengguna. Untuk menggunakan SDLC maka dibutuhkan sumber data awal dari pengguna yang dijadikan acuan dalam perencanaan, analisa, perancangan dan implementasi. Penggunaan acuan ini dimaksudkan agar sistem yang dibangun bisa menjembatani kebutuhan pengguna dari permasalahan yang dihadapinya.
Berikut ini adalah penjelasan proses tahapan SDLC, yaitu :
1.      Perencanaan
Fase perencanaan adalah sebuah proses dasar untuk memahami mengapa sebuah sistem harus dibangun. Pada fase ini diperlukan analisa kelayakan dengan mencari data atau melakukan proses information gathering kepada pengguna.
2.      Analisa
Fase analisa adalah sebuah proses investigasi terhadap sistem yang sedang berjalan dengan tujuan untuk mendapatkan jawaban mengenai pengguna sistem, cara kerja sistem dan waktu penggunaan sistem. Dari proses analisa ini akan didapatkan cara untuk membangun sistem baru.
3.      Rancangan
Fase perancangan merupakan proses penentuan cara kerja sistem dalam hal architechture design, interface design, database dan spesifikasi file, dan program design. Hasil dari proses perancangan ini akan didapatkan spesifikasi system.
4.      Implementasi
Fase implementasi adalah proses pembangunan dan pengujian sistem, instalasi sistem, dan rencana dukungan sistem.

          Dalam pengembangan system menggunakan SDLC ada beberapa cara untuk mengimplementasinya dengan metodologi yaitu waterfall model, prototype model, RAD(Rapid Application Development) model, ASD(Agile Software Development) model. Diantara keempat model tersebut waterfall, dan prototype adalah model yang paling sering digunakan dalam pengembangan system. Berikut penjelasannya :
1.      Waterfall Model
Merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Roger S. Pressman memecah model ini menjadi 6 tahapan, yaitu :
a. Sistem modeling                                                              d.  Coding
b. Analisis kebutuhan software                                           e.  Testing
c. Desain                                                                              f.  Maintenance
Keuntungan menggunakan teknik waterfall:
Proses menjadi teratur
- Jadwal menjadi lebih menentu
Kelemahan menggunakan teknik waterfall:
Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang konsumen bisa memberikan             kebutuhan secara lengkap diawal

2.      Prototype
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997). Beberapa model prototype adalah sebagai berikut :
- Reusable prototype : Prototype yang akan ditransformasikan menjadi produk final.
- Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
- Input/output prototype : Prototype yang terbatas pada antar muka pengguna (user interface).
- Processing prototype : Prototype yang meliputi perawatan file dasar dan proses-proses transaksi
- System prototype : Prototype yang berupa model lengkap dari perangkat lunak.

Proses pada model prototyping adalah sebagai berikut :
Pengumpulan kebutuhan
- Perancangan
- Evaluasi prototype

      Keuntungan menggunakan prototype model, yaitu :
      - Prototyping adalah model aktif, tidak pasif, sehingga end user dapat melihat, merasakan, dan                      mengalaminya.
      - Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini.
      Kekurangan menggunakan prototype model, yaitu :
     - Prototyping tidak menolak kebutuhan dari fase analisis sistem. Prototype hanya dapat memecahkan           masalah yang salah dan memberi kesempatan sebagai sistem pengembangan konvensional.
     - Prototyping dapat mengurangi kreatifitas perancangan.

3.      RAD (Rapid Application Development)
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user. RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat dicapai dengan menerapkan component based construction.

4.      Agile Software Development
Agile merupakan adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun. Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Agile juga dapat diartikan sebagai sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun.
 
Sekian semoga bermanfaat.
Read more ...

Arti Bahasa Pemrograman PHP dan MY sql

Selasa, 18 Oktober 2016
Pengertian PHP & MY SQL
PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain.
Contoh terkenal dari aplikasi PHP adalah forum (phpBB) dan MediaWiki (software di belakang Wikipedia). PHP juga dapat dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh aplikasi lain yang lebih kompleks berupa CMS yang dibangun menggunakan PHP adalah Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain.
Sejarah PHP

Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs Personal). 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.

Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP.

Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter PHP sudah diimplementasikan dalam program C. Dalam rilis ini disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.

Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang PHP: Hypertext Preprocessing.

Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.

Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Versi ini juga memasukkan model pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemrograman ke arah paradigma berorientasi objek.

Kelebihan PHP dari bahasa pemrograman lain
* Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya.
* Web Server yang mendukung PHP dapat ditemukan dimana - mana dari mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah.
* Dalam sisi pengembangan lebih mudah, karena banyaknya milis - milis dan developer yang siap membantu dalam pengembangan.
* Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak.
* PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system.

Pengertian MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Relational Database Management System (RDBMS)

MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.

MySQL memiliki beberapa keistimewaan, antara lain :

1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
2. Open Source.MySQL didistribusikan secara open source, dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
3. ‘Multiuser’. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
4. ‘Performance tuning’. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
5. Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
7. Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
11. Antar Muka. MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.

Kesinambungan antara PHP dan MySQL

Penggunaan PHP dan MySQL dapat menjadikan dan memudahkan untuk pembuatan aplikasi secara gratis dan stabil (dikarenakan banyak komunitas developer PHP dan MySQL yang ber-kontribusi terhadap bugs)
Read more ...

(Virtual Private Network) VPN

Jumat, 14 Oktober 2016
Pengertian (Virtual Private Network) VPN
 
VPN adalah singkatan dari Virtual Private Network, yaitu jaringan pribadi (bukan untuk akses umum) yang menggunakan medium nonpribadi (misalnya internet) untuk menghubungkan antar remote-site secara aman. Perlu penerapan teknologi tertentu agar walaupun menggunakan medium yang umum, tetapi traffic (lalu lintas) antar remote-site tidak dapat disadap dengan mudah, juga tidak memungkinkan pihak lain untuk menyusupkan traffic yang tidak semestinya ke dalam remote-site.
VPN beroperasi pada topologi yang berbeda dan lebih rumit dari jaringan point to point. Fungsi VPN adalah memberikan koneksi yang sangat aman antara jarngan prbadi yang terhubung melalui nternet. HAl ini memungkinkan remote komputer bertindak seolah-olah berada di jaringan LAN.
VPN memiliki popularitas di masa lalu karena tidak hanya menurunkan biaya tetapi juga meningkatkan dan memperluas kemampuan jaringan. Karena fungsi VPN  adalah dapat menghubungkan karyawan dari mana saja di dunia ke jaringan komputer perusahaan dan mereka dapat tetap terkoneksi ke jaringan intranet perusahaan.
Fitur dan fungsi VPN
 
Virtual Private Network adalah sebuah sistem yang memungkinkan komputer jaringan luas secara geografis tanpa ada hambatan fisik. VPN dikategorikan sebagai bentuk jaringan dalam cakupan area luas. VPN mendukung fungsi seperti akses remote klien, akses jaringan LAN satu ke jaringan LAN yang lain, dan juga membuat fungs pembatasan internet.
PN adalah karenan kebutuhan untuk memberikan akses khusus atau membuat akses khusus untuk karyawan yang harus mobil oleh karena VPN adalah jaringan intra global aktif sehingga karyawan dari manapun dapat terhubung ke jaringan internet dan intranet perusahaan.
Cara kerja dan fungsi VPN adalah:
  • VPN mendukung banyak protokol seperti PPTP, L2TP, IPSec dan SOCK. Protokol ini membantu cara kerja VPN untuk memproses otentikasi.
  • VPN klien dapat membuat sambungan dan mengidentifikasi orang-orang yang diberi wewenangan di jaringan.
  • Jaringan VPN juga dienkripsi akan meningkatkan fitur keamanan. hal ini juga berarti bahwa VPN biasanya tidak terlihat pada jaringan yang lebih besar.
  • Teknologi saat ini semakn banyak mendasarkan perkembangan VPN karena mobilitas yang disediakan dan saat ini Virtual Private Network juga membuka jalan untuk koneksi WiFI dan jaringan nirkabel pribadi.
Kelebihan dan kekurangan VPN
Kelebihan :
  • Sebagai solusi biaya efektif untuk organisasi bisnis besar dengan fasilitas jaringan khusus
  • Meningkatkan mobilitas organisasi dengan langsung menghubungkan jaringan rumah atau para pekerja yang mobile di organisasi.
  • Fitur keamanan dapat disesuaikan.
Kekurangan :
  • Dengan penyediaan akses ke karyawan secara global, faktor keamanan adalah resiko tersendiri. Hal ini juga menempatkan informasi sensitif perusahaan dapat diakses secara global. VPN membutuhkan perhatian ekstra untuk penetapan sistem keamanan yang jelas
Apakah bisa internet gratis menggunakan VPN?
 
Jawabanya bisa selama celah yang digunakan belum diketahui operator. Cara melakukannya adalah dengan menggunakan akses port tertentu ke VPN server. Operator biasanya menggunakan port tertentu untuk perhitungan billing dan total data yang terpakai celah inilah yang dapat dimanfaatkan. Misal terdapat port tertentu yang bisa digunakan untuk terhubung ke server VPN maka internet bisa digunakan secara gratis dan bebas qouta. Kenapa bisa begitu???port tersebut tidak digunakan untuk perhitungan billing sehingga kita tidak melewati billing server nah dengan port ini maka kita bisa terhubung ke VPN server melalui jaringan internet.kita konek ke internet tetapi tidak melewati billing server otomatis kita tidak dikenakan charge dan count data tidak dihitung kalaupun dihitung hanya sedikit sekali untuk proses ping ke server. Dengan terhubung ke VPN server maka semua akses akan dilakukan oleh VPN server dan dikirimkan melalui port yang terbuka tadi sehingga kita bisa bebas mengakses intenet. kurang lebih tekniknya seperti itu mungkin ada teknik-teknik lain karena VPN memiliki banyak kelebihan
Read more ...

Cara Membuat Game Sederhana Mengunakan Greenfoot

Rabu, 15 Juni 2016

Gambaran Umum Game

• Game ini memiliki skenario sederhana yaitu 1 aktor Gajah yang lapar harus memakan buah apel tanpa harus mengenai batu.
• Game terdiri dari 1 scene dimana bilamana gajah terkena batu maka skor akan berkurang.

Langkah Pembuatan
Langkah Pembuatannya adalah sebagai berikut :

Letakan semua gambar yang akan digunakan  di folder dengan nama images.
*Semua image berformat .png
Letakan semua file suara di folder sounds.

Buat subclass-subclass...

Selanjutnya Coding di world

import greenfoot.*;  // imports Actor, World, Greenfoot, GreenfootImage

public class GajahWorld extends World
{
    private int GajahWorld=200;
    private int value;
    /**
     * Create the turtle world. Our world has a size
     * of 560x460 cells, where every cell is just 1 pixel.
     */
    public GajahWorld()
    {
        super(720, 600, 1);
        SunnySideUp();
        prepare();
        putingEgg();
        BatoBatosaLangit();
        //Greenfoot.playSound("chicken.mp3");
    }
    public void act()
    {
        if (getObjects(redapple.class).isEmpty()) SunnySideUp();
        if (getObjects(greenapple.class).isEmpty()) putingEgg();
        if (getObjects(Rock.class).isEmpty()) BatoBatosaLangit();
    }
    private void prepare()
    {
        gajah Gajah = new gajah();
        addObject(Gajah, 300, 300);
        Counter2 counter2 = new Counter2();
        addObject(counter2, 57, 69);
        Score score = new Score();
        addObject(score, 64, 44);
        score.setLocation(59, 44);
        Gajah.setLocation(600, 530);
    }
    public void SunnySideUp()
    {  
        if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new redapple(), Greenfoot.getRandomNumber(519),20); 
           
        }
    }
    public void putingEgg()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new greenapple(), Greenfoot.getRandomNumber(519),21);  
        }
    }
    public void  BatoBatosaLangit()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new Rock(), Greenfoot.getRandomNumber(519),21);  
        }
    }
    public void GameOver()
    {
        if (value == GajahWorld)
        {
           //setImage(new GreenfootImage("Level 2 Complete", 18, Color.YELLOW, Color.BLACK));
           Greenfoot.stop();
           Greenfoot.delay(20);
           Greenfoot.setWorld(new GameOver());
           System.out.println("Selamat Anda Menang");
        }
    }
}

Coding Game Over

import greenfoot.*;

public class GameOver extends World
{
    public GameOver()
    {
        super(720, 600, 1);
        Greenfoot.playSound("levelEnd.wav");
        prepare();
    }
     private void prepare()
    {
        Tamat end = new Tamat();
        addObject(end, 395, 237);
        end.setLocation(400, 279);

        Playagain playAgain = new Playagain();
        addObject(playAgain, 405, 329);
        playAgain.setLocation(392, 361);
        end.setLocation(360, 290);
        playAgain.setLocation(392, 361);
    }
}

Coding Turtleworld

import greenfoot.*;  // imports Actor, World, Greenfoot, GreenfootImage

public class TurtleWorld extends World
{
    public TurtleWorld()
    {
        super(720, 600, 1);
        SunnySideUp();
        prepare();
        putingEgg();
        BatoBatosaLangit();
    }
    public void act()
    {
        if (getObjects(redapple.class).isEmpty()) SunnySideUp();
        if (getObjects(greenapple.class).isEmpty()) putingEgg();
        if (getObjects(Rock.class).isEmpty()) BatoBatosaLangit();
    }
    private void prepare()
    {
        gajah Gajah = new gajah();
        addObject(Gajah, 300, 300);
        Counter2 counter2 = new Counter2();
        addObject(counter2, 57, 69);
        Score score = new Score();
        addObject(score, 64, 44);
        score.setLocation(59, 44);
        Gajah.setLocation(600, 530);
    }
    public void SunnySideUp()
    {  
        if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new redapple(), Greenfoot.getRandomNumber(519),20); 
           
        }
    }
    public void putingEgg()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new greenapple(), Greenfoot.getRandomNumber(519),21);  
        }
    }
    public void  BatoBatosaLangit()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new Rock(), Greenfoot.getRandomNumber(519),21);  
        }
    }
}

Koding Win

import greenfoot.*;

public class Win extends World
{
    public Win()
    {
        super(720, 600, 1);
    }
}
 
Read more ...

Fuzzy Logic

Rabu, 15 Juni 2016



Logika fuzzy atau fuzzy logic bermula dari kenyataan bahwa dunia nyata sangat kompleks. Kompleksitas ini muncul dari ketidakpastian dalam bentuk informasi imprecision (ketidakpastian). Mengapa komputer yang dibuat oleh manusia tidak mampu  menangani  persoalan  yang  kompleks  dan  tidak  presisi  ini sedangkan manusia bisa. Jawabanya adalah manusia mempunyai kemampuan untuk menalar (Reasoning)  dengan  baik  yaitu  kemampuan  yang  komputer  tidak mempunyainya.pada suatu sistem jika kompleksitasnya berkurang, maka persamaan matematik dapat digunakan dan ketelitian yang dihasilkan menjadi sangat berguna dalam pemodelan sistem tetapi jika kompleksitasnya bertambah dimana persamaan matematik tidak dapat digunakan , logika fuzzy menjadi salah satu alternatif penyelesaiannya. Logika fuzzy merupakan alternatif cara berpikir yang dapat memodelkan kompleks sistem menggunakan pengetahuan dan pengalaman yang dipunyai logika dimulai sebagai studi tentang bahasa dalam argument dan persuasif, dan hal itu kemungkinan digunakan untuk menilai kebenaran dari rantai reasoning, dalam bentuk matematikanya sebagai contoh adalah sebagai berikut : Dalam dua nilai logika proporsinya bisa benar atau salah, tetapi tidak keduanya. Kebenaran ditandai dengan statement(pernyataan) nilai kebenaran. Dalam fuzzy logic proporsi kemungkinan benar atau salah atau mempunyai setengah nilai  kebenaran, seperti kemungkinan benar.

Ide pemikiran pada sistem fuzzy yaitu nilai kebenaran (dalam fuzzy logic) atau nilai fungsi keanggotaan (Membership function) dalam fuzzy set diindikasikan oleh nilai pada range [0.0,1.0], dengan 0.0 mewakili kesalahan absolut dan 1.0 mewakili kebenaran absolut. Dalam kasus ini berhubungan dengan multivalued logic(logika bernilai banyak). Sebagai contoh , kalimat :”Arthur is old.” Jika umur Arthur 80, kemungkinan akan memberikan statement nilai kebenaran 0.80. Statement dapat diartikan menjadi set terminologi sebagai berikut:”Arthur adalah anggota dari set orang tua .” Suatu logika berdasar pada dua nilai kebenaran true     and   false   kadang-kadang   tidak    cukup  manakala   menguraikan   dan menggambarkan pemikiran manusia.
Logika fuzzy menggunakan keseluruhan interval 0(False) dan 1(True) untuk menguraikan pemikiran manusia . Sebagai hasilnya logika fuzzy diterapkan dalam mengatur sebuah sistem karena sifatnya yang lebih sesuai dengan cara berpikir manusia.

Sejarah Fuzzy Logic
Sistem fuzzy merupakan suatu alternatif untuk pemikiran tradisional dari set keanggotaan dan logika yang berasal dari filosopi yunani dan aplikasi pada intelegensia semu. Logika fuzzy pertama kali diperkenalkan oleh seseorang professor computer science dari University of California di Berkeley yang bernama Lofti A. Zadeh pada tahun 1965 dan berhasil diaplikasikan dalam bidang kontrol oleh E.H.Mamdani. Sejak itu aplikasi dari logika fuzzy ini berkembang pesat terutama dinegara Jepang dengan dihasilkannya ribuan paten mulai dari bermacam-macam produk elektronik sampai aplikasi pada kereta api di kota Sendai. Logika fuzzy pada dasarnya merupakan logika bernilai banyak(Multivalued Logic)yang dapat mendefinisikan nilai diantara keadaan yang biasa dikenal seperti ya atau tidak, hitam atau putih, benar atau salah. logika fuzzy menirukan cara manusia mengambil keputusan dengan kemampuannya bekerja dari data yang samar atau tidak rinci dan menemukan penyesuaian yang tepat.

Teori Set Fuzzy (Fuzzy Set Theory)
Teori set fuzzy atau Fuzzy set theory adalah perpanjangan dari teori himpunan crisp yang konvensional. Fuzzy set theory mengatur konsep dari partial truth (nilainya antara 1(True)dan 0(False)). Dikenalkan oleh Prof.Lotfi A. Zadeh di UC/Berkeley pada tahun 1965 untuk dimaksudkan sebagai memodelkan kesamaran dan ambiguitas dalam sistem yang kompleks.
Ide dari fuzzy set sendiri adalah simpel dan alami. Sebagai contoh, kita mau mendefinisikan sebuah set (Himpunan) dari gray level yang propertinya dark. Dalam teori set yang klasik, kita harus mendeterminasikan sebuah threshold , katakanlah gray levelnya bernilai 100. Semua gray level yang nilainya antara 0 dan 100 adalah elemen dari set ini, yang lain nya tidak termasuk dalam set ini. Tetapi kegelapannya hanya masalah pada derajat. Jadi sebuah fuzzy set bisa memodelkan properti ini dengan lebih baik.Untuk mendefinisikan himpunan ini ,kita juga membutuhkan dua threshold katakanlah gray level 50 dan 150.Semua gray level yang dibawah 50 adalah full member dari himpunannya, gray level yang di atas 150 bukan merupakan member dari himpunannya. Gray level diantara 50 dan 150, mempunyai sebagian membership dalam himpunan.

Read more ...