Konsep Dasar Pemrograman
Pengertian
:
Algoritma : Langkah-langkah untuk
menyelesaikan sesuatu masalah
Pemrograman
Terstruktur : “Metode untuk
mengorganisasikan dan membuat kode-kode program supaya mudah untuk dimengerti,
mudah di test dan di modifikasi.”
Algoritma Pemrograman Yang Baik
Ciri-ciri algoritma pemrograman yang baik adalah :
1.
Memiliki logika perhitungan/metode yang tepat dalam memecahkan masalah
2.
Menghasilkan output yang tepat dan benar dalam waktu yang singkat
3.
Ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga
tidak menimbulkan arti ganda.
4.
Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam
bahasa pemrograman.
5.
Semua operasi yang dibutuhkan terdefinisi dengan jelas.
6.
Semua proses harus berakhir setelah sejumlah langkah dilakukan.
Standar
Suatu Program Yang Baik
A. Standar Pemecahan masalah
teknik untuk dapat membantu memecahkan masalah antara
lain teknik Top Down dan teknik Modular.
B. Standar Penyusunan Program
1. Kebenaran logika dan penulisan
Program yang disusun harus memiliki logika dalam
pemecahan masalah. Program yang dibuat harus memiliki ketepatan, ketelitian dan
kebenaran sehingga menghasilkan program yang baik.
2. Waktu penulisan dan eksekusi
program
3. Perawatan dan pengembangan
program
Penyusunan program harus mempunyai sifat kesederhanaan
dan kejelasan dari program yang nantinya akan dikembangkan dan membantu dalam
perawatan.
4. Portabilitas
Bahasa pemrograman dan program yang disusun sebaiknya bisa dipakai pada
berbagai tipe komputer yang berbeda-beda dan berbagai jenis sistem operasi.
Standar
Perawatan Program
1. Dokumentasi
2. Penulisan
Instruksi
a. Berikan keterangan untuk awal statement atau instruksi yang tergabung dalam
sekelompok statement.
b. Awal dan akhir statement dari sekumpulan statement ditulis pada kolom yang
sama.
c. Gunakan sebaris atau beberapa baris kosong sebagai pemisah.
d. Hindari
pernyataan untuk Percabangan
(IF
statement ) yang sangat rumit dan Nested Loop (Loop disalam Loop lain) yang
berlebihan.
e. Gunakan “kurung buka dan tutup” dalam menulis suatu ekspresi Aritmatika
atau logika.
f. Gunakan “Spasi” dalam menulis statement atau instruksi.
Sifat
Penulisan Program
a. Program
Oriented
Penulisan program yang struktur programnya selalu berubah, apabila kondisi
data yang diproses di dalam program tersebut, bertambah volume datanya. Selain
itu penulisan program ini bersifat statis dan tidak fleksibel (program animasi)
b. Data
Oriented
Penulisan program yang struktur programnnya tidak
selalu berubah, walaupun volume data yang diproses di dalam program tersebut,
dalam jumlah besar. Selain itu pula penulisan program ini bersifat dinamis dan
mempunyai tingkat fleksibilitas yang tinggi.
Kualitas
Bahasa Pemrograman
1. Ekspresifitas
Bahasa pemrograman yang baik harus jelas dalam
menggambarkan algoritmanya yang dibuat.
2. Definitas (dapat didefinisikan dengan baik)
Bahasa Pemrograman dapat didefinisikan dari adanya sintak
dan semantic baik. Sintak dan semantic ini haruslah konsisten dan tidak
bermakna ganda.
3. Tipe
data dan Strukturnya
Bahasa pemrograman yang baik harus berkemampuan dalam
mendukung berbagai tipe data (integer, string,real). Serta
struktur data (array, record,file)
4. Modularitas
Bahasa
pemrograman yang baik harus memiliki fasilitas sub program. Program yang besar
dapat dikerjakan oleh beberapa pemrogram secara bersama-sama yang nantinya
dengan mudah dapat digabungkan menjadi sebuah modul saja.
5. Adanya
Input Output
Bahasa
pemrograman yang baik harus dapat mendukung berbagai jenis model file seperti
sequential, random, index dsb dalam proses masukan dan keluaran.
6. Portabilitas
Bahasa pemrograman yang dapat digunakan pada berbagai
tipe mesin computer yang berbeda-beda.
7. Efisiensi
Bahasa pemrograman yang dapat mengatur banyaknya
instruksi program dalam membatasi waktu tempuh pemrosesan, mengatur jumlah
memori yang digunakan program,.
8. Interaktif
Bahasa pemrograman yang baik harus mudah dipelajari
dan diajarkan pada user. Serta dimengerti tentang proses yang sedang
dilakukannya.
9. Umum
Bahasa
pemrograman yangn baik harus memiliki jangkauan yang luas untuk berbagai
aplikasi pemrograman sehingga dapat bersifat bahasa serbaguna.
Sumber
: Modul Kuliah STMIK Tasikmalaya
http://kutukomputer.net23.net/2008/11/konsep-dasar-pemrograman/
DATA
Data adalah catatan atas
kumpulan fakta.Data merupakan bentuk jamak dari datum, berasal
dari bahasa Latin yang berarti "sesuatu yang diberikan".
Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara
apa adanya. Pernyataan ini adalah hasil pengukuran atau pengamatan suatu variabel yang bentuknya dapat berupa angka, kata-kata, atau
citra.
Dalam keilmuan (ilmiah), fakta dikumpulkan untuk menjadi
data. Data kemudian diolah sehingga dapat diutarakan secara jelas dan tepat
sehingga dapat dimengerti oleh orang lain yang tidak langsung mengalaminya
sendiri, hal ini dinamakan deskripsi. Pemilahan banyak data sesuai
dengan persamaan atau perbedaan yang dikandungnya dinamakan klasifikasi.
Dalam pokok bahasan Manajemen Pengetahuan,
data dicirikan sebagai sesuatu yang bersifat mentah dan tidak memiliki konteks.
Dia sekedar ada dan tidak memiliki signifikansi makna di luar keberadaannya
itu. Dia bisa muncul dalam berbagai bentuk, terlepas dari apakah dia bisa
dimanfaatkan atau tidak.
Menurut berbagai sumber lain, data dapat juga
didefinisikan sebagai berikut:
• Menurut kamus bahasa inggris-indonesia, data berasal
dari kata datum yang berarti fakta
• Dari sudut pandang bisnis, data bisnis adalah
deskripsi organisasi tentang sesuatu (resources) dan kejadian
(transactions)yang terjadi
• Pengertian yang lain menyebutkan bahwa data adalah
deskripsi dari suatu kejadian yang kita hadapi
Referansi: http://id.wikipedia.org/wiki/Data
Untuk melakukan studi komputasi dengan ketat, ilmuwan komputer bekerja dengan abstraksi matematika dari komputer yang dinamakan model komputasi. Ada beberapa model yang digunakan, namun yang paling umum dipelajari adalah mesin Turing. Sebuah mesin Turing dapat dipikirkan sebagai komputer pribadi meja dengan kapasitas memory yang tak terhingga, namun hanya dapat diakses dalam bagian-bagian terpisah dan diskret. Ilmuwan komputer mempelajari mesin Turing karena mudah dirumuskan, dianalisis dan digunakan untuk pembuktian, dan karena mesin ini mewakili model komputasi yang dianggap sebagai model paling masuk akal yang paling ampuh yang dimungkinkan. Kapasitas memori tidak terbatas mungkin terlihat sebagai sifat yang tidak mungkin terwujudkan, namun setiap permasalahan yang “terputuskan” (decidable) yang dipecahkan oleh mesin Turing selalu hanya akan memerlukan jumlah memori terhingga. Jadi pada dasarnya setiap masalah yang dapat dipecahkan (diputuskan) oleh meisn Turing dapat dipecahkan oleh komputer yang memiliki jumlah memori terbatas.
Pembagian Model komputasi ada 3 yaitu :
1. Mesin Mealy
Dalam teori komputasi sebagai konsep dasar sebuah komputer, mesin Mealy adalah otomasi fasa berhingga (finite state automaton atau finite state tranducer) yang menghasilkan keluaran berdasarkan fasa saat itu dan bagian masukan/input. Dalam hal ini, diagram fasa (state diagram) dari mesin Mealy memiliki sinyal masukan dan sinyal keluaran untuk tiap transisi. Prinsip ini berbeda dengan mesin Moore yang hanya menghasilkan keluaran/output pada tiap fasa.
Nama Mealy diambil dari “G. H. Mealy” seorang perintis mesin-fasa (state-machine) yang menulis karangan “A Method for Synthesizing Sequential Circuits” pada tahun 1955.
2. Mesin Moore
Dalam teori komputasi sebagai prinsip dasar komputer, mesin Moore adalah otomasi fasa berhingga (finite state automaton) di mana keluarannya ditentukan hanya oleh fasa saat itu (dan tidak terpengaruh oleh bagian masukan/input). Diagram fasa (state diagram) dari mesin Moore memiliki sinyal keluaran untuk masing-masing fasa. Hal ini berbeda dengan mesin Mealy yang mempunyai keluaran untuk tiap transisi.
Nama Moore diambil dari “Edward F. Moore” seorang ilmuwan komputer dan perintis mesin-fasa (state-machine) yang menulis karangan “Gedanken-experiments on Sequential Machines”.
3. Petri Net
Petri net adalah salah satu model untuk merepresentasikan sistem terdistribusi diskret. Sebagai sebuah model, Petri net merupakan grafik 2 arah yang terdiri dari place, transition, dan tanda panah yang menghubungkan keduanya. Di samping itu, untuk merepresentasikan keadaan sistem, token diletakkan pada place tertentu. Ketika sebuah transition terpantik, token akan bertransisi sesuai tanda panah.
Petri net pertama kali diajukkan oleh Carl Adam Petri pada tahun 1962.
Sekianlah model-model komputasi. Materi ini bersumber dari :
http://id.wikipedia.org/wiki/Kategori:Model_komputasi
http://id.wikipedia.org/wiki/Teori_komputasi
http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol2/njc1/petri.gif
http://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Graf_automatu_moore.svg/539px-Graf_automatu_moore.svg.png
Tugas Bahasa Pemrograman I
Bahasa pemrograman dan bahasa alami sama-sama berfungsi untuk memfasilitasi komunikasi antar manusia, tetapi pada bahasa pemrograman yang difasilitasi adalah komunikasi ide-ide algoritmanya, baik antar manusia maupun manusia dengan mesin komputasi (yang tidak bisa dilakukan oleh bahasa alami). Dalam merancang sebuah bahasa pemrograman, perancang bahasa harus memiliki vocabulary dasar tentang struktur bahasa, arti dan hal-hal pragmatis lainnya dan memahami empat prinsip dasar perancangan bahasa pemrograman. Empat prinsip tersebut adalah:- Sintaks, menjelaskan bagaimana struktur program yang benar.
- Tipe sistem dan semantik, menunjukkan tipe nilai yang dapat dimanipulasi oleh program dan arti(semantik) dari program, mencakup juga aturan penamaan entitas (variabel,fungsi,class,parameter,dll).
- Manajemen memori, menunjuk kepada sekumpulan teknik yang membantu kita untuk memahami pemetaan letak dari nilai, struktur data, dan struktur program di dalam memori.
- Exception handling, mengenai penanganan exception (hal-hal yang tak terduga yang terjadi ketika kita menjalankan sebuah program seperti kesalahan input yang tak terduga) .
- Imperative programming-> program terdiri dari instruksi yang membentuk perhitungan, menerima input dan menghasilkan output. Contoh bahasa: Fortran, C, dan C++.
- Object-oriented (OO) programming-> program adalah kumpulan objek yang saling berinteraksi melalui pesan yang mengubah state mereka. Contoh bahasa: Java, C++.
- Functional programming-> program merupakan kumpulan fungsi matematika dengan input (domain) dan hasil (range). Fungsi-fungsi saling berinteraksi dan berkombinasi mengggunakan komposisi fungsional, kondisional, dan rekursif. Contoh bahasa: Lisp, Scheme,ML
- Logic (declarative) programming -> memodelkan masalah menggunakan bahasa deklaratif, yang terdiri dari fakta dan aturan. Contoh bahasa : Prolog
- Event-driven programming-> program merupakan sebuah loop yang secara kontinu merespon event yang timbul oleh perintah yang tidak terduga. Event ini berasal dari aksi user pada layar atau sumber lainnya. Contoh bahasa: Visual Basic dan Java.
- Concurrent programming-> program merupakan sekumpulan proses yang bekerjasama, saling berbagi informasi dari waktu ke waktu tapi biasanya beroperasi secara tidak serempak. Contoh bahasa : SR, Linda, dan HPF.
Bahasa pemrograman telah mengalami perkembangan yang pesat sejak pertama kalinya ditemukan. Bahasa pemrograman yang pertama adalah bahasa mesin yang dirancang pada tahun 1940-an. Sejak saat itu ratusan bahasa pemrograman telah berkembang. Cobol dan Fortran adalah contoh bahasa yang berkembang sangat pesat sejak kemunculannya di akhir tahun 50-an dan telah memberikan pengaruh besar pada perkembangan bahasa lain selama lebih dari 40 tahun. Algol juga merupakan bahasa yang memiliki pengaruh sangat besar kepada para penerusnya seperti C++ dan Java. Java merupakan bahasa yang memberikan dukungan kuat pada paradigma OO, concurrent dan event-driven sehingga merupakan bahasa yang menarik bagi para perancang bahasa. Di wilayah functional programming Lisp merupakan bahasa yang dominan pada masa-masa awal dan masih terus mempengaruhi perkembangan bahasa sekarang seperti Scheme, ML, dan Haskell. Sedangkan di wilayah logic programming, Prolog menjadi satu-satunya pemain utama walaupun tidak banyak mempengaruhi desain bahasa di luar wilayahnya. Pada wilayah event-driven dan conccurent programming yang masih dalam masa awal evolusinya hanya menghasilkan sedikit bahasa yang menonjol, salah satunya adalah HPF.
Perbedaan domain aplikasi dan paradigma serta bahasa yang digunakan, menciptakan komunitas-komunitas programming yang berbeda-beda pula. Komunitas programming itu antara lain : Scientific Computing, Management Information System (MIS), Artificial Intelegence, System, dan Web-centric. Masing-masing komunitas tersebut tidak hanya menggunakan salah satu paradigma saja, tapi mengombinasikannya sesuai dengan kebutuhan domain aplikasi mereka.
Dalam merancang bahasa pemrograman, ada beberapa kendala yang harus diatasi para perancangnya, yakni:
- Arsitektur komputer. Bahasa pemrograman dirancang untuk komputer: well-match atau tidak dengan arsitektur komputer yang ada.
- Kontekstual. Bahasa pemrograman juga harus mampu mengatasi kendala yang timbul akibat konteks dimana mereka digunakan: wilayah aplikasi, sistem operasi, jaringan dan pilihan komunitas programmingnya.
- Virtual machines dan Intrepreter. Bahasa pemrograman dianalis untuk selanjutnya diterjemahkan ke dalam bentuk yang dapat dipahami oleh mesin, apabila dijalankan oleh komputer (“real machine”) maka disebut proses compiling. Sedangkan apabila dijalankan oleh sebuah intrepreter (sebuah software yang menyimulasikan “virtual machine” dan menjalankannya dalam “real machine”) maka disebut sebagai proses intrepreting. Virtual machine, secara umum adalah model abstrak dari sebuah komputer yang diimplementasikan dalam software, tapi tidak di dalam hardware. Perancang bahasa harus memutuskan mana yang lebih sesuai untuk bahasa yang sedang dirancang, apakah menggunakan konsep virtual machines atau intrepreter , menurut tujuan dari pengembangan bahasa itu sendiri.
- Standar. Memenuhi standar yang ditetapkan oleh ANSI (American National Standards Institute),atau ISO (International Standards Organization).
- Legacy systems atau sistem pendahulu. Agar bahasa yang lama masih tetap bisa di-maintain, bahasa yang lebih baru harus tetap mempertahankan kompatibelitasnya dengan pendahulunya itu.
- Simplicity and Clarity, program harus mudah ditulis dan dimengerti serta dipelajari oleh programmer pada umumnya.
- Binding, memiliki batasan definisi dan waktu yang jelas, misalnya reserved words, ukuran memori suatu tipe data, run time, dsb.
- Orthogonality, simbol atau reserved word memilki makna yang sama apapun konteks yang digunakan.
- Realibility, program akan melakukan hal yang sama ketika memperoleh input data yang sama.
- Applicability, bahasa tsb menyediakan dukungan yang tepat sesuai dengan domain aplikasi yang digunakan.
- Abstraction, mendukung abstraksi data dan prosedural sehingga menjadi alat yang disukai dalam proses memprogram.
- Implementasi yang efisien.
Sumber : http://humblediary.wordpress.com/2010/02/24/tugas-bahasa-pemrograman-i/
No comments:
Post a Comment