ALGORITMA
Algoritma adalah suatu cabang khusus ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat mempunyai kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
SEJARAH ALGORITMA
Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan, Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Masalah timbul pada saat akan menuangkan bagaimana proses yang harus dilalui dalam suatu/sebuah sistem (program) bagi komputer sehingga pada saat eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan langkah proses dengan terlebih dahulu membuat gambaran (diagram alur) diatas kertas.
JENIS-JENIS ALGORITMA
Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.
SYARAT – SYARAT ALGORITMA
Menurut Donald E Knuth algoritma harus memenuhi persyaratan ;
Finiteness
Definiteness
Input
Output
Effectiveness
CONTOH ALGORITMA
Memasak mie instant.
Prosesnya sbb: memanaskan air, membuka pembungkus mie instant (tentunya), memasukkan mie ke dalam air, taruh bumbu di piring, angkat mie jika sudah masak, campurkan dengan bumbu yang sudah ada di piring dengan mie, makan.
Mengirim SMS
Prosesnya sbb: Mengambil HP, Pilih Menu => Pesan, Pilih tulis baru, Ketikkan pesan yang ingin dikirimkan, Setelah selesai, pilih lanjutkan untuk memasukan / memilih no tujuan, Klik OK untuk mengirim.
Memasak telur dadar
Prosesnya sbb: Nyalakan api kompor, Tuangkan minyak ke dalam wajan, Pecahkan telur ayam ke dalam mangkok , Tambahkan garam secukupnya, Aduk campuran telur dan garam, Tuang adonan telur ke dalam wajan, Masak telur hingga matang, telur dadar siap untuk dihidangkan.
PEMROGRAMAN
Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.
Apakah memprogram perangkat lunak lebih merupakan seni, ilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (run time), atau memori.
Sepanjang paruh kedua abad kedua puluh, pemrograman adalah karier yang menarik di sebagian besar negara maju. Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada outsourcing (impor perangkat lunak dan jasa dari negara lain, biasanya dengan upah rendah), membuat keputusan karir pemrograman di negara maju lebih rumit, sementara meningkatkan peluang ekonomi di daerah kurang berkembang. Tidak jelas seberapa jauh kecenderungan ini akan berlanjut dan seberapa dalam dampak akan programmer upah dan kesempatan.
Debugging
Debugging adalah tugas yang sangat penting dalam proses pengembangan perangkat lunak, karena program yang salah dapat memiliki konsekuensi yang signifikan bagi penggunanya. Beberapa bahasa yang lebih rentan terhadap beberapa jenis kesalahan karena mereka tidak memerlukan spesifikasi kompiler untuk melakukan pengecekan sebanyak bahasa lainnya. Penggunaan alat analisis statis dapat membantu mendeteksi beberapa kemungkinan masalah.
Debug sering dilakukan dengan IDE seperti Visual Studio, NetBeans, dan Eclipse. Standalone debugger seperti gdb juga digunakan, dan ini kurang sering menyediakan lingkungan visual, biasanya menggunakan baris perintah.
Bahasa pemrograman
Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda (disebut paradigma pemrograman). Pilihan bahasa yang digunakan adalah tunduk pada banyak pertimbangan, seperti kebijakan perusahaan, kesesuaian untuk tugas, ketersediaan pihak ketiga paket, atau keinginan individunya. Idealnya, bahasa pemrograman yang paling cocok untuk tugas yang dihadapi akan dipilih. Trade-off dari ideal ini melibatkan cukup menemukan programmer yang tahu bahasa untuk membangun sebuah tim, ketersediaan compiler untuk bahasa, dan efisiensi dengan program-program yang ditulis dalam bahasa tertentu mengeksekusi.
Tingkatan Bahasa Pemrograman
Bahasa Tingkat Tinggi
Bahasa pemrograman masuk tingkat ini karena bahasa tersebut mendekati bahasa manusia. Contohnya bahasa Basic, Visual Basic, Pascal, Java dan lainnya.
Bahasa Tingkat Menengah
Disebut tingkat menengah karena bisa masuk ke dalam bahasa tingkat tinggi maupun rendah. Contohnya bahasa C.
Bahasa Tingkat Rendah
Bahasa pemrograman masuk tingkat ini karena bahasanya masih jauh dari bahasa manusia. Contohnya bahasa Assembly
Proses Pembuatan Program
Proses pembuatan program yaitu kita menulis kode sumber pada teks editor misalnya notepad kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh CPU. Proses pengubahan kode sumber (source code) menjadi bahasa mesin (machine language) ini terdiri dari dua macam yaitu kompilasi dan interpretasi.
Kompilasi (Compilation)
Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan. Program yang melakukan tugas ini disebut Compiler. Program hasil kompilasi akan berbentuk executable. Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program tersebut. Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly dan masih banyak lagi.
Interpretasi (Interpretation)
Bahasa yang menggunakan teknik interpretasi akan membaca kode sumber perbaris dan dieksekusi perbaris. Jika ditemukan kesalahan dalam penulisan program maka di baris kesalahan itulah program akan dihentikan. Program yang melakukan tugas ini disebut Interpreter. Pada teknik interpretasi tidak ada akan dihasilkan program standalone, artinya untuk menjalankan program kita harus mempunyai kode sumbernya sekaligus interpreter program tersebut. Bahasa yang menggunakan teknik interpretasi misalnya bahasa Perl, Python, Ruby dan masih banyak lagi.
Kompilasi Sekaligus Interpretasi
Ada juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi sekaligus interpretasi. Misalnya bahasa java. Dalam pembuatan program java kode sumber diubah menjadi bytecode. Meskipun nampak seperti bahasa mesin namun ini bukanlah bahasa mesin dan tidak executable. Untuk menjalankan bytecode tersebut kita membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai interpreter sehingga menghasilkan program dari bytecode tersebut.
LOGIKA
Logika adalah ilmu pengetahuan dan keterampilan berpikir lurus. Tt, (1999 :71)
Logika adalah suatau pertimbangan akal atau pikiran yang diatur lewat kata dan dinyatakan dalam bahasa. Jan Hendrik Rapar, (1996 : 5)
Logika adalah ilmu dan kecakapan menalar, berpikir dengan tepat.W. Poespoprodjo, Ek. T. Gilarso. (2006: 13)
Logika adalah suatu metode atau teknik yang diciptakan untuk meneliti ketepatan nenalar. Soekadijo, (1983-1994: 3)
Aristoteles : logika adalah ajaran tentang berpikir yang secara ilmiah membicarakan bentuk pikiran itu sendiri dan hukum-hukum yang menguasai pikiran.(Harun, 1980) Surajiyo, Sugeng Astanto, Sri Andiani(…..:10)
William Alston : logika adalah studi tentang penyimpulan, secara lebih ceramat usaha untuk mennetapkan ukuran-ukuran guna memisahkan penyimpulan yang sah dan tidak sah.Surajiyo, Sugeng Astanto, Sri Andiani(…..: 9)
Dasar- Dasar Logika
Konsep logis adalah inti dari logika. Konsep itu menyatakan bahwa kepastian (validitas) sebuah argumen ditentukan oleh bentuk logisnya, bukan oleh isinya. Dalam hal ini logika menjadi alat untuk menganalisis argumen, yakni hubungan antara kesimpulan dan bukti atau bukti-bukti yang diberikan (premis). Logika silogistik tradisional Aristoteles dan logika simbolik modern adalah contoh-contoh dari logika formal.
Dasar penalaran dalam logika ada dua, yakni deduktif dan induktif.
Penalaran deduktif
Penalaran deduktif, kadang disebut logika deduktif adalah penalaran yang membangun atau mengevaluasi argumen deduktif. Argumen dinyatakan deduktif jika kebenaran dari kesimpulan ditarik atau merupakan konsekuensi logis dari premis-premisnya. Argumen deduktif dinyatakan valid atau tidak valid, bukan benar atau salah. Sebuah argumen deduktif dinyatakan valid jika dan hanya jika kesimpulannya merupakan konsekuensi logis dari premis-premisnya.
Contoh argumen deduktif:
Setiap mamalia punya sebuah jantung
Semua kuda adalah mamalia
Setiap kuda punya sebuah jantung
Penalaran induktif
Penalaran induktif, kadang disebut logika induktif—adalah penalaran yang berangkat dari serangkaian fakta-fakta khusus untuk mencapai kesimpulan umum.
Contoh argumen induktif:
Kuda Sumba punya sebuah jantung
Kuda Australia punya sebuah jantung
Kuda Amerika punya sebuah jantung
Kuda Inggris punya sebuah jantung
∴ Setiap kuda punya sebuah jantung
Tabel di bawah ini menunjukkan beberapa ciri utama yang membedakan penalaran induktif dan deduktif.
Deduktif Induktif
Jika semua premis benar maka kesimpulan pasti benar Jika premis benar, kesimpulan mungkin benar, tapi tak pasti benar.
Semua informasi atau fakta pada kesimpulan sudah ada, sekurangnya secara implisit, dalam premis. Kesimpulan memuat informasi yang tak ada, bahkan secara implisit, dalam premis.
Logika sebagai matematika murni
Logika masuk ke dalam kategori matematika murni karena matematika adalah logika yang tersistematisasi. Matematika adalah pendekatan logika kepada metode ilmu ukur yang menggunakan tanda-tanda atau simbol-simbol matematik (logika simbolik). Logika tersistematisasi dikenalkan oleh dua orang dokter medis, Galenus (130-201 M) dan Sextus Empiricus (sekitar 200 M) yang mengembangkan logika dengan menerapkan metode geometri.
Puncak logika simbolik terjadi pada tahun 1910-1913 dengan terbitnya Principia Mathematica tiga jilid yang merupakan karya bersama Alfred North Whitehead (1861-1914) dan Bertrand Arthur William Russel (1872-1970).
Kegunaan logika
Membantu setiap orang yang mempelajari logika untuk berpikir secara rasional, kritis, lurus, tetap, tertib, metodis dan koheren.
Meningkatkan kemampuan berpikir secara abstrak, cermat, dan objektif.
Menambah kecerdasan dan meningkatkan kemampuan berpikir secara tajam dan mandiri.
Memaksa dan mendorong orang untuk berpikir sendiri dengan menggunakan asas-asas sistematis
Meningkatkan cinta akan kebenaran dan menghindari kesalahan-kesalahan berpkir, kekeliruan, serta kesesatan.
Mampu melakukan analisis terhadap suatu kejadian.
Terhindar dari klenik , gugon-tuhon ( bahasa Jawa )
Apabila sudah mampu berpikir rasional,kritis ,lurus,metodis dan analitis sebagaimana tersebut pada butir pertama maka akan meningkatkan citra diri seseorang.
Macam-macam logika
Logika alamiah
Logika alamiah adalah kinerja akal budi manusia yang berpikir secara tepat dan lurus sebelum dipengaruhi oleh keinginan-keinginan dan kecenderungan-kecenderungan yang subyektif. Kemampuan logika alamiah manusia ada sejak lahir. Logika ini bisa dipelajari dengan memberi contoh penerapan dalam kehidupan nyata.
Logika ilmiah
Logika ilmiah memperhalus, mempertajam pikiran, serta akal.
Logika ilmiah menjadi ilmu khusus yang merumuskan azas-azas yang harus ditepati dalam setiap pemikiran. Berkat pertolongan logika ilmiah inilah akal budi dapat bekerja dengan lebih tepat, lebih teliti, lebih mudah, dan lebih aman. Logika ilmiah dimaksudkan untuk menghindarkan kesesatan atau, paling tidak, dikurangi.
Tidak ada komentar:
Posting Komentar