Selasa, 15 November 2011

Prinsip Bahasa Pemograman

Dalam kehidupan sehari–hari, untuk berkomunikasi dengan orang lain, kita harus menggunakan bahasa yang sama dengan orang tersebut. Apabila kita menggunakan Bahasa Indonesia, lawan bicara kita harus mengerti Bahasa Indonesia. Kalau lawan bicara kita tidak mengerti Bahasa Indonesia, kita masih bisa berkomunikasi dengannya melalui penerjemah.

Dalam pemograman komputer, berlaku juga hal seperti di atas. Kita harus menggunakan bahasa yang dimengerti oleh komputer untuk memberikan suatu instruksi. Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan tidak ada arus listrik (dilambangkan dengan 0).


Dengan kata lain kita harus menggunakan sandi 0 dan 1 untuk melakukan pemrograman komputer. Bahasa pemrograman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin (assembly). Sebagai contoh, dalam prosesor Intel, terdapat perintah 0011 1010 0000 1011. Perintah dalam bahasa mesin ini sama artinya dengan perintah assembly CMP AL, 0D, yang
artinya bandingkan nilai register AL dengan 0D. CMP di sini sebenarnya adalah singkatan dari CoMPare. Untuk membantu manusia dalam mengkonversi bahasa mesin diperlukan perangkat lunak yang disebut assembler.


Pemrograman dengan bahasa assembly masih terasa sulit bagi kebanyakan orang sehingga dikembangkan bahasa pemrograman yang lebih mudah digunakan. Bahasa pemrograman yang dikembangkan ini lebih condong ke bahasa manusia dan disebut bahasa generasi ketiga / 3GL (Third-Generation Language) atau juga dikenal dengan bahasa tingkat tinggi/ HLL (High-Level Language). Sebagai contoh Basic, Pascal, C, C++, Cobol, dsb. Bahasa generasi ketiga menggunakan kata-kata dalam bahasa Inggris karena bahasa tersebut adalah bahasa internasional, misal ;


Pascal:
writeln (‘Algoritma’);

Atau perintah dalam bahasa C:
printf (“Algoritma\n\r”):

Atau perintah dalambahasa C++:
cout << “Algoritma” << endl;

Ketiga pernyataan di atas bertujuan sama yaitu menuliskan teks ‘algoritma’ ke keluaran standar
(Standard Output), ke layar monitor. Ketiga perintah sederhana di atas sebenarnya terdiri dari puluhan atau bahkan ratusan pernyataan assembly. Perangkat lunak yang menerjemahkan program dalam bahasa manusiawi ke dalam bahasa assembly atau mesin ada dua macam, yaitu interpreter dan kompiler. Interpreter menerjemahkan program baris perbaris artinya jika suatu baris akan diekskusi maka baris tersebut diterjemahkan terlebih dahulu ke bahasa mesin. Apabila baris berikutnya akan diekskusi maka baris tersebut baru diterjemahkan kedalam bahasa mesin. Contoh bahasa pemograman yang menggunakan interpreter adalah basic.


