Spesifikasi Bahasa Pemrograman
Dokumentasi Program
Dokumentasi berguna untuk menginformasikan tentang proses yang ada dalam program, sehingga jika ada pertanyaan tentang program yang dibuat memiliki kemampuan apa saja, kita dapat mengetahui atau menjelaskan berdasarkan dokumentasi.
Dokumentasi program sangat diperlukan oleh pemilik aplikasi, jika ingin mengembangkan aplikasinya bukan oleh pengembang yang sama. Pengembang lain yang diserahi tugas untuk mengembangkan aplikasi dapat dengan cepat mempelajari dari dokumentasi tersebut.
Macam dokumentasi program
Macam dokumentasi program:
-
dokumentasi spesifikasi program
-
dokumentasi teknis program
-
dokumentasi penggunaan program
Dokumentasi spesifikasi program
Dokumentasi spesifikasi program seharusnya sudah ada sebelum program dibuat. Dibuat oleh perancang aplikasi (sering kali dibuat oleh analis sistem). Berdasarkan dokumentasi inilah program dibuat.
Dokumentasi spesifikasi program ini dibuat untuk memberikan panduan tentang logika program yang harus dibuat. Harus ada proses apa saja, bagaimana flow prosesnya. Pemrogram dapat melakukan coding dengan lebih mudah.
Akan tetapi, sering terjadi, dokumentasi spesifikasi program tidak dibuatkan oleh perancang aplikasinya. Perancang aplikasi hanya menjelaskan tentang program, spesifikasi program yang ada adalah spesifikasi secara lisan. Akibatnya adalah seringkali program tidak sesuai dengan yang diinginkan, karena pemrogram bekerja dengan mengandalkan ingatannya, bukan berdasarkan panduan dokumen spesifikasi.
Ketiadaan dokumentasi bisa menyebabkan komunikasi antara perancang aplikasi dan pemrogram menjadi tidak baik, karena bisa jadi akan ada perselisihan akibat ketidakjelasan akan apa yang dikerjakannya.
Dokumentasi spesifikasi program harus ada, walaupun secara global. Setidaknya ada informasi tentang poin-poin yang harus ada dalam program, kemudian bagaimana urutan prosesnya.
Dokumentasi spesifikasi program menjadi pegangan bersama antara perancang, pemrogram, dan penguji. Untuk memastikan bahwa program yang dibuat sudah sesuai dokumentasi.
Dokumentasi Kode Program
Dokumentasi kode program, merupakan dokumentasi yang harus ada dalam program, untuk memberikan penjelasan kepada setiap baris atau pun blok perintah dalam program.
Dokumentasi program diperlukan bagi programmer itu sendiri, untuk dapat menelusuri logika program. Karena biasanya, pemrogram akan lupa akan alur programnya sendiri. Apalagi jika sudah lama sudah ditinggalkan, karena mengerjakan pekerjaan lain. Pada saat harus memperbaiki atau menyempurnakan, programmer sering harus mempelajari terlebih dahulu alur programnya sendiri, baru kemudian baru bisa melakukan modifikasi sesuai dengan yang diinginkan.
Dari sisi lain, dokumentasi juga diperlukan untuk memudahkan untuk memvalidasi apakah program yang telah dikembangkan, sudah sesuai dengan yang dispesifikasikan atau belum. Proses validasi ini akan dilakukan oleh tim penguji (validator).
Dokumentasi kode program merupakan pelengkap dokumentasi spesifikasi, karena menjelaskan bagaimana dari spesifikasi diterjemahkan ke dalam program.
Jika dokumentasi spesifikasi tidak ada maka dokumentasi kode program akan menjadi dokumentasi yang sangat berharga, karena bukan menjadi dokumen pelengkap tetapi menjadi dokumentasi utama.
Dokumentasi dalam kode program umumnya dilakukan dengan menuliskan baris-baris komentar dalam kode sumber programnya. Isi dari dokumentasi kode program, setidaknya terdiri atas:
-
langkah-langkah dalam program untuk menyelesaikan masalah
-
komentar dituliskan pada setiap awal modul atau fungsi,
-
jika mungkin komentar ditulis pada setiap blok program, jika tidak maka ditulis pada blok-blok yang penting saja. Lebih baik lagi jika setiap baris ada komentarnya.
-
Informasi tentang siapa yang membuat, kapan pertamakali dibuat, kapan terakhir diperbaiki, jika mungkin informasi perubahan dari waktu ke waktu
Cara menuliskan komentar harus mengikut kepada cara penulisan yang baku. Jika menggunakan bahasa pemrograman Java, maka dapat menggunakan format yang telah ditetapkan oleh javadoc.
Dokumentasi Penggunaan Program
Dokumentasi penggunaan program sangat diperlukan untuk dapat memberitahu kepada pengguna bagaimana cara menggunakan program yang telah dibuat. Jika tidak dibuatkan cara menggunakan programnya, dikhawatirkan program menjadi tidak dapat dipakai, apalagi jika programnya kurang interaktif.
Banyak program yang dibuat, cara pemakaiannya sesuai dengan alur logika pemrogramnya. Bukan berdasarkan alur logika pengguna program. Karenanya harus dibuatkan dokumentasi cara menggunakan program, agar pengguna tahu bagaimana cara menggunakan dengan benar.
Tools
Jika kita hanya memiliki dokumentasi kode program, maka kita dapat mengambil dokumentasi dari kode program tersebut untuk menjadi seolah-olah dokumentasi spesifikasi program. Kita harus menggunakan tools untuk melakukan pengambilan dokumentasi kode program dengan menggunakan tools.
Agar dokumentasi dalam kode program dapat diambil oleh tools yang akan digunakan, maka cara penulisan dokumentasi harus mengikuti standar tertentu. Jika kita menggunakan Java, maka kita dapat menggunakan javadoc untuk mengambil dokumentasinya. Untuk bahasa pemrograman lain ada juga toolsnya. Masing-masing memiliki tools yang membantu untuk membuatkan dokumentasi dari dokumentasi kode program.
Beberapa tools yang umum digunakan adalah:
-
javadoc
-
delphidoc
-
doxygen
Pemrograman Non Prosedural
Bahasa Pemrograman Non Prosedural
Bahasa Non Prosedural adalah bahasa yang berproduktifitas tinggi yang sjuga disebut sebagai bahasa generasi keempat (4G). Yang memungkinkan komputer dapat diakses oleh semua orang karena gaya bahasanya yang ringkas, grafis yang bagus, serta kuantitas dan kecepatan komputer meningkat sehingga proses instruksi lebih cepat dan mudah. Programmer dapat memberikan code program dengan tanpa pengetahuan instruksi mesin dan register.
Tujuan bahasa generasi keempat yaitu untuk mempermudah aplikasi dan mempercepat perubahan dan meminimalkan problem debugging. Penekanan pemrograman non prosedural adalah pada penentuan apa yang akan diselesaikan dan membiarkan sistem menentukan bagaimana menyusunnya. Prinsip Pokok dalam design 4GL: Prinsip pekerjaan minimal Prinsip keterampilan minimal Prinsip pengindaran syntax dan mechanic asing Prinsip waktu kosong(delay) Prinsip usaha minimal (min error) Prinsip perawatan minimal ( costumize) Karakter Pokok dari 4GL Daftar kriteria pokok tersebut antara lain: Apakah diperuntukan untuk perhitungan rutin atau keputusan(pengambilan keputusan). Apakah diperuntukan untuk pemakai terakhir atau DP professional. Apakah memerlukan ketrampilan programmer atau tidak. Keistimewaan yang ada: Simple queries. Simple queries & Update. Komplek queries. Komplek queries & Update. Kemampuan membuat basis data secara cepat. Operasi intelligent basis data Perubahan di satu sisi menyebabkan terjadinya operasi lain secara otomatis. Generasi layar data entry untuk operator key entry(dengan cek validasi). Generasi layar update. Bahasa prosedural yang memberikan kemampuan pemograman penuh. Teknik grafis untuk design aplikasi. Penyebaran manipulasi. Manipulasi multi dimensi matrik. Pembuatan laporan. Pembuatan grafik. Manipulasi grafik. Keputusan dukungan untuk pertanyaan what-if. Peralatan analisa matematika. Peralatan analisa keuangan. Peralatan pendukung lain Manipulasi teks Mailbox elektronik : Apakah on-line/off-line Apakah dijalankan untuk mainframe, miniframe atau PC. Dapatkah meng-access mainframe atau remote basis data. Apakah cukup mudah digunakan. Dapatkah hasilnya diperoleh dengan cepat. Properti 4GL: Untuk semua bahasa dapat disebut generasi keempat harus mempunyai karakteristik sebagai berikut: User-friendly. Programmer non-profesional dapat memperoleh hasil. Menggunakan system manajemen basis data secara langsung. Program untuk semua aplikasidapat dibuat dengan satu perintah lebih sedikit daripada COBOL. Code non-prosedural digunakan, jika mungkin. Akan membuat asumsi default intelligent tentang yang diinginkan pemakai, jika mungkin. Disusun unutk operasi on-line. Memberi kekuatan dan semangat code terstruktur. Mempermudah pemahaman dan perawatan code oranglain. Pemakai non-DP dapat mempelajarinya dengan cepat. Dirancang untuk debugging dengan mudah. Prototype dapat dibuat dan dimodifikasi dengan cepat. Hasilnya dapat diperoleh dengan perintah magnitude waktu yang lebih cepat dari COBOL/PLI. Tidak semua bahasa yang memiliki property tersebut seluruhnya dan cocok untuk semua aplikasi. Harus dipilih bahasa pemograman tertentu untuk aplikasi tertentu. Komponen 4GL 4GL dengan tujuan umum yang baik mempunyai komponen non-prosedural yang mungkin disembunyikan pada fasilitas procedural.
contoh animasi dengan pascal
uses dos,graph,crt;
var
DriverGrafis,ModeGrafis:integer;
color:real;
begin
drivergrafis:=detect;
InitGraph(DriverGrafis,ModeGrafis,’c:\tp\bgi’);
{warna latar}
setfillstyle(solidfill,4);
floodfill(240,400,4);
{judul}
setcolor(7);
outtextxy(515,270,’KOTAK CINTA’);
settextstyle(5,1,10);
{sisi kotak belakang}
setcolor(5);
ellipse(550,350,0,120,60,50);
ellipse(490,350,260,360,120,65);
ellipse(490,350,40,180,60,70);
ellipse(565,350,180,260,135,70);
setfillstyle(3,5);
floodfill(551,351,5);
{kotak bawah}
setcolor(15);
setlinestyle(solidln,5,thickwidth);
ellipse(550,400,0,120,60,50);
ellipse(490,400,40,180,60,70);
ellipse(490,350,260,360,120,65);
ellipse(565,350,180,260,135,70);
setfillstyle(1,15);
floodfill(490,370,15);
{kotak atas}
setcolor(5);
setlinestyle(solidln,5,thickwidth);
ellipse(550,350,0,120,60,50);
ellipse(490,350,260,360,120,65);
ellipse(490,350,40,180,60,70);
ellipse(565,350,180,260,135,70);
setfillstyle(1,15);
floodfill(550,370,15);
{sisi depan kotak}
setcolor(5);
setlinestyle(solidln,5,thickwidth);
line(610,352,610,400);
line(429,352,429,400);
ellipse(490,350,260,360,120,65);
ellipse(565,350,180,260,135,70);
ellipse(490,400,260,360,120,65);
ellipse(565,400,180,260,135,70);
setfillstyle(3,5);
floodfill(500,460,5);
line(540,418,540,468);
line(470,415,470,465);
{elip 0}
setcolor(1);
ellipse(500,335,0,180,4,8);
ellipse(496,335,270,360,8,12);
ellipse(492,335,0,180,4,8);
ellipse(496,335,180,270,8,12);
setfillstyle(2,1);
floodfill(501,336,1);
{elip 0}
setcolor(2);
ellipse(510,345,0,180,4,8);
ellipse(506,345,270,360,8,12);
ellipse(502,345,0,180,4,8);
ellipse(506,345,180,270,8,12);
setfillstyle(3,2);
floodfill(511,346,2);
{elip 0}
setcolor(5);
ellipse(490,345,0,180,4,8);
ellipse(486,345,270,360,8,12);
ellipse(482,345,0,180,4,8);
ellipse(486,345,180,270,8,12);
setfillstyle(3,5);
floodfill(491,346,5);
repeat
{elip 1}
setcolor(1);
{sound(1000);}
ellipse(480,310,0,180,4,8);
ellipse(476,310,270,360,8,12);
ellipse(472,310,0,180,4,8);
ellipse(476,310,180,270,8,12);
setfillstyle(2,random(1));
floodfill(481,311,1);
delay(500);
nosound;
ellipse(480,310,0,180,4,8);
ellipse(476,310,270,360,8,12);
ellipse(472,310,0,180,4,8);
ellipse(476,310,180,270,8,12);
setfillstyle(3,5);
floodfill(482,312,5);
{elip 2}
setcolor(2);
{sound(2000);}
ellipse(436,280,0,180,4,8);
ellipse(432,280,270,360,8,12);
ellipse(428,280,0,180,4,8);
ellipse(432,280,180,270,8,12);
setfillstyle(3,random(2));
floodfill(437,281,2);
delay(500);
nosound;
setcolor(4);
ellipse(436,280,0,180,4,8);
ellipse(432,280,270,360,8,12);
ellipse(428,280,0,180,4,8);
ellipse(432,280,180,270,8,12);
setfillstyle(1,4);
floodfill(437,281,4);
{elip 3}
setcolor(3);
{sound(3000);}
ellipse(425,265,0,180,5,12);
ellipse(420,265,270,360,10,15);
ellipse(415,265,0,180,5,12);
ellipse(420,265,180,270,10,15);
setfillstyle(4,random(3));
floodfill(426,268,3);
delay(500);
nosound;
setcolor(4);
ellipse(425,265,0,180,5,12);
ellipse(420,265,270,360,10,15);
ellipse(415,265,0,180,5,12);
ellipse(420,265,180,270,10,15);
setfillstyle(solidfill,4);
floodfill(426,268,4);
{elip 4}
setcolor(6);
{sound(4000);}
ellipse(410,250,0,180,8,12);
ellipse(402,250,270,360,16,20);
ellipse(394,250,0,180,8,12);
ellipse(402,250,180,270,16,20);
setfillstyle(5,random(6));
floodfill(411,251,6);
delay(500);
nosound;
setcolor(150);
ellipse(410,250,0,180,8,12);
ellipse(402,250,270,360,16,20);
ellipse(394,250,0,180,8,12);
ellipse(402,250,180,270,16,20);
setfillstyle(solidfill,4);
floodfill(411,251,4);
{elip 5}
setcolor(7);
{sound(5000);}
ellipse(390,240,0,180,10,15);
ellipse(380,240,270,360,20,28);
ellipse(370,240,0,180,10,15);
ellipse(380,240,180,270,20,28);
setfillstyle(6,random(7));
floodfill(395,242,7);
delay(500);
setcolor(4);
ellipse(390,240,0,180,10,15);
ellipse(380,240,270,360,20,28);
ellipse(370,240,0,180,10,15);
ellipse(380,240,180,270,20,28);
setfillstyle(solidfill,4);
floodfill(395,242,4);
{elip 6}
setcolor(9);
{sound(6000); }
ellipse(370,220,0,180,12,17);
ellipse(358,220,270,360,24,32);
ellipse(346,220,0,180,12,17);
ellipse(358,220,180,270,24,32);
setfillstyle(7,random(9));
floodfill(375,230,9);
delay(500);
nosound;
setcolor(4);
ellipse(370,220,0,180,12,17);
ellipse(358,220,270,360,24,32);
ellipse(346,220,0,180,12,17);
ellipse(358,220,180,270,24,32);
setfillstyle(solidfill,4);
floodfill(375,230,4);
{elip 7}
setcolor(10);
{sound(7000); }
ellipse(335,190,0,180,15,20);
ellipse(320,190,270,360,30,40);
ellipse(305,190,0,180,15,20);
ellipse(320,190,180,270,30,40);
setfillstyle(8,random(10));
floodfill(340,200,10);
delay(500);
nosound;
setcolor(4);
ellipse(335,190,0,180,15,20);
ellipse(320,190,270,360,30,40);
ellipse(305,190,0,180,15,20);
ellipse(320,190,180,270,30,40);
setfillstyle(solidfill,4);
floodfill(340,200,4);
{elip 8}
setcolor(11);
{sound(8000); }
ellipse(290,160,0,180,15,25);
ellipse(275,160,270,360,30,40);
ellipse(260,160,0,180,15,25);
ellipse(275,160,180,270,30,40);
setfillstyle(9,random(11));
floodfill(300,170,11);
delay(500);
nosound;
setcolor(4);
ellipse(290,160,0,180,15,25);
ellipse(275,160,270,360,30,40);
ellipse(260,160,0,180,15,25);
ellipse(275,160,180,270,30,40);
setfillstyle(solidfill,4);
floodfill(300,170,4);
{elip 9}
setcolor(12);
{sound(1000); }
ellipse(240,130,0,180,18,36);
ellipse(222,130,270,360,36,46);
ellipse(204,130,0,180,18,36);
ellipse(222,130,180,270,36,46);
setfillstyle(10,random(12));
floodfill(250,140,12);
delay(500);
nosound;
setcolor(4);
ellipse(240,130,0,180,18,36);
ellipse(222,130,270,360,36,46);
ellipse(204,130,0,180,18,36);
ellipse(222,130,180,270,36,46);
setfillstyle(solidfill,4);
floodfill(250,140,4);
{elip 10}
setcolor(13);
{sound(2000);}
ellipse(200,100,0,180,20,40);
ellipse(180,100,270,360,40,55);
ellipse(160,100,0,180,20,40);
ellipse(180,100,180,270,40,55);
setfillstyle(11,random(13));
floodfill(201,110,13);
delay(500);
nosound;
setcolor(4);
ellipse(200,100,0,180,20,40);
ellipse(180,100,270,360,40,55);
ellipse(160,100,0,180,20,40);
ellipse(180,100,180,270,40,55);
setfillstyle(1,4);
floodfill(201,110,4);
{elip 11}
setcolor(14);
{sound(3000);}
ellipse(150,80,0,180,25,45);
ellipse(125,80,270,360,50,70);
ellipse(100,80,0,180,25,45);
ellipse(125,80,180,270,50,70);
setfillstyle(3,random(14));
floodfill(151,90,14);
delay(500);
nosound;
setcolor(4);
ellipse(150,80,0,180,25,45);
ellipse(125,80,270,360,50,70);
ellipse(100,80,0,180,25,45);
ellipse(125,80,180,270,50,70);
setfillstyle(solidfill,4);
floodfill(151,90,4);
{elip 12}
setcolor(5);
{sound(4000);}
ellipse(100,50,0,180,30,40);
ellipse(70,50,270,360,60,80);
ellipse(40,50,0,180,30,40);
ellipse(70,50,180,270,60,80);
setfillstyle(4,random(5));
floodfill(120,80,5);
delay(500);
nosound;
setcolor(4);
ellipse(100,50,0,180,30,40);
ellipse(70,50,270,360,60,80);
ellipse(40,50,0,180,30,40);
ellipse(70,50,180,270,60,80);
setfillstyle(solidfill,4);
floodfill(120,80,4);
until keypressed;
nosound;
readln;
closegraph;
end.
Hello world!
Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!
-
Terkini
-
Tautan
-
Arsip
- Oktober 2008 (2)
- Juni 2008 (2)
-
Kategori
-
RSS
RSS Entri
Komentar RSS