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.
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. S
ecara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat 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
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.
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.
Ciri penting algoritma
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
• Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
• Algoritma memiliki nol atau lebih masukkan.
• Algoritma memiliki nol atau lebih keluaran.
• algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
• Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
• Algoritma memiliki nol atau lebih masukkan.
• Algoritma memiliki nol atau lebih keluaran.
• algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
Sejarah istilah "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. 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.
Pada tahun 1950, kata algoritma perama kali digunakan pada “algoritma Euclidean” (Euclid’s algorithm). Euclid, seorang matematikawan Yunani (lahir pada tahun 350 M), dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, m dan n (tapi Euclid tidak menyebut metodenya itu sebagai algoritma, baru abad modernlah ornag-orang menybut metodenya itu sebagai “algoritma Euclidean”), Pembagi terbesar dari dua buah bilangan bulat tak-negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.
Misalnya, m=80 dan n=12.
Semua factor pembagi adalah
1, 2, 4, 5, 8, 10, 16, 20, 40, 80
Dan semua factor pembagi 12 adalah
1, 2, 3, 4, 6, 12
Maka gcd(80,12)=4
Langkah-langkah mencari gcd(80,12) dengan algoritma Euclidean sebagai berikut :
80 dibagi 12 hasilnya = 6, sisa = 8 (atau: 80 = 6.12 +
12 dibagi 8 hasilnya = 1, sisa = 4 (atau: 12 = 1.8 + 4)
8 dibagi 4 hasilnya = 2, sisa = 0 (atau: 8 = 4.2 + 0)
Karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu 4, menjadi gcd(80,12). Jadi, gcd(80,12) = gcd(12,8) = gcd(4,0) = 4.
Contoh-contoh algoritma yang sudah dijelaskan di atas memberi dua pesan penting. Pertama, sebuah algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti,algoritma membri hasil yang benar. Menurut Donald E. Knuth dalam bukunya yang berjudul The art of Computer Programming, sebuah algoritma harus mempunyai lima ciri penting:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah trbatas.
2. Setiap langkah harus didefinisikan dengan tepat dan tidak brarti-dua (ambiguous). Misalnya, pernyataan “bagilah p dengan sejumlah beberapa bilangan bulat positif”,pernyataan ini dapat bermakna ganda. Berapakah yang dimaksud dengan “beberapa”? Algoritma menjadi jelas jika langkah tersebut ditulis “bagilah p dengan 10 buah bilangan bulat positif”.
3. Algoritma memiliki nol atau lebih masukan (input). Maukan ialah besaran yang diberikan kepada algoritma untuk diproses. Algoritma Euclidean mempunyai dua buah masukan, m dan n.
4. Algortima mempunyai nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan.
5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana shingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
GAMBAR SEDERHANA ALGORITMA PEMOGRAMAN

PEMOGRAMAN
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram (programmer). Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.
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.
Pemrograman Kompetitif
Pemrograman adalah bahan yang banyak digunakan di berbagai kompetisi komputer di Indonesia maupun dunia. Di tingkat SMA, contohnya, pemrograman dipertandingkan dalam Olimpiade Sains Nasional setiap tahunnya. Ketigapuluh peraih medali di Olimpiade Sains Nasional ini kemudian menjadi Tim Olimpiade Komputer Indonesia, dan menempuh Pelatihan Nasional yang menyeleksi empat orang wakil untuk mengikuti Olimpiade Sains Internasional bidang Informasi (International Olympiad in Informatics) yang diadakan setiap tahunnya.
Sejarah pemrograman
Mekanisme Antikythera dari Yunani kuno adalah kalkulator menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan operasi, [3] yang dilacak siklus Metonik masih digunakan di bulan-ke-surya kalender, dan yang konsisten untuk menghitung tanggal olimpiade [4]. Al-Jazari dibangun Automata diprogram pada tahun 1206. Salah satu sistem yang digunakan dalam perangkat ini adalah penggunaan pasak dan Cams ditempatkan ke drum kayu di lokasi tertentu, yang secara berurutan akan memicu tuas yang pada gilirannya dioperasikan instrumen perkusi. Output dari perangkat ini adalah drumer kecil bermain berbagai ritme dan pola drum. [5] [6] The Jacquard Loom, Joseph Marie Jacquard yang dikembangkan pada tahun 1801, menggunakan serangkaian karton kartu dengan menekan lubang di dalamnya. Pola lubang pola yang mewakili alat tenun harus mengikuti menenun kain. Alat tenun bisa menghasilkan tenun yang sama sekali berbeda dengan menggunakan kumpulan kartu yang berbeda. Charles Babbage mengadopsi penggunaan kartu menekan sekitar tahun 1830 untuk mengendalikan Analytical Engine. Program komputer pertama ditulis untuk Analytical Engine oleh matematikawan Ada Lovelace untuk menghitung urutan Bilangan Bernoulli. [7] Sintesis perhitungan numerik, operasi dan output telah ditentukan, bersama dengan cara untuk mengatur dan masukan instruksi dengan cara yang relatif mudah bagi manusia untuk hamil dan menghasilkan, menyebabkan perkembangan modern pemrograman komputer. Pengembangan pemrograman komputer dipercepat melalui Revolusi Industri. Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada media yang kemudian dapat dibaca oleh mesin. Sebelum menggunakan mesin dibaca dari media, di atas, telah untuk kontrol, bukan data. "Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan ..." [8] Untuk memproses kartu menekan ini, pertama kali dikenal sebagai "kartu Hollerith" dia menciptakan tabulator, dan mesin keypunch. Ketiga penemuannya dasar dari industri pengolahan informasi modern. Pada tahun 1896 ia mendirikan Tabulating Machine Company (yang kemudian menjadi inti dari IBM). Penambahan panel kontrol (plugboard) ke 1906 Tipe I Tabulator memungkinkannya untuk melakukan pekerjaan yang berbeda tanpa harus secara fisik dibangun kembali. Pada akhir 1940-an, ada berbagai mesin panel kontrol diprogram, disebut catatan unit peralatan, untuk melakukan pengolahan data tugas.
Data dan instruksi dapat disimpan pada kartu punched eksternal, yang disimpan dalam rangka dan disusun dalam deck. Penemuan arsitektur von Neumann memungkinkan program komputer untuk disimpan dalam memori komputer. Program awal harus susah payah dibuat dengan menggunakan instruksi (operasi dasar) dari mesin tertentu, sering kali dalam notasi biner. Setiap model komputer mungkin akan menggunakan instruksi yang berbeda (bahasa mesin) untuk melakukan tugas yang sama. Kemudian, perakitan bahasa tersebut dikembangkan yang memungkinkan programmer menentukan setiap instruksi dalam format teks, singkatan memasukkan kode untuk setiap operasi, bukan menetapkan sebuah nomor dan alamat dalam bentuk simbolik (misalnya, ADD X, JUMLAH). Memasuki sebuah program dalam bahasa assembly biasanya lebih nyaman, lebih cepat, dan kurang rentan terhadap kesalahan manusia daripada menggunakan bahasa mesin, tetapi karena bahasa assembly adalah sedikit lebih dari satu notasi yang berbeda untuk bahasa mesin, setiap dua mesin dengan instruksi yang berbeda set juga memiliki perakitan yang berbeda bahasa. Pada tahun 1954, FORTRAN diciptakan, melainkan tingkat pertama bahasa pemrograman tinggi untuk memiliki implementasi fungsional, dibandingkan dengan hanya desain di atas kertas [9] [10] (Sebuah bahasa tingkat tinggi adalah, dalam istilah yang sangat umum,. bahasa pemrograman yang memungkinkan programmer untuk menulis program dalam istilah yang lebih abstrak dari instruksi bahasa assembly, yaitu pada tingkat abstraksi "lebih tinggi" daripada bahasa assembly.) Ini memungkinkan programmer untuk menentukan perhitungan dengan memasukkan formula secara langsung (misalnya Y = X * 2 + 5 * X + 9). Program teks, atau sumber, diubah menjadi instruksi mesin menggunakan program khusus yang disebut kompilator, yang diterjemahkan program FORTRAN ke dalam bahasa mesin. Bahkan, nama FORTRAN adalah singkatan dari "Formula Translation". Banyak bahasa lainnya dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program itu sebagian besar masih masuk menggunakan kartu punched atau pita kertas. (Lihat pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Teks editor tersebut dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh lebih mudah dibandingkan dengan kartu berlubang. (Biasanya, kesalahan dalam meninju kartu berarti bahwa kartu harus dibuang dan yang baru menekan untuk menggantikannya.) Ketika waktu telah berkembang, komputer telah membuat lompatan raksasa di bidang kekuatan prosesor. Ini telah membawa bahasa pemrograman baru yang lebih disarikan dari hardware. Meskipun bahasa tingkat tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih praktis daripada di masa lalu. Bahasa ini semakin disarikan biasanya lebih mudah untuk belajar dan memungkinkan programmer untuk mengembangkan aplikasi jauh lebih efisien dan dengan kode sumber kurang. Namun, bahasa tingkat tinggi masih praktis untuk beberapa program, seperti yang di mana tingkat rendah kontrol perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum adalah penting.
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.
Kata lain
Pemrograman adalah mengubah suatu masalah yang dapat dimengerti oleh komputer dan dapat dipecahkan oleh komputer.
SYARAT DAN LANGKAH MEMPELAJARI PEMOGRAMAN
Sebelum seseorang terjun ke dalam bidang pemrograman, ada beberapa syarat yang harus di penuhi, biar belajar pemrograman ini tidak menjemukan, diantaranya adalah :
- Hobi atau senang dengan utak-atik, hal ini mutlak di perlukan, karena kesenanganlah yang membuat programming menjadi menarik dan tidak menakutkan, serta tidak menjemukan.
- High curiousity, yakni rasa penasaran yang tinggi. Yakni bagaimana memecahkan sebuah masalah pemrograman sampai ketemu dan selesai masalahnya, bahkan mungkin tidak bisa tidur, bagaimana menyelesaikan masalah itu.
- Mau belajar. Jadi seorang programmer jangan mudah puas, harus terus mengasah skill dan kemampuan biar bisa bersaing dengan yang lainnya.
- Bisa bahasa inggris minimal pasif, mengingat semua manual pemrograman saat ini kebanyakan masih berbahasa inggris. Tapi dengan adanya Google Translator, mungkin masalah ini sebentar lagi teratasi.
Keempat syarat di atas mungkin bukanlah syarat mutlak, tetapi minimal harus dimiliki oleh seorang programmer.
Adapun langkah-langkah belajar bahasa pemrograman adalah sebagai berikut :
- Menentukan bahasa pemrograman yang cocok.
Bahasa pemrograman yang mudah di pelajari belum tentu cocok dengan karakter kita, karena bahasa pemrograman yang bagus itu tidak hanya mudah di pelajari, tetapi menyediakan fitur-fitur yang cukup lengkap untuk membuat suatu aplikasi yang kita inginkan.
Bila orientasi kita adalah bidang pekerjaan yang nanti kita tekuni, maka carilah bahasa pemrograman yang paling banyak di pakai di dunia, seperti Java, PHP, C++, ASP dan lain-lain. Bahasa pemrograman tersebut mendukung konsep OOP baik secara parsial seperti PHP dan ASP, maupun full OOP seperti Java. - Menentukan tools development yang cocok. Karena kita masih terkendala dengan masalah lisensi yang tidak murah, maka carilah peralatan development yang open source atau gratis, seperti PHPEdit, PSPad Edit, EditPlus dan lain-lain. Untuk Java, ada tool gratis yang bernama Netbeans.
- Belajar mengetik sepuluh jari. Ini mungkin kurang di sukai oleh sebagian orang, tapi sangat penting bagi seorang programmer, bagaimana dia berbuat dengan jari-jarinya, maka kemampuan menguasai papan keyboard menjadi syarat mutlak. Ada banyak software typing tutor gratis yang bisa di unduh di internet diantaranya adalah TypeFaster,RapidTyping Tutor, FastType dan lainnya. Bila Anda sudah memiliki kecepatan ngetik 200cpm (karakter per menit) itu sudah cukup, berarti anda siap untuk menjadi programmer handal.
- Mencari buku yang tepat, mengapa saya katakan “mencari buku yang tepat?” Karena tidak semua buku petunjuk pemrograman bagus untuk di beli dan di pelajari. Kebanyakan adalah berisi tutorial semata, kurang bobot, karena pemrograman sesungguhnya bukan hanyak memanfaatkan tool, tapi lebih dari itu, konsep pemrograman yang benar harus di kuasai.
- Mencari mentor yang tepat. Mengapa mencari mentor. Seorang mentor atau instruktur tidak melulu kita dapatkan ketika kita mendaftar ke lembaga kursus tertentu. Mentor lebih dari sekedar guru, karena dia bisa kita tanya kapan saja bila kita menemui kesulitan. Sekali lagi, kita tidak perlu kursus untuk mendapatkan mentor ini, tetapi bila anda kemudian ikut kursus, itu lebih baik lagi. Mentor bisa berasal pula dari kalangan profesional yang aktif di millist-milist pemrograman. maka jangan malas untuk ikutan milist, biar pengetahuan anda bertambah.
- Mencari waktu yang tepat. Membuat program adalah bekerja dengan otak kita, maka otak kita butuh ketenangan saat bekerja. Dalam kondisi emosi, otak tidak akan bekerja dengan baik, maka menentukan waktu yang tepat untuk belajar pemrograman juga di perlukan.
- Carilah proyek kecil. Untuk mengasah kemampuan anda dalam membuat program, diperlukan latihan yang intens. Mencari proyek kecil-kecilan, seperti menyelesaikan tugas teman kuliah dan sebagainya bisa menjadi solusi tepat dan sekaligus bisa mendatangkan uang.
Bila anda menjalankan ke tujuh langkah belajar pemrograman di atas, saya yakin kurang dari setahun anda akan menjadi seorang programmer yang handal, apalagi bila anda sering mendapatkan proyek-proyek aplikasi, dari rekan maupun dari orang lain yang membutuhkan jasa pemrograman atau pengolahan informasi.
Persyaratan kualitas
Apapun pendekatan pengembangan perangkat lunak mungkin, program akhir harus memenuhi beberapa sifat mendasar. Properti berikut adalah di antara yang paling relevan:
Efisiensi / kinerja: jumlah sumber daya sistem program yang mengkonsumsi waktu proses, ruang memori, perangkat bawahseperti disk, bandwidth jaringan dan bahkan sampai batas tertentu interaksi dari pemakai): semakin sedikit, semakin baik. Ini juga termasuk pembuangan benar beberapa sumber, seperti membersihkan file-file sementara dan tidak adanya kebocoran memori.
Reliabilitas: seberapa sering hasil dari sebuah program sudah benar. Hal ini tergantung pada kebenaran konseptual algoritma, dan pemrograman minimisasi kesalahan, seperti kesalahan dalam manajemen sumber daya (misalnya, buffer overflows dan ras kondisi) dan kesalahan logika (seperti pembagian dengan nol).
Kekokohan: seberapa baik program masalah mengantisipasi bukan karena kesalahan programmer. Ini termasuk situasi seperti salah, tidak pantas atau merusak data, tidak tersedianya sumber daya yang dibutuhkan seperti memori, sistem operasi layanan dan koneksi jaringan, dan kesalahan pengguna.
Kegunaan: yang ergonomi sebuah program: kemudahan dengan mana seseorang dapat menggunakan program untuk tujuan, atau dalam beberapa kasus bahkan tujuan tak terduga. Isu-isu tersebut dapat membuat atau menghancurkan kesuksesan bahkan tanpa masalah lain. Hal ini melibatkan berbagai tekstual, grafis dan kadang-kadang elemen-elemen perangkat keras yang meningkatkan kejelasan, intuitif, kekompakan dan kelengkapan program antarmuka pengguna.
Portabilitas: kisaran perangkat keras komputer dan platform sistem operasi yang kode sumber dari program dapat dikompilasi / ditafsirkan dan lari. Hal ini tergantung pada perbedaan-perbedaan dalam fasilitas pemrograman yang disediakan oleh platform yang berbeda, termasuk hardware dan sistem operasi sumber daya, perilaku yang diharapkan dari hardware dan sistem operasi, dan ketersediaan platform compiler tertentu (dan kadang-kadang perpustakaan) untuk bahasa dari source code.
Kemampu-rawatan: kemudahan dengan sebuah program yang dapat dimodifikasi oleh pengembang sekarang atau pada masa mendatang dalam rangka untuk membuat perbaikan atau penyesuaian, memperbaiki bug dan lubang keamanan, atau disesuaikan dengan lingkungan baru. Praktek yang baik selama pengembangan awal membuat perbedaan dalam hal ini. Kualitas ini mungkin tidak secara langsung jelas bagi pengguna akhir tetapi dapat secara signifikan memengaruhi nasib sebuah program jangka panjang.
==Kompleksitas algoritma== [sunting]
Bidang akademik dan praktik teknik pemrograman komputer yang baik terutama berkaitan dengan menemukan dan menerapkan algoritma yang paling efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritma diklasifikasikan menjadi perintah dengan menggunakan apa yang disebut notasi Big O, O (n), yang mengungkapkan penggunaan sumber daya, seperti waktu eksekusi atau pemakaian memori, dalam hal ukuran sebuah input. Ahli programmer yang akrab dengan berbagai mapan algoritma dan kompleksitas masing-masing dan menggunakan pengetahuan ini untuk memilih algoritma yang paling cocok dengan keadaan.
[sunting]Metodologi
Langkah pertama dalam sebagian besar proyek-proyek pengembangan perangkat lunak formal adalah analisis persyaratan, diikuti dengan pengujian untuk menentukan model nilai, pelaksanaan, dan kegagalan penghapusan (debug). Terdapat banyak pendekatan yang berbeda untuk masing-masing tugas. Salah satu pendekatan yang populer untuk analisis kebutuhan adalah Kasus Gunakan analisis.
Teknik model populer meliputi Object-Oriented Analysis and Design (OOAD) dan Model-Driven Architecture (MDA). The Unified Modeling Language (UML) adalah sebuah notasi yang digunakan untuk kedua OOAD dan MDA.
Teknik yang sama digunakan untuk desain database adalah Entity-Relationship Modeling (ER Modeling).
Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural), fungsional bahasa, dan logika bahasa.
[sunting]Mengukur pemakaian bahasa
Sangat sulit untuk menentukan apa yang paling populer bahasa pemrograman modern. Beberapa bahasa yang sangat populer untuk jenis aplikasi tertentu (misalnya, COBOL masih kuat di pusat data perusahaan, sering pada mainframe besar, FORTRAN dalam aplikasi teknik, bahasa scripting dalam pengembangan web, dan C dalam aplikasi embedded), sementara beberapa bahasa teratur digunakan untuk menulis berbagai macam aplikasi.
Metode untuk mengukur popularitas bahasa pemrograman meliputi: menghitung jumlah iklan lowongan pekerjaan yang menyebutkan bahasa [10], jumlah buku-buku pengajaran bahasa yang dijual (overestimates ini pentingnya bahasa baru), dan perkiraan jumlah baris yang ada kode yang ditulis dalam bahasa (meremehkan ini jumlah pengguna bahasa bisnis seperti COBOL).
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.
Beberapa bahasa pemrograman adalah:
Assembly
Ada
Basic
C atau C++
C#
Cobol
Java
Fortran
Clipper
Pascal
Visual Basic
PASCAL
Pascal adalah bahasa tingkat tinggi (high level language) yang orientasinya pada segala tujuan, dirancang oleh Profesor Niklaus Wirth dari Technical University of Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan filosofer terkenal abad 17 dari Perancis.
Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan membantu mengajar program komputer secara sistematis, khususnya untuk memperkenalkan pemrograman terstruktur.
Dalam waktu singkat, Pascal telah menjadi bahasa yang populer di kalangan pelajar universitas dan merupakan bahasa yang diajarkan di beberapa perguruan tinggi. Beberapa profesional komputer juga mulai beralih ke bahasa Pascal. Kenyataannya, Pascal merupakan bahasa yang paling cepat populer dibandingkan dengan bahasa-bahasa komputer tingkat tinggi yang lainnya.
Standar Pascal adalah bahasa Pascal yang didefinisikan oleh K.Jensen dan Niklaus Wirth. Penerapan nyata dari standar Pascal banyak yang berbeda dengan seperti apa yang telah didefinisikan oleh K. Jensen dan Niklaus Wirth. Standar Pascal di Eropa didefinisiakn oelh ISO (International Standards Organization) dan di Amerika oleh kerjasama antara ANSI (American National Standar Institute) dengan IEEE (Intitute of Electrical and Electronic Engineer).
Beberapa versi dari Pascal yang telah beredar di pasaran, di antaranya UCSD pascal (University of California at San Diego Pascal), MS-Pascal (Microsoft Pascal), Apple Pascal, Turbo Pascal dan lain sebagainya. Sampai saat ini untuk komputer-komputer mikro dan personal, Turbo Pascal merupakan versi bahasa Pascal yang paling populer dan banyak digunakan. Kompiler Turbo Pascal banyak digemari, karena terutama bersifat interaktif, seperti interpreter saja layaknya. Selain itu Turbo Pascal mengikuti definisi dari standar Pascal seperti yang didefinisikan oleh K. Jensen dan Niklaus Wirth di Pascal User Manual dan Report. Turbo PASCAL adalah copyright dari Borland Inc. dan dapat digunakan pada sistem operasi PC-DOS, MS-DOS, CPM-86 dan CP/M-80.
Turbo Pascal
Turbo Pascal adalah sebuah sistem pengembangan perangkat lunak yang terdiri atas kompiler dan lingkungan pengembangan terintegrasi (dalam bahasa inggris: Integrated Development Environment - IDE) atas bahasa pemrograman pascal untuk sistem operasi CP/M, CP/M-86, danMS-DOS, yang dikembangkan oleh Borland pada masa kepemimpinan Philippe Kahn. Nama Borland Pascal umumnya digunakan untuk paket perangkat lunak tingkat lanjut (dengan kepustakaan yang lebih banyak dan pustaka kode sumber standar) sementara versi yang lebih murah dan paling luas digunakan dinamakan sebagai Turbo Pascal. Nama Borland Pascal juga digunakan sebagai dialek spesifik Pascal buatan Borland.
Borland telah menembangkan tiga versi lama dari Turbo Pascal secara gratis disebabkan karena sejarahnya yang panjang khusus untuk versi 1.0, 3.02, dan 5.5 yang berjalan pada sistem operasi MS-DOS.
Sejarah
Turbo Pascal pada awalnya adalah kompiler Blue Label Pascal yang dibuat untuk sistem operasi komputer mikro berbasis kaset, NasSys, milik Nascom tahun 1981 oleh Anders Hejlsberg. Kompiler tersebut ditulis ulang untuk CP/M dan dinamai Compas Pascal, dan kemudian dinamai Turbo Pascal untuk sistem operasi MS-DOS dan CP/M. Versi Turbo Pascal untuk komputer Apple Macintosh sebenarnya pernah ditembangkan tahun 1986, namun pengembangannya dihentikan sekitar tahun 1992. Versi-versi lain pernah tersedia pula untuk mesin-mesin CP/M seperti DEC Rainbow dalam beberapa penembangan.
[sunting]Versi Dos
Kompiler Turbo Pascal didasari pada kompiler Bule Laber Pascal secara resmi dihasilkan untuk NasSys cassette-based operating system dari Nascom mikrokomputer pada 1981 oleh Anders Hejlsberg. Borland melisensikan inti kompiler "PolyPascal" milik Hejlsberg (Poly Data adalah nama dari perusahaan Hejlsberg di Denmark), dan menambahkan tampilan muka dan editor. Anders Hejlsberg bergabung dengan perusahaan sebagai karyawan dan arsitek untuk seluruh versi dari kompiler Turbo Pascal dan satu dari tiga versi dari Borland Delphi.[1] Kompiler pertama sekali dirilis sebagai Compas Pascal untuk CP/M, dan kemudian dirilis pada 20 November 1983 sebagai Turbo Pascal untuk CP/M, CP/M-86 {contoh komputer Apple II yang dipasangkan denganZ-80 SoftCard) dan mesin DOS. Pada debut pertama a di pasar Amerika, Turbo Pascal dijual 49.99 USD. Kompiler Pascal yang terintegerasikan memiliki kualitas yang sangat bagus dibandingkan dengan produksi Pascal yang lain pada saat itu dan juga sangat diterima dikalangan umum.
Nama Turbo diambil karena berhubungan dengan kecepatan kompuladi dari produksi exekute. Siklus edit/compile/run lebih cepat dibandingkan implementasi dari Pascal yang lain karena semuanya berhubungan dengan membangun program yang disimpan di RAM, dan karena ini merupakan kompiler sekali yang ditulis pada bahasa Assembly. Kompilasi terjadi dengan sangat cepat dibandingkan dengan bahasa yang lain (bahkan kompiler Borland untuk bahasa C), dan waktu programmer juga menjadi hemat sejak program dapat dikompile dan dijalankan dari IDE. Kecepatan file execute COM adalah terobosan untuk developer yang hanya memiliki satu pengalaman dalam mikrokomputer program seperti BASIC.
Bill Gates melihat kesuksesan dari Turbo Pascal pada kehidupan pribadi dan tidak dapat mengerti kenapa produk Microsoft sangat lambat. Dia melampiaskan kemarahannya pada Greg Whitten[direktur programming di Microsoft Languages] dan berteriak padanya selama satu jam. Dia tidak dapat mengerti kenapa Kahn dapat mengalahkan kompetitor kuat seperti Microsoft.[2]
IDE masih sangat canggih sampai sekarang, ketika sumber daya komputer pada PC IBM sangat terbatas (desain IBM memiliki keterbatasan yang besar sehingga performanya tidak dapat melawan produk enterprise yang menguntungkan IBM). IDE sangat simple dan intuitif, dan menu sistem yang sangat terorganisir dengan baik. Versi terbaru dari penggunaan editor; Wordstar key functions, menjadi standar pada saat ini. Versi selanjutnya dari IDE, didesain untuk PC dengan mengecilkan ruang pada disk dan memory, yang dapat menampilkan definisi dari kata kunci dari bahasa dengan menempatkan kursor pada kata kunci dan menekan F1. Definisi juga menampilkan kode contoh. Ini memberikan pelajaran kepada programmer yang belum handal dengan menggunakan IDE, tanpa membutuhkan pertolongan dari buku.
Versi 1 hingga versi 3
Halaman depan buku panduan Turbo Pascal 3.0
Borland membeli lisensi atas kompiler PolyPascal yang ditulis oleh Anders Hejlsberg (Poly Data adalah nama perusahaan yang didirikannya diDenmark), dan menambahkan antar muka pengguna serta editor. Anders kemudian bergabung sebagai karyawan dan menjadi arsitek atas semua versi kompiler Turbo Pascal dan tiga versi pertama Borland Delphi.[3]
Versi pertama dari Turbo Pascal, yang kemudian disebut sebagai versi 1, memiliki unjuk kerja yang sangat cepat dibandingkan kompiler pascal untuk komputer mikro lainnya. Kompiler tersebut tersedia untuk sistem operasi CP/M, CP/M-86, dan MS-DOS, dan penggunaannya sangat luas pada masa itu. Versi Turbo Pascal untuk CP/M saat itu bisa digunakan pada komputer Apple II yang sangat populer jika digunakan dengan sebuah Z-80 SoftCard, produk perangkat keras pertama yang ditembangkan microsoft di tahun 1980.
Pada saat itu CP/M menggunakan format berkas executable yang sederhana dengan menggunakan ekstensi .COM; sistem operasi MS-DOS bisa menggunakan baik .COM (tidak kompatibel dengan format yang terdapat pada CP/M) maupun format .EXE. Turbo Pascal pada saat itu hanya mendukung kode biner berformat .COM, pada masa itu hal tersebut tidak menjadi suatu bentuk keterbatasan. Perangkat lunak Turbo Pascal itu sendiri merupakan sebuah berkas berekstensi .COM dan berukuran sekitar 28 kilobita, termasuk editor, kompiler, dan linker, dan rutin-rutin pustaka. Efisiensii proses edit/kompilasi/jalankan lebih cepat dibandingkan dengan implementasi paskal pada kompiler lainnya disebabkan semua elemen yang terkait dalam pengembangan program diletakkan pada memori komputer (RAM), dan karena kompilernya sendiri merupakan kompiler berjenis single-pass compiler yang ditulis dengan bahasa assembler. Unjuk kerja proses kompilasi sangat cepat dibandingkan dengan produk lain (bahkan dibandingkan dengan kompiler C milik Borland sendiri).
Ketika pertama kali versi Turbo Pascal muncul pada tanggal 20 November 1983, jenis IDE yang digunakannya masih terbilang baru. Pada debutnya terhadap pasar perangkat lunak di Amerika, perangkat lunak tersebut dibandrol dengan harga USD$49.99. Kualitas kompiler pascal terintegrasi terdapat dalam Turbo Pascal sangat baik dibandingkan kompetitor lain dan atas fitur-fitur tersebut ditawarkan dengan harga yang terjangkau.
Versi 2 dan 3 merupakan pengembangan lebih lanjut dari versi sebelumnya, mampu berkerja dalam memori, dan menghasilkan berkas biner berekstensi .COM/.CMD. Dukungan atas sistem operasi CP/M dan CP/M-86 dihentikan setelah versi 3.
Bahasa Assembly
Saat seluruh versi dari Turbo Pascal dapat memasukkan kode mesin, versi selanjutnya memberikan kemampuan untuk berintegrasi dengan mudah pada bahasa Assembly tanpa pascal. Dukungan untuk 8086 mode memory disediakan dengan inline assembly, pilihan kompiler, dan ekstensi bahasa seperti kata kunci yang "pasti".
Versi-versi lanjutan
Versi 4, ditembangkan tahun 1987, merupakan perangkat lunak yang ditulis ulang untuk keseluruhan sistem. Kompiler menghasilkan berkas biner berekstensi .EXE pada MS-DOS, dan tidak lagi .COM. Sistem operasi CP/M dan C/M-86 tidak lagi didukung pada versi kompiler ini. Versi ini pula memperkenalkan sebuah antar muka berlayar penuh dengan yang dilengkapi dengan menu tarik; versi-versi awal memilik layar menu berbasis teks; dan editor berlayar-penuh. Microsoft Windows belum ada saat versi ini ditembangkan, dan bahkan pemanfaatan tetikus-pun masih jarang.
Versi 5.x diperkenalkan dengan layar biru yang kemudian menjadi ciri khas yang sangat familiar, yang kemudian menjadi merek dagang perusahaan perangkat kompiler MS-DOS sampai era DOS berakhir di pertengahan tahun 1990-an.
Versi terakhir yang pernah ditembangkan adalah versi 7. Borland Pascal 7 terdiri atas sebuah IDE, dan kompiler untuk MS-DOS, DOS terekstensi, dan program Windows 3.x. Turbo Pascal 7 di sisi lain hanya bisa membuat program MS-DOS standar. Perangkat lunak tersebut dilengkapi pula dengan pustaka grafis yang mengabstraksi pemrograman dalam menggunakan beberapa driver grafis eksternal, namun unjuk kerja pustaka ini tidak memuaskan.
Bahasa Perakit
Meski semua versi Turbo Pascal mendukung inline machine code kode mesin yang disertakan dalam baris kode sumber bahasa pascal, versi-versi berikutnya mendukung integrasi bahasa perakit (Assembly) dengan Pascal secara mudah. Hal ini memungkinkan pemrogram untuk meningkatkan unjuk kerja eksekusi program lebih lanjut, selain itu, memungkinkan pemrogram untuk mengakses perangkat keras secara langsung.
Dukungan atas model memori atas prosesor 8086 tersedia melalui inline assembly, opsi kompiler, dan eksensi bahasa seperti menggunakan kata kuci "absolute".
Suksesi
Pada tahun 1995 Borland menghentikan pengembangan Turbo Pascal dan menggantinya dengan Delphi, berbasis Object Pascal (bahasa Pascal yang telah dilengkapi dengan fitur pemrograman berorientasi obyek). Perangkat lunak tersebut membawa banyak konsep baru kepada pengguna Turbo Pascal seperti konsep pemrograman berbasis RAD (singkatan dari rapid application development). Meski demikan, versi 32 bit Delphi masih mendukung cukup banyak aspek-aspek yang ada pada Turbo Pascal.
Beberapa produk lain yang kompatibel dengan Turbo Pascal juga bermunculan seperti Free Pascal dan Virtual Pascal.
Pendidikan
Borland Pascal masih digunakan sebagai materi yang dipelajari sebagai mata pelajaran atau mata kuliah di beberapa sekolah, dan universitas di Jerman, dan Amerika. Di Beligia, Romania, Serbia, Moldova dan Bulgaria Pascal digunakan bahkan di sekolah menengah tingkat pertama. Namun di Afrika selatan, Pascal tidak lagi digunakan, melainkan menggunakan Delphi dan Java.
Beberapa kalangan guru lebih memilih Borland Pascal 7, atau Turbo Pascal 5.5 disebabkan karena lebih sederhana dibandingkan IDE modern yang ada saat ini (seperti Visual Studio, atau Borland JBuilder), dengan demikian meraka dapat memfokuskan pengajaran lebih banyak pada sisi bahasa, dan bukan pada bagaimana cara mengoperasikan IDE tersebut. Selain dari itu, perangkat lunak tersebut tersedia secara gratis dan bisa diunduh dari situs resminya.
[sunting]Contoh kode
Bahasa Pascal tidak bersifat case sensitive.
Secara historis, komentar dalam bahasa pascal diidentifikasikan sebagai { seperti ini }, atau (* seperti ini *), dan bisa terdiri atas beberapa baris. Versi lanjutan Borland Pascal juga mendukung model komentar seperti yang terdapat pada C++. // seperti ini , yang berlaku pada satu baris.
Sintaksis case yang lebih fleksibel daripada Pascal standar.
Himpunan hanya bisa memiliki hingga 28 (256) anggota.
Standar, string dengan panjang yang tetap didukung, namun terdapat pula tipe data String yang lebih fleksibel.