Kompiler menerjemahkan semua perintah ke dalam bahasa mesin kemudian menjalankan hasil
penerjemahan. Hasil penerjemahan ini bisa disimpan dalam file atau memori. Contoh bahasa pemrograman yang menggunakan kompiler adalah Pascal, C, dan C++. Khusus untuk Pascal, ada beberapa kompiler tetapi jumlahnya sedikit. Misalnya Turbo Pascal (http://www.inprice.com), GNU Pascal (http://didaktik.physik.uni-essen.de/~gnupascal/home.html), Free Pascal
(http://www.freepascal.sk) , dsb. Kompiler Pascal yang banyak digunakan adalah Turbo Pascal, sehingga pada modul ini juga digunakan Turbo Pascal sebagai acuannya.

Perkembangan bahasa pemrograman setelah bahasa generasi ketiga adalah bahasa generasi keempat atau yang disingkat 4GL (fourth-generation language). Bahasa ini banyak digunakan sebagai aplikasi basis data (database), salah satu contohnya adalah SQL (Structured Query Language). Pada bahasa ini, perintah-perintah yang digunakan lebih manusiawi, misalnya “SELECT Nama,Nilai FROM Mahasiswa”, untuk mengambil data Nama dan Nilai dari basis data Mahasiswa.


Langkah-langkah dalam Pemrograman Komputer

Dalam pemrograman komputer, diperlukan beberapa langkah dan langkah-langkah yang disajikan pada modul ini tidak bersifat mutlak. Artinya Anda tidak harus melakukan dari langkah pertama, kedua, ketiga, dst. Ada beberapa langkah yang harus atau mungkin
diulang sampai beberapa kali. Berikut ini contoh beberapa langkah yang harus dilakukan dalam
pemrograman komputer:

1. Mendefinisikan Masalah.Mendefinisikan masalah dengan menentukan masalahnya seperti apa, kemudian apa saja yang
harus dipecahkan dengan komputer, yang terakhir adalah apa masukannya dan bagaimana keluarannya.

2. Menentukan Solusi.Setelah masalah didefinisikan dengan jelas, masukan yang diberikan sudah jelas, keluaran yang
diinginkan sudah jelas, maka langkah selanjutnya adalah mencari jalan penyelesaian masalah. Jika permasalahan terlalu kompleks, biasanya kita harus membaginya ke dalam beberapa modul kecil agar lebih mudah diselesaikan. Sebagai contoh, program untuk menghitung invers matriks, dapat dibagi menjadi beberapa modul kecil. Modul pertama adalah meminta masukan dari pengguna berupa matriks bujur sangkar. Modul kedua adalah mencari invers matriks yang dimasukkan pengguna. Modul terakhir adalah menampilkan hasilnya pada pengguna.

3. Memilih Algoritma.
Langkah ini merupakan salah satu langkah yang penting dalam pemrograman komputer karena pemilihan algoritma yang salah akan menyebabkan program memiliki unjuk kerja yang kurang baik.


4. Menulis Program.
Pada langkah ini dimulai penulisan program komputer untuk memecahkan masalah yang diberikan. Untuk menulis program dapat digunakan salah satu bahasa generasi ketiga. Ada beberapa hal yang harus diperhitungkan sebelum memilih bahasa pemrograman, antara lain masalah yang dihadapi, bahasa pemrograman yang Anda kuasai, dsb.

5. Menguji Program.
Setelah program selesai ditulis dilakukan pengujian. Pengujian pertama adalah; Apakah
program berhasil dikompilasi dengan baik? Pengujian berikutnya; Apakah program dapat
menampilkan keluaran yang diinginkan? Lebih jauh lagi program harus diuji dengan banyak kasus. Sering terjadi, suatu program berjalan baik untuk kasus A, B, C; tetapi menghasilkan sesuatu yang tidak diinginkan untuk kasus X,Y, dan Z. Langkah ini bisa dilakukan berulang-ulang sampai program diyakini benar-benar berjalan sesuai dengan yang diharapkan.

6. Menulis Dokumentasi.
Merupakan hal sepele yang sering dilupakan, karena tidak ada fungsinya pada saat pembuatan program, namun pada masa mendatang akan sangat diperlukan, apalagi bagi orang lain yang mempelajari program kita. Dokumentasi ada dua, yaitu di atas kertas dan menjadi satu dalam program (komentar pendek yang menerangkan fungsi perintah-perintah yang ada dalam program tersebut.

7. Merawat programSetelah program selesai dan digunakan oleh user, maka sering kali muncul bug / kesalahan yang
sebelumnya tidak terdeteksi, atau juga user ingin menambahkan fasilitas baru, sehingga program harus direvisi.



Definisi Algoritma

1. PengertianDitinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering
dikelirukan dengan Arithmetic, sehingga akhiran – sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.

2. 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.

3. Aturan Penulisan Algoritma
Pada setiap bagian algoritma apabila akan dituliskan komentar mengenai setiap bagian
tersebut dituliskan di antara tanda kurung kurawal, contoh { Komentar }. Notasi algoritmis
yang dituliskan diantara tanda ini tidak akan dieksekusi oleh program.

http://zonakampus.blogspot.com/2009/10/prinsip-bahasa-pemrograman.html

Konsep Dasar Pemrograman

Konsep IPO dikembangkan mejadi :
Originating -> input -> proses -> Output -> Distribution
||
Storage
Originating
Berhubungan dengan pengumpulan data yang biasanya merupakan pencatatan data kedokumen dasar. Setelah dikumpulkan dilakukan proses input.
Input
Tahapan ini merupakan proses pemasukan data kedalam proses komputer melalui peralatan input.
Proses
Tahap ini merupakan proses pengolahan data dari data yang sudah diinput berupa proses menghitung membandingkan, mengurutkan, mengklasifikasikan, mengendalikan dan mencari di storage.
Output
Tahap ini merupakan proses untuk menghasilkan keluaran dari proses pengolahan data ke peralatan output berupa informasi (monitor, speaker, dsb)
Distribution
Tahap ini merupakan proses penyebaran informasi kepada pihak-pihak yang berhak dan membutuhkan informasi.
Storage
Tahap ini merupakan perekaman hasil pengolahan data storage yang nantinya dapat dipergunakan untuk input proses selanjutnya.

Pengertian dasar program adalah rangkaian instruksi-instruksi dalam bahasa komputer yang disusun secara logika dan sistematis.
Tujuan pembuatan program
  1. Membuat solusi dari pemecahan kasus yang timbul.
  2. Meningkatkan kualitas dan performance dari kinerja kerja.
  3. Membantu proses pengambilan keputusan.
Struktur Dasar Pemrograman
Salah satu tahapan dari pengembangan suatu program adalah menterjemahkan atau mengkodekan rancangan terinci yang telah dibuat menjadi suatu program komputer yang siap pakai.
Beberapa karakteristik seorang pemrogram yang mempengaruhi suatu program yang dibuat adalah sbb:
  1. Memiliki pol pikir yang logis.
  2. Memiliki ketekunan dan ketelitian yang tinggi.
  3. Memiliki penguasaan bahasa pemrograman yang baik.
  4. Memiliki pengetahuan tentang teknik pemrograman yang baik.
Langkah-langkah pokok secara umum didlam membuat program komputer
  1. Mendefinisikan masalah.
  2. Membuat flowchart.
  3. Membuat program.
  4. Melakukan tes program.
  5. Membuat dokumentasi program.
Pemrograman Terstruktur merupakan suatu tindakan untuk membuat program yang berisi instruksi-instruksi dalam bahasa komputer yang disusun secara logis dan sistematis supaya mudah dimengerti, mudah dites, dan mudah dimodifikasi.
Pemrograman Modular
Dalam pemrograman modular program dipecah-pecah kedalam modul-modul dimana setiap modul menunjukkan fungsi dan tugas tertentu.
Pemrograman Top Down
Sangat berguna dalam perencanaan pemrograman modular.

http://mahrus.wordpress.com/2008/03/25/konsep-dasar-pemrograman/

Pengertian dan tipe data

1. Tipe Data
Setiap data memiliki tipe data, apakah merupakan angka bulat ( integer ), angka biasa ( real ), atau berupa karakter ( char ), dan sebagainya.
Ada 2 kategori dari tipe data yaitu:
1. Tipe dasar
1. Bilangan bulat ( integer )
- Bilangan atau angka yang tidak memiliki titik desimal atau pecahan, seperti 10, +225, -10,+25.
- Tipe dituliskan sebagai integer atau int
- Jangkauan nilai bergantung pada implementasi perangkat keras komputer, misalnya dari -11 s/d +12; untuk algoritma tidak kita batasi.
- Operasi aritmetik: tamabah+, kurang-, kali*, bagi/, sisa hasil bagi%
- Operasi pembanding:lebih kecil=, sama=, tidak sama>< .
2. Bilangan biasa ( real )
- Bilangan atau angka yang bisa memiliki titik desimal atau pecahan, dan ditulis sebagai : 235.45, +13.99, -87.76 atau dalam notasi ilmiah seperti : 1.245E+03, 7.45E-02, dsb.
- Tipe dituliskan sebagai : real
- Jangkauan nilai : bergantung pada implementasi perangkat keras komputer, misalnya dari -2.9E-39 s/d +1.7E+38, untuk algoritma tidak dibatasi.
- Operasi aritmatik dan pembandingan juga berlaku bagi bilangan biasa.
3. Bilangan tetap ( const ).
- Bilangan tetap ( const ) adalah tipe bilangan, tidak bernilai bulat maupun tidak, yang nilainya tidak berubah selama algoritma dilaksanakana.
- Tipe dituliskan sebagai const .
- Jangkauan nilai meliputi semua bilangan yang mungkin.
4. Karakter ( character )
- Karakter adalah data tunggal yang mewakili semua huruf, simbol baca, dan juga simbol angka yang tidak dapat dioprasikan secara matematis, misalnya: ’A’, ’B’, .....,’Z’, ’?’,’!’, dst.
- Tipe dituliskan sebagai char
- Jangkauan nilai meliputi semua karakter dalam kode ASCII, atau yang tertera pada setiap tombol keyboard.
- Operasi pembanding dapat dilakukan dan dievaluasi menurut urutan kode ASCII, sehingga huruf ’A’ (Hex 41) sebenarnya lebih kecil dari huruf ’a’ (Hex 61).
5. Logik ( logikal )
- Tipe data logik adalah tipe data yang dipergunakan untuk memberi nilai pada hasil pembandingan, atau kombinasi pembandingan.
- Tipe dituliskan sebagai boolean
- Jangkauan nilai ada dua : true dan false
2. Tipe bentukan
1. Array ( larik )
- Array adalah tipe data bentukan, yang merupakan wadah untuk menampung beberapa nilai data yang sejenis. Kumpulan bilangan bulat adalah array integer, kumpulan bilangan tidak bulat adalah array real.
- Cara menefinisikan ada 2 macam, yaitu:
* Nilai_ujian : array [ 1..10] of integer, atau
* Int nilai­_ujian[10];
- Kedua definisi diatas menunjukkan bahwa nilai_ujian adalah kumpulan dari 10 nilai bertipe bilangan bulat.
2. String
- String adalah tipe data bentukan yang merupakan deretan karakter yang membentuk satu kata atau satu kalimat, yang biasanya diapit oleh dua tanda kutip.
- Sebagai contoh: nama, alamat, dan judul adalah tipe string.
- Cara mendefinisikannya adalah:
* string nama, alamat; atau
* nama,alamat : string;
3. Record ( rekaman )
- Record adalah tipe data bentukan yang merupakan wadah untuk menampung elemen data yang tipenya tidak perlu sama dengan tujuan mewakili satu jenis objek.
- Sebagai contoh, mahasiswa sebagai satu jenis objek memiliki beberapa elemen data seperti : nomer_stb, nama, umur, dll.
- Cara mendefinisikan record mahasiswa tersebut adalah sebagai berikut:
Type dataMhs : record
< nomer_stb : integer,
Nama_mhs : string,
Umur : integer,
>
2. Variabel
Variabel adalah nama yang mewakili suatu elemen data seperti : jenkel untuk jenis kelami, t4lahir untuk tempat lahir, dan sebagainya. Ada aturan tertentu yang wajib diikuti dalam pemberian nama variable, antara lain:
* Harus dimulai dengan abjad, tidak boleh dengan angka atau symbol.
* Tidak boleh ada spasi diantaranya
* Jangan menggunakan simbol yang bisa membingungkan seperti titik dua, titik koma, koma, dan sebagainya.
* Sebaiknya memiliki arti yang sesuai denagn elemen data.
* Sebaiknya tidak terlalu panjang.
Contoh variabel yang benar : Nama, Alamat, Nilai_ujian
Contoh variabel yang salah : 4XYZ, IP rata, Var;=xy,45;

Sumber nusinau

Model Komputasi

Teori komputasi adalah cabang ilmu komputer dan matematika yang membahas apakah dan bagaimanakah suatu masalah dapat dipecahkan padamodel komputasi, menggunakan algoritma. Bidang ini dibagi menjadi dua cabang: teori komputabilitas dan teori kompleksitas, namun kedua cabang berurusan dengan model formal komputasi.
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