Menu
Pasang iklan SEO disini Murah, 25000 setahun dan dapatkan Trafik setiap harinya

Menulis Dan Mengkompilasikan Kode Program Sesuai Dengan Kebutuhan TIK.PR02.013.01

May
02
2015
by : Bupeko. Posted in : blog

 

MATERI PELATIHAN BERBASIS KOMPETENSI

SEKTOR TEKNOLOGI INFORMASI DAN KOMUNIKASI

 

 

 

 

 

 

 

MENULIS DAN MENGKOMPILASIKAN KODE PROGRAM SESUAI DENGAN KEBUTUHAN

TIK.PR02.013.01

 

 

 

 

 

 

 

BUKU INFORMASI

 

 

 

 

 

 

 

 

DEPARTEMEN TENAGA KERJA DAN TRANSMIGRASI R.I.

DIREKTORAT JENDERAL PEMBINAAN PELATIHAN DAN PRODUKTIVITAS

Jl. Jend. Gatot Subroto Kav.51 Lt.7.B Jakarta Selatan

 

DAFTAR ISI

 

DAFTAR ISI. 1

BAB I. 3

PENGANTAR. 3

1.1   Konsep Dasar Competency Based Training (CBT) 3

1.2   Penjelasan Modul 3

1.2.1   Desain Modul 3

1.2.2   Isi Modul 3

1.2.3   Pelaksanaan Modul 4

1.3 Pengakuan Kompetensi Terkini (RCC) 5

1.4 Pengertian-Pengertian / Istilah. 5

BAB II. 7

STANDAR KOMPETENSI. 7

2.1 Peta Paket Pelatihan. 7

2.2 Pengertian Unit Standar Kompetensi 7

2.3 Unit Kompetensi Yang Dipelajari 8

2.3.1 Judul Unit Kompetensi 8

2.3.2 Kode Unit Kompetensi 8

2.3.3 Deskripsi Unit 8

2.3.4  Elemen Kompetensi 8

2.3.5 Batasan Variabel 9

2.3.6 Panduan Penilaian. 9

2.3.7 Kompetensi Kunci 10

BAB III. 12

STRATEGI DAN METODE PELATIHAN. 12

3.1   Strategi Pelatihan. 12

3.2   Metode Pelatihan. 12

BAB IV. 14

MATERI UNIT KOMPETENSI. 14

MENULIS DAN MENGKOMPILASIKAN KODE PROGRAM SESUAI DENGAN KEBUTUHAN  14

4.1 Tujuan Instruksional Umum.. 14

4.2 Tujuan Instruksional Khusus 14

4.3 Uraian Singkat Materi 14

4.4 Beberapa Pengertian dalam Unit Kompetensi Ini : 16

4.5 Informasi Masing-Masing Elemen Kompetensi 16

4.5.1   Mendeklarasikan dan menetapkan variable-variabel 16

4.5.2  Membuat Kode Modul 22

4.5.3   Menguji Setiap Modul 30

4.5.4   Menetapkan Prosedur-prosedur Exception Handling. 39

4.5.5 Menggunakan Teknik-teknik Debugging dan Penanganan Error 43

BAB V. 50

SUMBER-SUMBER YANG DIPERLUKAN UNTUK PENCAPAIAN                          KOMPETENSI  50

5.1 Sumber Daya Manusia. 50

5.2 Literatur 51

5.3 Daftar Peralatan dan Bahan yang digunakan. 52

DAFTAR PUSTAKA. 53

 

 

 

 

 


BAB I

PENGANTAR

 

1.1        Konsep Dasar Competency Based Training (CBT)

  • Apakah pelatihan berdasarkan kompetensi?

Pelatihan berdasarkan kompetensi adalah pelatihan yang memperhatikan pengetahuan, keterampilan dan sikap yang diperlukan di tempat kerja agar dapat melakukan pekerjaan dengan kompeten. Standar Kompetensi dijelaskan oleh Kriteria Unjuk Kerja.

 

  • Apakah artinya menjadi kompeten ditempat kerja?

Jika anda kompeten dalam pekerjaan tertentu, anda memiliki seluruh keterampilan, pengetahuan dan sikap yang perlu untuk ditampilkan secara efektif ditempat kerja, sesuai dengan standar yang telah disetujui.

 

1.2        Penjelasan Modul

Modul ini dikonsep agar dapat digunakan pada proses Pelatihan Konvensional/Klasikal dan Pelatihan Individual/Mandiri. Yang dimaksud dengan Pelatihan Konvensional/Klasikal, yaitu pelatihan yang dilakukan dengan melibatkan bantuan seorang pembimbing atau guru seperti proses belajar mengajar sebagaimana biasanya dimana materi hampir sepenuhnya dijelaskan dan disampaikan pelatih/pembimbing yang bersangkutan.

Sedangkan yang dimaksud dengan Pelatihan Mandiri/Individual adalah pelatihan yang dilakukan secara mandiri oleh peserta sendiri berdasarkan materi dan sumber-sumber informasi dan pengetahuan yang bersangkutan. Pelatihan mandiri cenderung lebih menekankan pada kemauan belajar peserta itu sendiri. Singkatnya pelatihan ini dilaksanakan peserta dengan menambahkan unsur-unsur atau sumber-sumber yang diperlukan baik dengan usahanya sendiri maupun melalui bantuan dari pelatih.

1.2.1    Desain Modul

Modul ini didesain untuk dapat digunakan pada Pelatihan Klasikal dan Pelatihan Individual / mandiri:

  • Pelatihan klasikal adalah pelatihan yang disampaikan oleh seorang pelatih.
  • Pelatihan individual / mandiri adalah pelatihan yang dilaksanakan oleh peserta dengan menambahkan unsur-unsur / sumber-sumber yang diperlukan dengan bantuan dari pelatih.

 

1.2.2    Isi Modul

Modul ini terdiri dari 3 bagian, antara lain sebagai berikut:

 

Buku Informasi

Buku informasi ini adalah sumber pelatihan untuk pelatih maupun peserta pelatihan.

 

Buku Kerja

Buku kerja ini harus digunakan oleh peserta pelatihan untuk mencatat setiap pertanyaan dan kegiatan praktek baik dalam Pelatihan Klasikal maupun Pelatihan Individual / mandiri.

Buku ini diberikan kepada peserta pelatihan dan berisi :

  • Kegiatan-kegiatan yang akan membantu peserta pelatihan untuk mempelajari dan memahami informasi.
  • Kegiatan pemeriksaan yang digunakan untuk memonitor pencapaian keterampilan peserta pelatihan.
  • Kegiatan penilaian untuk menilai kemampuan peserta pelatihan dalam melaksanakan praktik kerja.

 

Buku Penilaian

Buku penilaian ini digunakan oleh pelatih untuk menilai jawaban dan tanggapan peserta pelatihan pada Buku Kerja dan berisi :

  • Kegiatan-kegiatan yang dilakukan oleh peserta pelatihan sebagai pernyataan keterampilan.
  • Metode-metode yang disarankan dalam proses penilaian keterampilan peserta pelatihan.
  • Sumber-sumber yang digunakan oleh peserta pelatihan untuk mencapai keterampilan.
  • Semua jawaban pada setiap pertanyaan yang diisikan pada Buku Kerja.
  • Petunjuk bagi pelatih untuk menilai setiap kegiatan praktik.
  • Catatan pencapaian keterampilan peserta pelatihan.

 

1.2.3        Pelaksanaan Modul

Pada pelatihan klasikal, pelatih akan :

  • Menyediakan Buku Informasi yang dapat digunakan peserta pelatihan sebagai sumber pelatihan.
  • Menyediakan salinan Buku Kerja kepada setiap peserta pelatihan.
  • Menggunakan Buku Informasi sebagai sumber utama dalam penyelenggaraan pelatihan.
  • Memastikan setiap peserta pelatihan memberikan jawaban / tanggapan dan menuliskan hasil tugas praktiknya pada Buku Kerja.

 

Pada Pelatihan individual / mandiri, peserta pelatihan akan :

  • Menggunakan Buku Informasi sebagai sumber utama pelatihan.
  • Menyelesaikan setiap kegiatan yang terdapat pada buku Kerja.
  • Memberikan jawaban pada Buku Kerja.
  • Mengisikan hasil tugas praktik pada Buku Kerja.
  • Memiliki tanggapan-tanggapan dan hasil penilaian oleh pelatih.

 

1.3 Pengakuan Kompetensi Terkini (RCC)

  • Apakah Pengakuan Kompetensi Terkini (Recognition of Current Competency)

Jika anda telah memiliki pengetahuan dan keterampilan yang diperlukan untuk elemen unit kompetensi tertentu, anda dapat mengajukan pengakuan kompetensi terkini (RCC). Berarti anda tidak akan dipersyaratkan untuk belajar kembali.

Anda mungkin sudah memiliki pengetahuan dan keterampilan, karena anda telah :

  1. Bekerja dalam suatu pekerjaan yang memerlukan suatu pengetahuan dan keterampilan yang sama atau
  2. Berpartisipasi dalam pelatihan yang mempelajari kompetensi yang sama atau
  3. Mempunyai pengalaman lainnya yang mengajarkan pengetahuan dan keterampilan yang sama.

 

1.4 Pengertian-Pengertian / Istilah

 

Profesi

Profesi adalah suatu bidang pekerjaan yang menuntut sikap, pengetahuan serta keterampilan/keahlian kerja tertentu yang diperoleh dari proses pendidikan, pelatihan serta pengalaman kerja atau penguasaan sekumpulan kompetensi tertentu yang dituntut oleh suatu pekerjaan/jabatan.

 

Standarisasi

Standardisasi adalah proses merumuskan, menetapkan serta menerapkan suatu standar tertentu.

 

Penilaian / Uji Kompetensi

Penilaian atau Uji Kompetensi adalah proses pengumpulan bukti melalui perencanaan, pelaksanaan dan peninjauan ulang (review) penilaian serta keputusan mengenai apakah kompetensi sudah tercapai dengan membandingkan bukti-bukti yang dikumpulkan terhadap standar yang dipersyaratkan.

 

Pelatihan

Pelatihan adalah proses pembelajaran yang dilaksanakan untuk mencapai suatu kompetensi tertentu dimana materi, metode dan fasilitas pelatihan serta lingkungan belajar yang ada terfokus kepada pencapaian unjuk kerja pada kompetensi yang dipelajari.

 

Kompetensi Kerja

Kompetensi  Kerja adalah kemampuan kerja setiap individu  yang mencakup aspek  pengetahuan ,  keterampilan dan sikap kerja  yang sesuai dengan standar yang ditetapkan

 

Pelatihan Berbasis Kompetensi Kerja.

Pelatihan Berbasisi Kompetensi Kerja adalah  pelatihan kerja yang menitikberatkan pada penguasaan kemampuan kerja yang mencakup pengetahuan, keterampilan dan sikap sesuai dengan standar yang ditetapkan dan persyaratan di tempat kerja.

 

Standar Kompetensi Kerja Nasional Indonesia

Standar Kompetensi Kerja Nasional Indonesia adalah rumusan kemampuan kerja yang mencakup aspek pengetahuan, keterampilan dan / atau keahlian serta sikap kerja yang relevan dengan pelksanaan tugas dan syarat jabatan yang ditetapkan sesuai dengan ketentuan peraturan perundang-undangan yang berlaku.

 

Sertifikasi Kompetensi Kerja.

Sertifikasi kompetensi Kerja adalah proses pemberian sertifikat kompetensi yang dilakukan secara sitematis dan obyektif melalui uji kompetensi sesuai standar kompetensi kerja nasional Indonesia, standar internasional dan /atau standar khusus.

 

Sertifikat Kompetensi Kerja

Sertifikat Kompetensi Kerja adalah bukti tertulis yang diterbitkan oleh lembaga sertifikasi profesi terakreditasi yang menerangkan bahwa seseorang telah menguasai kompetensi kerja tertentu sesuai dengan SKKNI.

 

 

 

 

 


BAB II

STANDAR KOMPETENSI

 

2.1 Peta Paket Pelatihan

Modul yang sedang Anda pelajari ini bertujuan untuk mencapai satu unit kompetensi. Adapun kompetensi ini termasuk dalam satu paket pelatihan, yang terdiri atas unit-unit kompetensi berikut:

  1. TIK.PR02.013.01     Menulis dan Mengkompilasikan Kode Program Sesuai       dengan Kebutuhan

 

2.2 Pengertian Unit Standar Kompetensi

 

Apakah Standar Kompetensi?

Setiap Standar Kompetensi menentukan :

  1. Pengetahuan dan keterampilan yang diperlukan untuk mencapai kompetensi.
  2. Standar yang diperlukan untuk mendemonstrasikan kompetensi.
  3. Kondisi dimana kompetensi dicapai.

 

Apakah yang akan anda pelajari dari Unit Kompetensi ini ?

Di dalam unit kompetensi ini, Anda akan mempelajari bagaimana cara menulis dan mengkompilasikan kode program sesuai dengan kebutuhan, dalam hal ini difokuskan untuk menulis kode program dalam bahasa pemrograman C/C++ dan Java.

 

Berapa lama unit kompetensi ini dapat diselesaikan ?

Sistem pelatihan berbasis kompetensi terfokus pada pencapaian kompetensi, bukan pada lamanya waktu. Namun, diharapkan pelatihan ini dapat dilaksanakan dan dicapai dalam jangka waktu tidak lebih dari seminggu, tiga sampai lima hari. Pelatihan ini diperuntukkan khusus bagi para technical support, walaupun tidak menutup kemungkinan bagi semua orang yang terlibat dalam penggunaan komputer.

 

Berapa banyak/kesempatan yang anda miliki untuk mencapai kompetensi ?

Jika Anda belum mencapai kompetensi pada usaha/kesempatan pertama, Pelatih Anda akan mengatur rencana pelatihan dengan Anda. Rencana ini akan memberikan Anda kesempatan kembali untuk meningkatkan level kompetensi Anda sesuai dengan level yang diperlukan. Jumlah maksimum usaha/kesempatan yang disarankan adalah 3 (tiga) kali.

 

2.3 Unit Kompetensi Yang Dipelajari

Dalam sistem pelatihan Standar Kompetensi diharapkan menjadi panduan bagi peserta pelatihan untuk dapat :

  1. Mengidentifikasikan apa yang harus dikerjakan peserta pelatihan.
  2. Memeriksa kemajuan peserta pelatihan.
  3. Menyakinkan bahwa semua elemen (sub-kompetensi) dan kriteria unjuk   kerja telah dimasukkan dalam pelatihan dan penilaian.

 

2.3.1 Judul Unit Kompetensi

MENULIS DAN MENGKOMPILASIKAN KODE PROGRAM SESUAI DENGAN KEBUTUHAN

2.3.2 Kode Unit Kompetensi

TIK.PR02.013.01

 

2.3.3 Deskripsi Unit

Unit kompetensi ini berkaitan dengan pengoperasian sistem operasi pada perangkat komputer dalam kondisi normal. Pengoperasian mencakup: mengenali perintah kepada sistem operasi, pengelolaan folder dan file, perintah administrasi sistem dan panel kontrol.

 

2.3.4 Elemen Kompetensi

 

ELEMEN KOMPETENSI

KRITERIA UNJUK KERJA

01     Mendeklarasikan dan menetapkan variable-variabel  1.1    Penamaan variable sesuai kaidah dan benar.

1.2 Variabel-variabel di deklarasikan menurut        persyaratan.

1.3 Variabel-variabel dinamis yang garbage di kumpulkan setelah di gunakan.

02     Membuat kode modul  2.1    Kelas instansi atau kode modul-modul di           kembangkan setelah di tetapkan.

2.2 Kepaduan dan standar perangkai/coupling dipenuhi modul-modul.

2.3  Array dinamis, table, dan struktur memori di      kembangkan.

03     Menguji setiap modul 3.1 Pengujian rutin di kembangkan untuk memverifikasi bahwa kode yang di hasilkan memenuhi persyaratan.

3.2    Struktur memori yaitu array di uji untuk pelanggaran batas.

3.3    Struktur kontrol atau loop diakhiri

04      Menetapkan prosedur-prosedur exception handling. 4.1 Pengkodean area dimana exception dapat          terjadi ditentukan.

4.2          Rutin-rutin exception handling diimpelementasikan.

4.3          Semua exception sudah tercakup

05     Menggunakan teknik-teknik    debugging dan penanganan eror 5.1         Teknik debugging dan fasilitas penanganan error digunakan.

5.2         Metoda-metoda error handling eksternal (penggunaan data base) menyisakan kepaduan sangat tinggi dan loosly coopled.

5.3         Kode di kompilasi dan di uji jika di perlukan di terasi

 

Tabel 1 Element Kompetensi

2.3.5 Batasan Variabel

  1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan komunikasi

2.    Menulis dan mengkompilasi kode sesuai dengan kebutuhan bersifat internal pada bidang teknologi informasi dan komunikasi

 

2.3.6 Panduan Penilaian

  1. 1.                   Pengetahuan dan keterampilan penunjang

Untuk mendemontrasikan kompetensi, memerlukan bukti keterampilan dan pengetahuan di bidang berikut ini.

1.1.    Pengetahuan dasar

1.1.1  Pengetahuan detail metodologi-metodologi pengembangan

1.1.2       Teknologi dan konsep object oriented programming

1.1.3       Teori Pemograman object oriented programming

1.1.4       Implementasi dari objek dan kelas

1.1.5       Pengetahuan dasar konsep teoritikal dan pemograman real time

1.1.6       Pengetahuan dasar konsep teoritikal dari drivers input/output

1.1.7       Pengetahuan dasar konsep teoritikal dari proses-proses manajemen konfigurasi pengembangan software

1.1.8       Pengetahuan dasar konsep teoritikal dari perkiraan size

1.1.9       Hak cipta dan property intelektual

1.2.    Keterampilan dasar

1.2.1    Teknik-teknik dokumentasi program

1.2.2     Deteksi error dan teknik handling

1.2.3     Keterampilan algoritma dan hubungannya dengan analisis, evaluasi dan identifikasi solusi

 

 

 

2.       Konteks penilaian

Kompetensi harus di ujikan di tempat kerja atau di tempat lain secara praktek dengan kondisi kerja sesuai dengan keadaan normal.

 

3.       Aspek penting penilaian

Aspek yang harus diperhatikan:

3.1   Kemampuan untuk menulis kode modul

3.2.  Kemampuan menguji kode modul

3.3   Kemampuan menetapkan prosedur exception handling

3.4   Kemampuan menggunakan teknik-teknik debugging dan penanganan error

 

4.        Kaitan dengan unit-unit lainnya

4.1         Unit ini di dukung oleh pengetahuan dan keterampilan dalam unit-unit          kompetensi yang berkaitan dengan dasar-dasar teknologi informasi

4.1.1.  TIK.PR02.004.01 Menggunakan spsesifikasi program

4.1.2.  TIK.PR02.006.01 Menulis program lanjut

4.1.3.  TIK.PR02.008.01 Mengoperasikan bahasa pemrograman terstruktur

 

4.2.   Pengembangan pelatihan untuk memenuhi persyaratan dalam unit ini perlu           dilakukan dengan hati-hati. Untuk pelatihan pra kejuruan umum, institusi           harus menyediakan pelatihan yang mempertimbangkan serangkaian           konteks industri seutuhnya tanpa bias terhadap sekor tertentu. Batasan           variable akan membantu dalam hal ini. Untuk sektor tertentu/khusus, pelatihan harus disesuaikan untuk memenuhi kebutuhan sektor tersebut. tingkat dasar (PC).

 

 2.3.7 Kompetensi Kunci

            Kompetensi kunci dalam bahasan ini dapat dilihat dalam tabel di bawah ini.

 

NO

KOMPETENSI KUNCI DALAM UNIT INI

TINGKAT

1

Mengumpulkan, mengorganisir dan menganalisa informasi

3

2

Mengkomunikasikan ide-ide dan informasi

2

3

Merencanakan dan mengorganisir aktivitas-aktivitas

3

4

Bekerja dengan orang lain dan kelompok

2

5

Menggunakan ide-ide dan teknik matematika

3

6

Memecahkan masalah

3

7

Menggunakan teknologi

3

Tabel 2 Kompetensi Kunci


BAB III

STRATEGI DAN METODE PELATIHAN

 

3.1        Strategi Pelatihan

Belajar dalam suatu Sistem Berbasis Kompetensi berbeda dengan yang sedang “diajarkan” di kelas oleh Pelatih. Pada sistem ini Anda akan bertanggung jawab terhadap belajar Anda sendiri, artinya bahwa Anda perlu merencanakan belajar Anda dengan Pelatih dan kemudian melakukan praktek sesuai dengan rencana yang telah dibuat.

 

Persiapan/perencanaan

  1. Membaca bahan/materi yang telah diidentifikasi dalam setiap tahap belajar dengan tujuan mendapatkan tinjauan umum mengenai isi proses belajar Anda.
  2. Membuat catatan terhadap apa yang telah dibaca.
  3. Memikirkan bagaimana pengetahuan baru yang diperoleh berhubungan dengan pengetahuan dan pengalaman yang telah Anda miliki.
  4. Merencanakan aplikasi praktik pengetahuan dan keterampilan Anda.

 

Permulaan dari proses pembelajaran

  1. Mencoba mengerjakan seluruh pertanyaan dan tugas praktik yang terdapat pada tahap belajar.
  2. Merevisi dan meninjau materi belajar agar dapat menggabungkan pengetahuan Anda.

 

Pengamatan terhadap tugas praktik

  1. Mengamati keterampilan praktik yang didemonstrasikan oleh Pelatih atau orang yang telah berpengalaman lainnya.
  2. Mengajukan pertanyaan kepada Pelatih tentang konsep sulit yang Anda temukan.

Implementasi

  1. Menerapkan pelatihan kerja yang aman.
  2. Mengamati indikator kemajuan personal melalui kegiatan praktik.
  3. Mempraktikkan keterampilan baru yang telah Anda peroleh.

 

Penilaian

Melaksanakan tugas penilaian untuk penyelesaian belajar Anda.

 

3.2        Metode Pelatihan

Terdapat tiga prinsip metode belajar yang dapat digunakan. Dalam beberapa kasus, kombinasi metode belajar mungkin dapat digunakan.

 

 

Belajar secara mandiri

Belajar secara mandiri membolehkan Anda untuk belajar secara individual, sesuai dengan kecepatan belajarnya masing-masing. Meskipun proses belajar dilaksanakan secara bebas, Anda disarankan untuk menemui Pelatih setiap saat untuk mengkonfirmasikan kemajuan dan mengatasi kesulitan belajar.

 

Belajar Berkelompok

Belajar berkelompok memungkinkan peserta untuk dating bersama secara teratur dan berpartisipasi dalam sesi belajar berkelompok. Walaupun proses belajar memiliki prinsip sesuai dengan kecepatan belajar masing-masing, sesi kelompok memberikan interaksi antar peserta, Pelatih dan pakar/ahli dari tempat kerja.

 

Belajar terstruktur

Belajar terstruktur meliputi sesi pertemuan kelas secara formal yang dilaksanakan oleh Pelatih atau ahli lainnya. Sesi belajar ini umumnya mencakup topik tertentu.

 


BAB IV

MATERI UNIT KOMPETENSI

MENULIS DAN MENGKOMPILASIKAN KODE PROGRAM SESUAI DENGAN KEBUTUHAN

4.1 Tujuan Instruksional Umum

 

  • Siswa dapat menulis kode program dengan benar sesuai dengan kebutuhan dan meminimalkan error atau bug pada programnya.
  • Siswa dapat mengkompilasi program.

 

 

4.2 Tujuan Instruksional Khusus

 

  • Siswa dapat mempergunakan variabel sesuai dengan kebutuhan.
  • Siswa dapat menulis kode program dengan aturan sintaks yang benar.
  • Siswa dapat membuat program yang terdiri dari modul-modul program untuk kemudian diintegrasikan.
  • Siswa dapat mempergunakan exception handling sebagai cara untuk mengatasi run time error.
  • Siswa dapat mengenali macam-macam kesalahan (bug) pada kode program.
  • Siswa dapat melakukan debugging atau mengatasi error dengan fasilitas yang ada pada tools pemrograman.

 

 

4.3 Uraian Singkat Materi

Menulis dan Mengkompilasikan Kode Program Sesuai dengan Kebutuhan

 

Materi ini akan menuntun peserta didik agar dapat menulis dan mengkompilasikan kode program sesuai dengan kebutuhan. Kode program yang dipergunakan adalah kode dalam bahasa pemrograman C/C++ dan Java.

Bagian pertama materi ini membahas tentang bagaimana memberi nama variabel yang benar, bagaimana menulis deklarasi dan inisialisasi variabel sesuai dengan persyaratan yang ada dalam tiap bahasa pemrograman, sampai dengan melakukan pengumpulan garbage pada variabel yang sudah tidak dipergunakan lagi.

Bagian kedua dari materi ini membahas tentang bagaimana membuat kode modul yang benar dan dapat dikompilasi. Pertamakali seorang pemrogram harus dapat merancang modul-modul apa saja yang akan terdapat di dalam program yang dibuatnya, kemudian mengembangkan kode program untuk setiap modul tersebut tanpa melupakan standar perangkai (coupling) dari modul tersebut terhadap modul-modul lainnya, sehingga setiap modul dapat diintegrasikan dan berjalan dengan baik. Di samping itu dibahas pula tentang array dinamis, tabel dan struktur data pada modul yang dikembangkan.

Bagian yang ketiga membahas tentang bagaimana cara menguji modul yang benar, sehingga modul tersebut dapat dikompilasikan dan menghasilkan output program yang diharapkan. Hal-hal penting yang harus diuji adalah pengujian setiap rutin (disebut juga dengan fungsi, prosedur atau method), pengujian array apakah array tersebut melanggar batas atau tidak, serta menguji struktur kontrol baik kontrol percabangan (branch) maupun perulangan (loop).

Bagian keempat dari materi ini membahas secara mendalam tentang exceoption. Mulai dari mengenalkan ciri-ciri kode program yang mengandung exception dan cara menanganinya, ampai dengan ketercakupan semua exception. Jadi di sini pemrogram harus dapat menentukan pada bagian mana kode program dapat menimbulkan exception dan dapat menangani exception tersebut dengan benar.

Bagian kelima atau terakhir dari materi ini membahas tentang teknik-teknik debugging dan penanganan error yang mungkin terjadi pada kode program. Pada bagian ini dibahas pula bagaimana mempergunakan fasilitas penanganan error yang sudah ada di dalam tools bahasa pemrograman serta bagaimana melakukan penelusuran (trace) pada kode program ketika melakukan debugging.

4.4 Beberapa Pengertian dalam Unit Kompetensi Ini :

 

Beberapa pengertian yang dipergunakan di dalam unit kompetensi ini, yaitu :

 

  1. Kode program, adalah baris-baris perintah dengan bahasa pemrograman tertentu yang dibuat oleh pemrogram dengan tujuan utuk membangun suatu perangkat lunak yang memiliki manfaat.
  2. Kompilasi, adalah proses penerjemahan bahasa pemrograman yang berupa kode-kode ke dalam bahasa mesin komputer agar dapat dijalankan oleh komputer sesuai dengan perintah-perintah yang terdapat di dalamnya, biasanya akan menghasilkan file baru yang executable.
  3. Deklarasi, suatu cara untuk mengenalkan variabel pada komputer, yaitu dengan menyebutkan tipe datanya dan nama dari variabel tersebut untuk kemudian disiompan dalam memori komputer.
  4. Inisialisasi, suatu cara untuk mendeklarasikan variabel yang disertai dengan pemberian nilai awal dario variabel tersebut.
  5. Array, variabel-variabel yang memiliki nama sama dan tipe data yang sama namun memiliki indeks yang berbeda agar dapat menampung lebih dari satu data yang dibatasi oleh batas array.
  6. Rutin (Fungsi/Prosedur/Method), adalah kumpulan perintah-perintah pemrograman yang mengerjakan suatu tugas tertentu dan dicakup dalam suatu nama tertentu.
  7. Modul, bagian khusus dari program yang dipisahkan berdasarkan kegunaan dari kode-kode program yang terdapat di dalamnya, misalnya modul koenksi database berisi fungsi-fungsi yang berhubungan dengan koneksi database.
  8. Error, suatu keadaan di mana terjadi kesalahan pada kode program sehingga kode program tersebut tidak dapat dikompilasi.
  9. Exception, suatu keadaan abnormal dari program di mana program tidak dapat berjalan dengan baik karena suatu keadaan di luar kemampuannya, misalnya program meminta file A, tetapi file A terhapus dari komputer, maka program akan terhenti secara abnormal.
  10. Debugging, suatu cara untuk menelusuri error dari suatu kode program.
  11. Terasi (Trace), suatu cara untuk melihat jalannya program baris per baris.
  12. Breakpoint, suatu bagian dari kode program yang diberi tanda agar ketika program mencapai tanda tersebut akan masuk ke dalam mode trace.

 

 

4.5 Informasi Masing-Masing Elemen Kompetensi

4.5.1 Mendeklarasikan dan menetapkan variable-variabel

1) Pengetahuan Kerja

 

Mendeklarasikan dan Menetapkan Variabel-variabel

 

Di dalam pemrograman, variabel adalah suatu bagian dari program yang sangat vital. Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan.

Untuk memperoleh nilai dari suatu variabel, maka digunakanlah pernyataan penugasan (assignment statement) yang memiliki sintaks sebagai berikut:

Pada C/C++ dan Java:

variabel = ekspresi;

 

 

Penamaan Variabel Sesuai dengan Kaidah dan Benar

 

Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :

  1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C dan Java bersifat case-sensitive artinya huruf kapital dan kecil dianggap berbeda, Jadi antara nim, NIM dan Nim dianggap berbeda. Sedangkan pada bahasa Pascal dan Basic bersifat non-case sensitive, artinya huruf kapital dan huruf kecil dianggap sama.
  2. Tidak boleh mengandung spasi.
  3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb.
  4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilaiBudi, dsb.

Contoh penamaan variable yang salah : %nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, jari-jari, dsb.

Untuk bahasa pemrograman Java, ada aturan khusus dalam penamaan class, variabel dan method yang terdapat di dalam programnya, hal ini sangat membantu untuk pengerjaan program dalam tim. Aturan penamaan ini sudah diakui oleh komunitas Java internasional. Sistem penamaan tersebut adalah:

n  Penamaan Class

¨  Huruf pertama setiap kata harus huruf besar. Contoh:

n  HelloWorld

n  Employee

n  BankAccount

n  Penamaan Method

¨  Huruf pertama setiap kata harus huruf besar, kecuali kata pertama. Contoh:

n  getEmployeeName()

n  setSpeedLimit()

n  accelerate()

n  Penamaan Field atau variabel

¨  Huruf pertama setiap kata harus huruf besar, kecuali kata pertama. Contoh:

n  employeeName

n  employeeAccountNumber

n  address

 

Variabel-variabel Dideklarasikan Menurut Persyaratan

 

Sebelum mengerti cara mendeklarasikan variabel, ada baiknya kita mengetahui terlebih dahulu tipe-tipe data yang ada pada setiap bahasa pemrograman (Tabel 4.1 untuk Bahasa Pemrograman C/C++).

 

Tabel 4.1 Tipe Data pada C/C++ (Elemen Kompetensi 1)

 

TIPE DATA UKURAN MEMORI (BYTE) RANGE NILAI ANGKA DI BELAKANG KOMA
char 1 -128 s/d +127 -
int 2 -32768 s/d +32767 pada Versi 8 bit

-2147438648 s/d +214743867 Pada Versi 16 bit

-
short 2 -32768 s/d +32767 pada Versi 8 bit

-2147438648 s/d +214743867 Pada Versi 16 bit

-
long 4 -2147438648 s/d +214743867 -
float 6 3.4  * 10e-38 s/d + 3.4  * 10e38 6-7
double 8 1.7 * 10e-308 s/d 1.7 * 10e308 15-16
long double 10 3.4 * 10e–4932 s/d 3.4 * 10e4932 19
unsigned char 1 0 s/d 255 -
unsigned int 2 0 s/d 65535 -
unsigned short 2 0 s/d 65535 -
unsigned long 4 0 s/d 4294967295 -

 

Pada bahasa pemrograman C/C++ utnuk mendeklarasikan suatu variabel dengan tipe string digunakan array dari char, contohnya char nama[40], pada contoh ini, bahasa C/C++ akan mempersiapkan variabel string sebanyak 39 karakter, karena karakter terakhir dipergunakan untuk karakter ‘’ (end of string).

Java memiliki tipe data yang dapat dikategorikan menjadi dua kelompok, yaitu tipe data primitif dan referensi.

 

1. Tipe Data Primitif

Delapan macam tipe data primitif dalam pemrograman Java, yaitu :

 

a. Integer ( Bilangan Bulat )

Integer merupakan tipe data numerik yang digunakan apabila tidak berurusan dengan pecahan atau bilangan desimal. Tipe data numerik yang termasuk integer adalah seperti pada Tabel 4.2.

 

Tabel 4.2 Tipe Data Numerik Integer pada Java (Elemen Kompetensi 1)

 

 

Bilangan integer biasanya menggunakan int, dan bukan byte, short maupun long. Bilangan integer juga mengenal nilai positif dan negatif (signed number). Tipe data byte dan short hanya digunakan pada aplikasi khusus yang memperhatikan penggunaan memri. Sedangkan long jarang digunakan karena jarang memerlukan bilangan sebesar kapasitas long.

 

b. Floating Point ( Bilangan Pecahan )

Floating Point digunakan untuk menangani bilangan desimal atau perhitungan yang lebih detail dibanding integer. Ada dua macam floating point seperti yang tertera pada Tabel 4.3.

 

 

 

 

 

 

 

 

 

Tabel 4.3 Tipe Data Floating Point pada Java (Elemen Kompetensi 1)

 

 

Semua bilangan pecahan atau desimal dalam Java tanpa diakhiri huruf f akan dianggap sebagai double. Sedangkan bilangan yang ingin dikategorikan sebagai float harus diakhiri dengan huruf F.

Misalnya : 4.22 F atau 2.314f.

Sedangkan untuk bilangan double, bisa menambah dengan huruf D, karena secara default bilangan dengan koma atau pecahan atau desimal akan dianggap sebagai double.

 

c. Char

Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ‘ ( petik tunggal ). Char berbeda dengan String, karena String bukan merupakan tipe data primitif, tetapi sudah merupakan sebuah objek. Tipe char mengikuti aturan unicode, sehingga dapat menggunakan kode /u kemudian diikuti bilangan dari 0 sampai 65535, tetapi yang biasa digunakan adalah bilangan heksadesimal dari 0000 sampai FFFF.

Misalnya : ‘\u123’

 

d. Boolean

Dalam Java dikenal tipe data boolean yang terdiri dari dua nilai saja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program.

 

2. Tipe Data Referensi

Kelebihan pemrograman berorientasi objek adalah dapat mendefinisikan tipe data baru yang merupakan objek dari class tertentu. Tipe data ini digunakan untuk mereferensikan objek atau class tertentu, seperti String.

Cara untuk mendeklarasikan variabel pada C/C++ dan Java sama persis, hanya saja untuk tipe data tertentu cara mendeklarasikannya agak berbeda.

Bentuk umum deklarasi variabel adalah :

Tipe_variabel nama_variabel;

Beberapa Contoh yang benar dan sama antara C/C++ dan Java untuk mendeklarasikan variabel adalah sebagai berikut :

int bilangan;

char karakter;

double bildesimal;

long jumlahpenduduk;

Setelah mendeklarasikan variabel dengan tipe data tersebut, selanjutnya memberikan nilai variabel tersebut dengan tanda ’=’ .

bilangan = 17;

karakter = ‘k’;

bildesimal = 9.1987;

jumlahpenduduk = 245123568;

Dapat juga mendeklarasikan dan memberikan nilai dalam satu baris, hal ini disebut dengan Inisialisasi.

int bilangan = 17;

char karakter = ‘k’;

double bildesimal = 9.1987;

long jumlahpenduduk = 245123568;

Beberapa cara yang berbeda antara bahasa pemrograman C/C++ dan Java untuk mendeklarasikan, mengisi (assign) dan menginisialisasi variabel terdapat pada tabel 4.4.

 

Tabel 4.3 Pendeklarasian Variabel pada C/C++ dan Java (Elemen Kompetensi 1)

 

TIPE DATA CARA CONTOH PADA C/C++ CONTOH PADA JAVA

float

Deklarasi float  bildesimal; float bildesimal;
Pengisian bildesimal = 9.1987; bildesimal =  9.1987f;
Inisialisasi float  bildesimal = 9.1987; float  bildesimal = 9.1987f;

String (array of char)

Deklarasi char nama[40]; String nama;
Pengisian nama = “Namaku”; nama = “Namaku”;
Inisialisasi char nama[40] = “Namaku”; String nama = “Namaku”;

boolean

Deklarasi Tidak ada Tipe data Boolean Pada C/C++ boolean status;

 

Pengisian status = true;

 

Inisialisasi boolean status = true;

 

 

Variabel-Variabel Dinamis yang Garbage Dikumpulkan Setelah Digunakan

 

Dalam bahasa C/C++ dikenal istilah destruktor. Destruktor adalah kebalikan dari konstruktor. Jika konstruktor dijalankan secara otomatis pada saat obyek pertama kali dibuat di memori, maka dalam bahasa pemrograman C/C++ destruktor akan dijalankan pada saat obyek akan dihapus dari memori.

Contoh:

 

#include <iostream.h>

class Coba {

char * strPointer;

Coba();     //konstruktor

~Coba();    //destruktor

};

Coba::Coba(){

strPointer=0;     //konstruktor menginisialisasi atribut

}

Coba::~Coba(){

if(strPointer)    //jika atribut masih terisi kumpulkan dan hapus

delete [] strPointer;

}

 

Pada bahasa pemrograman Java tidak dikenali adanya destruktor. Ini disebabkan objek dibuat secara dinamis pada saat runtime dan kita tidak perlu menulis perintah untuk menghapus suatu objek dari memori, hal ini disebut dengan garbage collection. Namun kita masih bisa memaksa Java untuk melakukan proses garbage collection, yaitu dengan perintah:

 

System.gc();

 

Sewaktu kita melakukan socket programming, kita harus memastikan bahwa resource-resource ini dibebaskan agar dapat dipergunakan oleh program lainnya sebelum obyeknya sendiri dibebaskan dari memori. Untuk keperluan ini kita dapat menggunakan method finalize(). Sesaat sebelum obyek tersebut dihapus dari memori maka Java runtime akan memanggil method finalize() dari obyek tersebut. Bentuk pendeklarasiannya adalah sebagai berikut:

 

protected void finalize() {

… //implementasi

}

 

2) Ketrampilan Kerja

Ketrampilan kerja diperlukan untuk mendukung kerja dan beberapa ketrampilan yang diperlukan telah dituangkan dalam butir pengetahuan kerja di atas.

 

3) Sikap Kerja

Sikap kerja ditunjukkan ketika beraktivitas di lingkungan kerja, yaitu :

1. Berlatih penamaan variabel yang benar sesuai dengan persyaratan

2. Variabel dinamis yang digunakan dikumpulkan

 

4.5.2  Membuat Kode Modul

1) Pengetahuan Kerja

Suatu program yang besar dapat saja terdiri dari satu modul besar yang mencakup keseluruhan program, namun hal ini akan menyulitkan pada saat perbaikan dan maintenance. Program besar tersebut sebaiknya terdiri dari berbagai macam modul yang terpadu dan diintegrasikan menjadi satu kesatuan.

Modul-modul ini dapat direpresentasikan sebagai class atau library. Khusus pada pemrograman berorientasi obyek, modul tersebut dapat dibuat dalam class. Kali ini kita akan mengetahui bagaimana menentukan dan menyiapkan suatu modul sehingga dapat diintegrasikan dalam suatu program yang besar.

 

Kelas Instansi atau Kode Modul-modul Dikembangkan Setelah             Ditetapkan

 

Sebelum mengembangkan sebuah kode, hal pertama yang harus dilakukan adalah mendesain terlebih dahulu class atau modul dari program tersebut, sehingga jelas, class seperti apa yang akan dikembangkan.

Kita ambil contoh suatu program besar seperti program sistem penggajian karyawan. Di mana pada program ini terdiri dari tiga macam class atau modul besar, yaitu:

1. Class atau Modul Data Karyawan

2. Class atau Modul Presensi Karyawan

3. Class atau Modul Perhitungan Gaji

Untuk mempersiapkan class tersebut kita juga harus memikirkan kira-kira atribut dan method apa saja yang ada pada setiap class atau modul. Cara terbaik untuk menetapkan isi dari class atau modul tersebut adalah dengan mendefinisikan kebutuhan pada setiap class atau modulnya, contohnya:

  1. Data karyawan membutuhkan database untuk data diri karyawan, selain itu membutuhkan pula method untuk tambah data, cari data, modifikasi  (edit) data dan hapus data.
  2. Presensi Karyawan membutuhkan Data Karyawan yang akan dipresensi, kemudian membutuhkan pula method untuk mencatat jam masuk dan mencatat jam keluar karyawan.
  3. Perhitungan Gaji dibuat berdasarkan Presensi Karyawan, di mana method yang ada akan menghitung gaji pokok berdasarkan presensi, tunjangan dan potongan.

Setelah mengetahui kebutuhan tiap-tiap class dan modul maka mulailah dirancang bagan dari tiap modul dalam program ini yang masing-masing berisi atribut dan method yang dibutuhkan dan juga ketergantungannya dengan class atau modul lainnya seperti pada Gambar 4.1.

 

 

Gambar 4.1 Bagan  Sistem Penggajian Karyawan (Elemen Kompetensi 2)

 

Setelah bagan class atau modul tersebut ditentukan dan disiapkan, maka program dapat dikembangkan.

Pengembangan Pada Class atau modul DataKaryawan:

 

 

 

 

 

 

 

 

 

Class DataKaryawan {

public String stringKoneksi;

int koneksi(String StringKoneksi) {

}

int tambahData(String strQuery){

}

int editData(String strQuery){

}

Table cariData(String strQuery){

}

int hapusData(String strQuery){

}

}

 

Pengembangan Pada Class atau modul PresensiKaryawan:

 

Class PresensiKaryawan extends DataKaryawan{

public String IDKaryawan;

String ambilIDKaryawan(String strQuery){

}

int jamMasuk(String IDKaryawan){

}

int jamKeluar(String IDKaryawan){

}

}

 

Pengembangan Pada Class atau modul DataKaryawan:

 

Class PresensiKaryawan extends PresensiKaryawan{

public String idPresensi;

String ambilIDPresensi(String strQuery){

}

double hitungGaji(String IDPresensi){

}

}

 

 

Kepaduan dan Standar Perangkai/Coupling Dipenuhi Modul-modul

 

Agar setiap modul yang ada dapat dirangkai atau diintegrasikan dengan benar, maka perlu ada standar yang disepakati oleh tim yang sedang mengembangkan program. Standar tersebut dapat dibuat mulai dari nama variabel, nama method maupun nama class.

Untuk nama variabel, misalnya untuk variabel bertipe integer setiap nama variabelnya ditambah awalan ‘i’, contohnya iLuasLingkaran, iJumlahMahasiswa dll, untuk String variabelnya ditambah awalan “str”, contohnya strNamaKaryawan, strAlamatKaryawan dll. Jadi setiap anggota tim akan mengetahui apabila ada awalan ‘i’ pada awal variabel, maka variabel tersebut pasti bertipe integer dan diperlakukan sebagai integer, begitu pula dengan awalan “str” untuk variabel bertipe data String.

Kadang kita berpendapat, membuat program akan memakan waktu paling lama daripada memperbaiki satu bagian program yang telah kita buat. Ternyata pendapat ini tidak sepenuhnya benar.

Menurut penelitian yang telah dilakukan oleh banyak pemrogram di seluruh dunia, ternyata memperbaiki, menambah, dan menghilangkan bug memakan waktu hampir 3 kali lipat daripada membuat program tersebut dari awal. Dari data yang disurvey oleh Annual Meeting Conference of the Software Maintenance Association pada tahun 1990, 74% waktu penulisan program dari banyak pemrogram di seluruh dunia adalah untuk memperbaiki, menambah atau men-debug program yang dibuatnya sendiri atau dibuat orang lain, jadi penulisan program itu sendiri hanya memakan waktu 26% dari keseluruhan waktunya.

Banyak pemrogram percaya bahwa tujuan dari membuat program adalah menyediakan satu set perintah yang dapat dimengerti oleh komputer tanpa mempedulikan apakah manusia dapat mengerti perintah-perintah tersebut atau tidak. Konsep ini salah. Program yang hanya dapat dimengerti mesin akan memiliki beberapa masalah seperti berikut:

  1. Program tersebut akan sulit untuk diperbaiki karena kadangkala bahkan penulisnya sendiri lupa atau tidak dapat mengerti maksud dari baris-baris perintah dalam programnya.
  2. Modifikasi dan penambahan juga sulit dilakukan karena pemrogram lain yang bertugas untuk melakukan hal ini akan menghabiskan banyak waktu untuk mengerti maksud dari program tersebut.

Coba lihat satu baris program yang ditulis oleh seorang pemrogram yang sangat jago dan coba mengerti apa maksud dari baris program ini:

 

while (‘\n’ != (*p++ =*q++));

 

Cukup sulit untuk dimengerti bukan? Tetapi mungkin kalau program ini kita jabarkan dengan lebih banyak baris dan ditambah komentar yang tepat kita akan lebih mengerti maksud dari baris program yang tertera di atas.

 

while(1)    //perulangan tidak terbatas

{

*pointer_tujuan = *pointer_sumber;

if(*pointer_tujuan == ‘\n’)

{

//Keluar dari perulangan bila menemukan

//karakter enter atau end of line (‘\n’)

break;

}

*pointer_tujuan++;

*pointer_sumber++;

}

 

Komputer tidak akan peduli dengan versi mana yang dipakai hasilnya akan sama saja. Compiler yang baik akan membuat bahasa mesin yang sama untuk kedua macam program di atas. Namun manakah yang lebih kita mengerti?

Memang program yang kedua jauh lebih banyak memakan baris instruksi dan sering dinilai kurang efektif. Namun, baris-baris program yang kedua lebih mudah dimengerti bahkan oleh orang-orang yang baru saja belajar bahasa pemrograman C/C++. Mereka bisa tahu kalau maksud baris-baris program ini adalah untuk memindahkan isi data dari sebuah sumber ke sebuah tujuan sampai ditemukannya karakter end of line (‘\n’).

Sebuah program yang baik dapat dimengerti dengan mudah baik oleh komputer maupun oleh manusia yang membacanya. Untuk itu dibutuhkan gaya pemrograman yang baik.

Sebuah program yang memiliki komentar yang tepat, dan terlihat sederhana adalah sebuah seni yang berkualitas tinggi. Belajar bagaimana menuliskan komentar yang tepat sama saja dengan belajar bagaimana cara membuat program yang baik.

Khusus untuk penulisan komentar sebenarnya tidak ada aturan khusus untuk menuliskannya kita dapat menulis komentar, tetapi ada beberapa cara khusus untuk menuliskan komentar:

  1. Kotak komentar, biasanya berisi informasi umum dan menyeluruh tentang program yang dibuat, biasanya terdapat pada awal program atau awal dari bagian-bagian program yang dirasa penting, misalnya awal dari satu paket fungsi yang saling berkaitan. Biasanya bagian ini berisi:
    1. Judul Program, berisi judul dari program yang sedang kita buat.
    2. Nama file, berisi nama file di mana source code program ini berada, dapat pula berisi nama-nama file yang berhubungan dengan source code program ini.
    3. Penulis, berisi nama dan mungkin saja deskripsi singkat penulis dari program atau yang bertanggung jawab atas pembuatan program tersebut.
    4. Tujuan, berisi tujuan pembuatan dari program dan apa yang ingi dicapai oleh program tersebut.
    5. Cara kerja: Deskripsi singkat tentang bagaimana cara kerja program, atau apa yang harus dilakukan pengguna agar program dapat berjalan dengan semestinya.

Contoh:

 

/***************************************************************

Komentar-komentar

***************************************************************/

 

//—————————————————————————

//                    Komentar-komentar

//—————————————————————————

 

  1. Baris komentar, biasanya berisi komentar atau catatan khusus tentang apa yang sedang dilakukan oleh baris program yang sedang berjalan sehingga mempermudah proses debugging.

Contoh:

 

/*              Komentar-komentar yang lebih dari satu baris                */

 

//              Komentar-komentar dalam satu baris

 

Kita dapat memilih jenis komentar mana yang kita suka, namun hendaknya pemakaian komentar tersebut konsisten dan tidak bercampur aduk sehingga mudah untuk dimengerti.

Selain dari hal-hal di atas,  komentar juga dapat berisi:

  1. Referensi, bila ada baris-baris program yang tidak berasal dari buah pikiran sendiri, atau kita ambil dari suatu sumber, perlu adanya komentar yang menyatakan penulis sebenarnya dari code tersebut sebagai kode etik sesama pemrogram, atau bila ada surat ijinnya kita dapat menuliskan pula nomor dari surat ijinnya untuk menghindari tuntutan hukum di kemudian hari.
  2. Format file, berisi daftar dari format-format file yang dibutuhkan agar program dapat berjalan dengan baik.
  3. Batasan, tuliskan batasan-batasan yang dimiliki oleh program seperti misalnya “program ini tidak memeriksa ekstensi file,” atau “data yang di-input harus dalam format yang benar baru dapat diproses.”
  4. Revisi, bila ada perbaikan di dalam program, sebaiknya dituliskan siapa yang memperbaiki, tanggal perbaikan, tujuan perbaikan dan apa saja yang diperbaiki.
  5. Penambahan, sama seperti Revisi, bila ada penambahan dari program aslinya, perlu dituliskan hal-hal seperti yang tertulis bila ada revisi.
  6. Penanganan Error, bila program dapat mendeteksi error, maka perlu dituliskan cara program mengatasinya, atau apa yang dapat dilakukan oleh pemrogram untuk mengatasinya.
  7. Catatan Khusus, berisi catatan khusus atau informasi penting yang tidak masuk dalam suatu kategori tertentu misalnya ucapan terimakasih atau versi sebelumnya dari program tersebut.

Komentar memang harus menjelaskan dengan rinci apa yang perlu diketahui oleh pemrogram, tetapi jangan terlalu banyak memberikan komentar seperti menuliskan paragraf yang terlalu panjang atau kata-kata yang terlalu puitis, hal ini malah akan membuat orang malas membaca dan meneliti program yang kita buat. Oleh karena itu, tuliskan komentar yang benar-benar penting dan diperlukan agar program yang kita buat benar-benar dapat dimengerti.

Hal ini berlaku baik untuk pemrograman dengan bahasa C/C++ maupun dengan Java. Dengan mengikuti ketentuan-ketentuan tersebut, maka standar kepaduan tiap modul dapat dipenuhi dan tidaklah menjadi penghalang bagi kerjasama tim dalam mengintegraikan setiap modul dan menyelesaikan sebuah program besar.

 

 

Array Dinamis, Table, dan Struktur Memori Dikembangkan

 

Sebelumnya kita hanya mengenal array biasa. Seperti dalam C++, cukup dengan menggunakan kurung siku ’[ ’dan ’]’. Array semacam ini bersifat Statis dan terbatas, oleh karena itu perlu dibuat suatu cara untuk mendefinisikan aray yang dinamis. Hal ini telah dapat dikerjakan dalam pemrograman java dengan adanya Collection. ArrayList, HashSet, LinkedList, dan Vector merupakan beberapa contoh dari sekian banyak implementasinya. Pada bahasa pemrograman Java, collection berkembang dengan yang namanya generic.

Mari kita perhatikan suatu contoh array statis pada penggalan source code berikut:

 

int[] arrayInt = new int[3];

String[] arrayString = new String[5];

 

String[] temans = new String[2];

temans[0] = new Orang(“Jasson”);

temans[1] = new Orang(“Hettyca”);

temans[2] = new Orang(“Yosua”);

 

Dengan array biasa seperti di atas, jika kita telah mendeklarasikan temans isinya 2, maka itulah kapasitas maksimal dari array bernama temans. Bagaimana jika kita ingin menambahkan orang ketiga? Pasti akan terjadi exception yaitu ArrayIndexOutOfBoundsException atau dengan kata lain, indeks telah melebihi batas maksimal yang telah ditetapkan sebelumnya. Lain dengan collection, ArrayList misalnya:

 

 

ArrayList temans = new ArrayList();

temans.add(new String(“Jasson”));

temans.add(new String(“Hettyca”));

for (int i =0; i<temans.size(); i++){

System.out.println((String)temans.get(i));

}

 

temans.add(new String(“Yosua”)); // pada ArrayList data bisa ditambah terus

for (int i =0; i<temans.size(); i++){

System.out.println((String)temans.get(i));

}

 

Masalah terpecahkan dengan kapasitas ArrayList yang bisa bertambah terus.

 

 

2) Ketrampilan Kerja

Ketrampilan kerja diperlukan untuk mendukung kerja dan beberapa ketrampilan yang diperlukan telah dituangkan dalam butir pengetahuan kerja di atas.

 

3) Sikap Kerja

Sikap kerja ditunjukkan ketika beraktivitas di lingkungan kerja, yaitu :

1. Berlatih mengembangkan kelas instansi

2. Mempelajari coupling

3. Mengembangkan array dinamis, table dan struktur memori

 

4.5.3 Menguji Setiap Modul

1) Pengetahuan Kerja

 

Agar mengetahui apakah setiap modul yang ada dapat berjalan dengan baik atau tidak, maka diperlukan proses pengujian modul. Apabila setiap modul telah berjalan dengan baik, maka program dapat berjalan dengan baik pula. Oleh karena itu pada bagian ini akan dibahas beberapa proses untuk pengujian modul sehingga dapat dipastikan bahwa modul dapat bekerja dengan baik.

 

Pengujian Rutin Dikembangkan untuk Memverifikasi bahwa Kode      yang Dihasilkan Memenuhi Persyaratan

 

Rutin atau setiap method yang ada harus diuji apakah kode yang dihasilkan  sudah memenuhi persyaratan atau belum. Rutin tersebut bisa terdiri dari fungsi maupun prosedur, oleh karena itu perlu diketahui bagaimana penggunaan fungsi dan prosedur yang tepat.

Fungsi atau prosedur merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi merupakan elemen utama dalam bahasa C/C++ maupun Java. Dalam setiap program bahasa C/C++ dan Java, minimal terdapat satu fungsi yaitu fungsi main() agar program dapat dijalankan.

Keuntungan penggunaan fungsi dalam program yaitu program akan memiliki struktur yang jelas (mempunyai readability yang tinggi) dan juga akan menghindari penulisan bagian program yang sama. Perbedaan atara fungsi dan prosedur adalah fungsi akan mengembalikan suatu nilai tertentu, sedangkan prosedur tidak mengembalikan nilai apa-apa.

Sebelum dapat digunakan (dipanggil), suatu fungsi atau prosedur harus dideklarasikan dan didefinisikan terlebih dahulu. Bentuk umum pendeklarasian fungsi adalah :

 

tipe_fungsi nama_fungsi(parameter_fungsi);

 

 

Pendeklarasian ini sering disebut dengan prototype fungsi. Dengan adanya prototype fungsi, maka fungsi dapat dibuat dan dipanggil di bagian manapun dari program yang kita buat.

Sedangkan bentuk umum pendefinisian fungsi adalah :

 

tipe_fungsi nama_fungsi(parameter_fungsi){

//isi dari fungsi

…………

}

 

Dalam pembuatan fungsi, ada beberapa hal yang perlu kita perhatikan, diantaranya:

  • Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai keluaran bertipe integer.
  • Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian penentu tipe fungsi.
  • Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void. Fungsi dengan tipe void inilah yang disebut dengan prosedur.
  • Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return. Pernyataan ini mengembalikan nilai akhir dari suatu fungsi kepada pemanggilnya, nilai yang dihasilkan harus sesuai dengan tipe fungsi yang dideklarasikan sebelumnya. Untuk prosedur tidak membutuhkan pernyataan return ini, karena memiliki tipe fungsi void yang tidak memrlukan nilai balik.
  • Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya, sedangkan prosedur tidak menghasilkan nilai balik bagi fungsi pemanggilnya.

Contoh penggunaan fungsi dalam bahasa C/C++ yang benar sehingga menjadi rutin yang dapat dijalankan oleh program adalah sebagai berikut:

 

#include “stdio.h”

#include “conio.h”

 

//prototype fungsi tambah(), ada titik koma

float tambah(float x, float y);

 

void main(){

float a, b, c;

clrscr();

printf(“A = “);

scanf(“%f”, &a);

printf(“B = “);

scanf(“%f”, &b);

c = tambah(a, b);       //pemanggilan fungsi tambah()

printf(“A + B = %.2f”, c);

getch();

}

 

//Definisi fungsi , tanpa titik koma */

float tambah(float x, float y){

//Nilai balik fungsi

return (a+b);

}

Sedangkan pada bahasa pemrograman Java, tiap fungsi yang terdapat dalam class tertentu dapat diuji dengan menggunakannya dalam sebuah class public yang berisi fungsi main. Contoh kode untuk itu adalah:

 

class FungsiMatematika {

//Definisi fungsi , tanpa titik koma */

float tambah(float x, float y) {

//Nilai balik fungsi

return (a+b);

}

 

}

 

public class Utama {

public static void main(String[] args){

float a=17, b=9, c;

FungsiMatematika fm = new FungsiMatematika();

c = fm.tambah(a, b);    //pemanggilan fungsi tambah()

System.out.println(“A + B = %.2f”, c);

}

}

 

Parameter adalah suatu variabel yang terdapat pada pendeklarasian fungsi atau prosedur dan dapat diakses melalui pemanggilnya. Parameter di dalam fungsi ada dua macam, yaitu parameter formal dan parameter actual.

  1. Parameter Formal

variabel yang ada pada daftar parameter dalam definisi fungsi. Dalam contoh program pertambahan pada Program 10.1 parameter formal terdapat pada pendefinisian fungsi.

 

float tambah(float x, float y) //parameter formal

{

return (a+b);

}

 

  1. Parameter Aktual

variabel (parameter) yang dipakai dalam pemanggilan fungsi. Pada Program 10.1 parameter aktual terdapat pada pemanggilan fungsi.

 

void main(){

c = tambah(a, b); //parameter aktual

}

 

Di dalam pemakaian fungsi, parameter tersebut dapat dilewatkan di antara fungsi yang satu dengan fungsi yang lainnya, sehingga data yang ada dapat diproses oleh fungsi manapun. Cara melewatkan atau memanggil suatu parameter dalam Bahasa C ada dua cara yaitu :

  • Pemanggilan Secara Nilai (Call by Value)
    • Call by value akan menyalin nilai dari parameter aktual ke parameter formal.
    • Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya.
    • Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi.
    • Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya.
    • Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil.
    • Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuksebuah variabel, elemen array atau konstanta saja.
  • Pemanggilan Secara Referensi (Call by Reference)
    • Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi.
    • Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya.
    • Fungsi yang menerima kiriman alamat ini makan menggunakan alamat yang sama untuk mendapatkan nilai datanya.
    • Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi.
    • Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.
    • Pengiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan.

Fungsi rekursif adalah sebuah fungsi yang memanggil dirinya sendiri sampai pada batasan tertentu. Fungsi ini bersifat seperti perulangan. Fungsi rekursif akan berjalan dengan baik apabila ada dua hal khusus seperti berikut ini :

  1. Terminator

Di dalam fungsi rekursif harus ada suatu batas yang akan mengakhiri fungsi tersebut, hal ini sering disebut dengan terminator. Jadi apabila nilai dari parameter pada fungsi rekursif telah mencapai batas ini, maka fungsi rekursif akan berhenti.

  1. Increment / Decrement

Fungsi rekursif harus memiliki suatu parameter yang bersifat increment (meningkat) atau decrement (menurun) sesuai dengan batasan terminator yang disertakan.

 

Struktur Memori yaitu Array Diuji untuk Pelanggaran Batas

 

Untuk mencegah terjadinya pelanggaran bata pada Array, maka cara yang paling tepat adalah melihat deklarasi awal dari array. Misalnya bila deklarasi indeks array pada awalnya adalah 5, maka untuk pengaksesan array tidak boleh melebihi angka 4 (indeks array dimulai dari 0). Pada Bahasa C/C++ terkadang menggunakan deklarasi awal bagi string sebagaio berikut:

 

char kalimat[50];

 

Namun pada kenyataannya isi dari string kalimat yang merupakan array dari karakter terebut adalah sebagai berikut:

 

kalimat = “Selamat Siang”;

 

Maka array yang dipergunakan tidak lagi Dario indeks 0 sampai dengan 49, namun sesuai dengan panjang kalimat “Selamat Siang” yaitu dari indeks 0 sampai dengan 12, apoabila kita haru menghitungnya tentu akan cukup memakan waktu, oleh karena itu kita gunakan sebuah fungsi dari pustaka string.h yaitu strlen untuk menghitung panjang array ini. Caranya adalah sebagai berikut:

 

int panjangKalimat=strlen(kalimat);

 

Setelah dilakukan perintah tersebut, maka kita akan mendapatkan hasil angka 13 pada variabel panjangKalimat, yang merupakan jumlah karakter yang diinisialisasi yang ada pada array kalimat.

Pada C/C++ strlen hanya dapat dilakukan untuk array bertipe char. Lain halnya dengan Java, untuk mengetahui berapa banyak jumlah elemen pada karakter pada array dengan tipe apapun, digunakan suatu fungsi bawaan yang disebut length. Cara penggunaannya adalah sebagai berikut:

 

class Coba{

public static void main(String []args){

int []angka={17,9,19,87};

int element = angka.length;

System.out.println(“Banyaknya Elemen Array:”+element);

}

}

 

Bila program dijalankan akan menampilkan Output “banyaknya Elemen Array:4”, maka dengan begitu pengaksesan array yang melewati batas dapat dicegah.

Cara lain di dalam Java untuk mengetahui apakah array melewati batas atau tidak adalah dengan munculnya eception IndexArrayOutOfBounds, jika exception ini muncul berarti ada pengaksesan array yang melewati batas.

 

Struktur Kontrol atau Loop Diakhiri

Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan, bentuk umumnya adalah sebagai berikut:

 

if(kondisi)

{

//blok pernyataan dalam if akan dijalankan

//kalau kondisi bernilai benar (bernilai logika 1)

}

 

Untuk lebih jelasnya bisa kita lihat dalam diagram flowchart pada Gambar 4.2.

 

 

Gambar  4.2 Flowchart If

 

Dalam struktur kondisi if…..else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut :

 

if(kondisi)

{

// blok pernyataan dalam if akan dijalankan

// kalau kondisi bernilai benar (bernilai logika 1)

}

else

{

// blok pernyataan dalam else akan dijalankan

// kalau kondisi bernilai salah (bernilai logika 0)
}

Untuk lebih jelasnya bisa kita lihat dalam diagram flowchart pada Gambar 4.3.

Gambar  4.3. Flowchart If-Else

Sampai disini tentunya kita sudah bisa menjawab kapan blok pernyataan if dijalankan dan kapan blok pernyataan else dijalankan. Blok pernyataan if dijalankan jika suatu kondisi tertentu yang berada dalam tanda kurung setelah kata if bernilai benar, dan else akan dijalankan jika kondisi yang diseleksi tersebut bernilai salah.

Statement if – else if – else prinsipnya sama dengan if – else.

 

if(kondisi)

{

// blok pernyataan dalam if akan dijalankan

// kalau kondisi bernilai benar (bernilai logika 1)

}

else if(kondisi2)

{

// blok pernyataan dalam else if akan dijalankan

// kalau kondisi2 bernilai benar (bernilai logika 1)

}

else if(kondisi3)

{

// blok pernyataan dalam else if akan dijalankan

// kalau kondisi3 bernilai benar (bernilai logika 1)

}

else if(kondisi_keN)

{

// blok pernyataan dalam else if akan dijalankan

// kalau kondisi_keN bernilai benar

// (bernilai logika 1)

}

else

{

// blok pernyataan dalam else akan dijalankan

// jika semua kondisi diatas bernilai salah

// (bernilai logika 0)

}

 

Dalam hal ini disediakan beberapa kondisi yang mungkin, dari beberapa kondisi yang mengkin terjadi pastilah terpilih satu kondisi yang benar- benar tepat (sesuai), nah blok pernyataan pada kondisi yang tepat itulah yang akan dijalankan. Jika tidak ada kondisi yang tepat maka pernyataan dalam blok else lah yang akan dijalankan.

Struktur kondisi switch….case digunakan untuk penyeleksian kondisi dengan berbagai kemungkinan keadaan yang terjadi. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan ‘case’ yang tersedia tergantung dari nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’. break disini berfungsi untuk memaksa eksekusi program untuk keluardari suatu blok pernyataan, dalam hal ini blok switch. Jadi jika tidak dijumpai pernyataan break tentunya program akan terus dieksekusi.

Pada switch case kita juga dapat menambahkan yang namanya ‘default’ . default  disini bersifat opsinal artinya boleh dicantumkan ataupun tidak. Jika default ini dicantumkan tentunya muncul pertanyaan kapan blok default ini akan dieksekusi. default ini akan dieksekusi ketika nilai kondisi yang ada dalam switch tidak sesuai dengan case- case yang disediakan.

Bentuk umum perintah switch case adalah:

 

switch(ekspresi)

{

case nilaiSatu :

pernyataan_1;

break;

case nilaiDua :

pernyataan_2;

break;

case nilaiKeN :

pernyataan_n;

break;

default :

pernyataan_default

}

 

Catatan :

  • pernyataan_1 dijalankan kalau nilai ekspresi cocok dengan nilaiSatu. Setelah pernyataan_1 dijalankan maka eksekusi dilanjutkan ke akhir pernyataan switch. Hal ini terjadi karena adanya keyword break, yang memaksa eksekusi program keluar dari suatu blok tertentu dalam hal ini blok switch. Hal yang sama juga berlaku untuk pernyataan_2, … sampai dengan pernyataan_n.
  • Bagian default merupakan bagian yang bersifat opsional, artinya boleh disertakan boleh tidak. Jika ada, bagian ini hanya akan dijalankan kalau nilai ekspresi tidak ada yang cocok dengan nilai- nilai sebelumnya.
  • Nilai  kondisi hanya dapat berupa tipe data primitive.

Setelah mengerti tentang bentuk umum struktur kontrol percabangan, kini saatnya kita mengerti tentang bentuk umum pada struktur kontrol perulangan atau loop. Bentuk umum pernyataan for ialah :

 

for(inisialisasi ; kondisi ; perubahan )

{

//blok pernyataan

}

 

Catatan :

  • Bagian inisialisasi digunakan untuk menentukan kapan perulangan itu dimulai.
  • Bagian kondisi digunakan untuk mengontrol kapan perulangan itu akan berhenti.
  • Bagian perubahan untuk menentukan perubahan dari setiap kali eksekusi masuk blok for. Karena perubahan inilah kondisi berubah, sehingga eksekusi program dapat mencapai suatu kondisi dimana eksekusi akan dihentikan. Pertanyaannya apa yang terjadi jika  suatu program yang menggunakan for tidak tercapai suatu kondisi yang menyebabkan perulangan terhenti?  Pastinya disini akan terjadi suatu perulangan yang tidak terhingga.

Bentuk umum pernyataan while ialah :

 

while(kondisi)

{

//blok pernyataan while

}

 

Cara kerja pernyataan while ialah seperti yang terlihat pada Gambar 4.4.

         while

 

salah

benar

 

Gambar  4.4. Flowchart While

 

Dalam hal ini blok pernyataan akan dijalankan secara terus menerus selama  ‘kondisi’ bernilai true (benar). Jika pada keadaan awal, kondisi bernilai salah maka blok pernyataan tidak akan di jalankan sama sekali. Hal ini berbeda dengan do while yang akan dibahas selanjutnya.

Bentuk umum pernyataan do while ialah :

 

do{

//blok pernyataan while

}while(kondisi)

Cara kerja pernyataan do while ialah seperti yang terlihat pada Gambar 4.5.

Do while

 

Benar

 

 

Salah

 

Gambar  4.5. Flowchart Do-While

 

Pada pernyataan do while, pernyataan yang ada dalam blok do while minimal dieksekusi sekali walaupun kondisi bernilai salah. Jadi inilah perbedaan antara pernyataan while dengan do while. Jika while dicek dulu kondisinya jika benar (true) barulah blok pernyataan dijalankan tetapi jika salah tidak akan dieksekusi berbeda dengan do while yang minimal dieksekusi sekali walaupun kondisi salah.

2) Ketrampilan Kerja

Ketrampilan kerja diperlukan untuk mendukung kerja dan beberapa ketrampilan yang diperlukan telah dituangkan dalam butir pengetahuan kerja di atas.

 

3) Sikap Kerja

Sikap kerja ditunjukkan ketika beraktivitas di lingkungan kerja, yaitu :

1. Mampu melakukan penanganan struktur memory

2. Mampu melakukan penanganan struktur loop

 

4.5.4  Menetapkan Prosedur-prosedur Exception Handling

1) Pengetahuan Kerja

 

Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa ini biasanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak normal.

Beberapa contoh dari exception yang mungkin kita jumpai pada adalah: exception ArrayIndexOutOfBounds, yang terjadi jika kita mencoba mengakses elemen array yang tidak ada, atau NumberFormatException, yang terjadi ketika kita mencoba melalui parameter bukan angka dalam method Integer.parseInt.

 

Pengkodean Area Dimana Exception Dapat Terjadi Ditentukan

 

Jika kita perhatikan kode seperti di bawah ini:

 

class Coba{

public static void main(String []args){

int []angka={17,9,19,87};

for(int i=0;i<10;i++){

System.out.println(;

}

}

}

 

Sepertinya tidak ada yang salah, tetapi ketika kita menjalankan program ini, maka kita akan menemukan sesuatu yang disebut dengan runtime error atau exception, yaitu ArrayIndexOutOfBoundsException. Exception ini terjadi karena program mencoba mengakses nilai dari array yang terdapat di luar kapasitas array itu sendiri.

Keadaan abnormal ini harus dapat kita deteksi, yaitu dengan mencoba menjalankan program pada bagian yang dirasa memiliki kemungkinan untuk terjadinya exception. Contohnya pada saat akan mengakses file, exception yang mungkin terjadi adalah tidak adanya file yang akan diakses atau pada koneksi database, exception yang mungkin terjadi adalah tidak adanya database yang akan dikoneksi atau server tidak berjalan dengan benar, jadi hal-hal seperti ini, yang memungkinkan terjadinya exception yang harus diperhatikan.

Namun bila kita tidak tahu apakah terjadi exception atau tidak, cara terbaik untuk mengtahuinya adalah dengan menjalankan program, bila erjadi suat exception, maka program akan memberitahu kita.

 

Rutin-rutin Exception Handling Diimpelementasikan

 

Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini.

Bentuk umum dari blok try-catch-finally adalah:

 

try{

//tulis pernyataan yang dapat mengakibatkan exception

//dalam blok ini

}

catch( <exceptionType1> <varName1> ){

//tulis aksi apa dari program Anda yang dijalankan jika ada

//exception tipe tertentu terjadi

}

catch( <exceptionTypen> <varNamen> ){

//tulis aksi apa dari program Anda yang dijalankan jika ada

//exception tipe tertentu terjadi

}

finally{

//tambahkan kode terakhir di sini

}

 

 

Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi.

Berikut ini adalah aspek kunci tentang sintak dari konstruksi try-catch-finally:

-        Notasi blok bersifat perintah

-        Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally.

-        Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas urutan

-        Blok try harus diikuti oleh paling sedikit satu blok catch ATAU satu blok finally, atau keduanya.

-        Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani. Exception harus menjadi class pelempar atau satu dari subclassesnya.

Perhatikan Gambar 4.6 sebagai bagan alur dari exception handling di Java.

 

Gambar 4.6 Alur Kejadian dari Exception Handling (Elemen Kompetensi 4)

 

Jika kita ambil contoh kode yang mencetak argumen kedua ketika kita mencoba menjalankan kode menggunakan argumen command-line. Perkirakan, tidak ada pengecekan dalam kode kita untuk angka dari argumen dan kita hanya mengakses argumen kedua args[1] segera, kita akan mendapatkan exception berikut.

 

Exception in thread “main”

java.lang.ArrayIndexOutOfBoundsException: 1

at ExceptionExample.main(ExceptionExample.java:5)

 

Untuk mencegah kejadian ini, kita dapat menempatkan kode ke dalam blok try-catch. Blok finally hanya sebagai pilihan lain saja. Sebagai contoh, kita tidak akan menggunakan blok finally.

 

public class ExceptionExample

{

public static void main( String[] args ){

try{

System.out.println( args[1] );

}catch( ArrayIndexOutOfBoundsException exp ){

System.out.println(“Exception caught!”);

}

}

}

 

Jadi kita akan menjalankan program lagi tanpa argumen, keluarannya akan menjadi:

 

Exception caught!

 

Semua Exception Sudah Tercakup

 

Kadangkala kita tidak mengetahui apakah semua exception sudah tercakup semua, untuk itu kita dapat menggunakan catch (Exception ex). Baris tersebut telah mencakup semua exception yang mungkin terjadi pada program. Agar kita mengerti mengapa hal tersebut dapat terjadi, maka marilah kita lihat Gambar 4.7 sebagai hirarki class exception standar.

 

 

Gambar 4.7 Struktur Hirarki Class Exception Standar (Elemen Kompetensi 4)

 

Contoh Penggunaannya adalah sebagai berikut:

 

public class ExceptionExample

{

public static void main( String[] args ){

try{

System.out.println( args[1] );

}catch( ArrayIndexOutOfBoundsException exp ){

System.out.println(“Exception caught!”);

}catch(Exception ex){

      System.out,println(“Exception!!”);

}

}

}

 

2) Ketrampilan Kerja

Ketrampilan kerja diperlukan untuk mendukung kerja dan beberapa ketrampilan yang diperlukan telah dituangkan dalam butir pengetahuan kerja di atas.

 

3) Sikap Kerja

Sikap kerja ditunjukkan ketika beraktivitas di lingkungan kerja, yaitu :

1. Mampu melakukan penanganan exception

 

4.5.5 Menggunakan Teknik-teknik Debugging dan Penanganan Error

1) Pengetahuan Kerja

Apabila suatu program terdiri dari ratusan atau bahkan ribuan baris kode, akan sangat sulit untuk mendeteksi error hanya dengan memeriksa baris demi baris, karena hal ini akan sangat tidak efisien dan memeakan waktu yang sangat panjang. Oleh karena itu perlu ada suatu teknik khusus untuk debugging atau penanganan error dengan menggunakan fasilitas yang ada pada tools yang kita pergunakan.

 

Teknik Debugging dan Fasilitas Penanganan Error Digunakan

 

Bug yang paling sering terjadi pada suatu program adalah hasil dari perhitungan antar variabel yang tidak sesuai dengan apa yang kita inginkan, oleh karena itu terlalu sering kita harus mengubah isi awal dari suatu variabel agar bug ini dapat terselesaikan. Padahal, untuk bahasa pemrograman C/C++, cara terbaik untuk melakukan debugging adalah dengan melakukan trace dan watch.

Hampir setiap tools pada bahasa pemrograman C/C++ memiliki fasilitas integral untuk melakukan debugging, sebut saja Borland/Turbo C 3.0, Borland/Turbo C++ 4.5, Microsoft Visual C++ 6.0, dan Microsoft Visual Studio.NET. Untuk melakukan trace pada program, kita cukup membuka menu Debug pada tools, untuk setiap tools memiliki shortcut tersendiri untuk melakukan debugging seperti F7 atau F8 pada Borland/Turbo C 3.0 dan Borland/Turbo C++ 4.5 atau F11 untuk Microsoft Visual C++ 6.0 dan Microsoft Visual C++.NET.

Selain melakukan trace, hal lain yang dapat kita lakukan adalah menambahkan watch untuk setiap variabel atau ekspresi yang ada di dalam program kita. Lakukan add watch pada setiap variabel yang ingin kita lihat nilainya, atau pada setiap ekspresi yang ingin kita lihat nilainya. Proses penambahan watch untuk setiap tools berbeda, tetapi yang pasti watch berguna untuk melihat nilai dari variabel atau ekspresi yang kita inginkan agar kita dapat memperbaiki program dengan tepat dan benar. Gambar 4.8 memperlihatkan suatu fasilitas trace dan watch pada tools Borland/Turbo C++ 4.5 yang berjalan pada sistem operasi Windows.

 

 

Gambar 4.8 Fasilitas Trace dan Watch Pada Borland/Turbo C++ 4.5 (Elemen Kompetensi 5)

 

Apabila kita melakukan trace dari awal, maka akan cukup memakan waktu apabila baris kode yang ingin kita periksa jauh dari baris awal, oleh karena itu biasanya digunakan breakpoint untuk menandai bagian yang ingin diperiksa. Breakpoint ini dapat lebih dari satu, dan apabila kita telah menandai bagian program yang ingin kita periksa, kita cukup menjalankan program seperti biasa, apabila program sudah mencapai bagian yang kita tandai, maka program akan melakukan fasilitas trace.

Untuk setiap tools memiliki shortcut tersendiri untuk melakukan breakpoint seperti F5 pada Borland/Turbo C 3.0 dan Borland/Turbo C++ 4.5 atau Ctrl+F2 untuk Microsoft Visual C++ 6.0 dan Microsoft Visual C++.NET.

Gambar 4.9 memeperlihatkan suatu kode program yang sudah diberi breakpoint.

 

 

Gambar 4.9 Fasilitas Breakpoint Pada Borland/Turbo C++ 4.5

Metoda-metoda Error Handling Eksternal (Penggunaan Database)       Menyisakan Kepaduan Sangat Tinggi dan Loosly Coopled

Untuk metoda-metoda error handling eksternal seperti pada penggunaan database, kita harus mengerti terlebih dahulu proses koneksi antara database dengan program kita.

Untuk dapat membaca table dalam sistem basis data dengan menggunakan JDBC API, langkah yang dibutuhkan adalah sebagai berikut:

Membuat database connection, yang dalam Java berupa obyek java.sql.Connection, kemudian membuat obyek java.sql.Statement untuk mengirimkan perintah SQL ke basis data. Contoh

Statement stmt = conn.createStatement();

Menjalankan perintah java.sql.Statement.executeQuery() dengan melewatkan parameter berupa perintah SQL. Hasilnya adalah sebuah obyek java.sql.ResultSet. Contoh :

 

String selectSQL = “SELECT PIN, NAME, IC, ADDRESS FROM PATIENTTBL”;

rs = stmt.executeQuery(selectSQL);

 

java.sql.ResultSet dapat dipandang sebagai kumpulan row-row dalam table, dan Anda dapat membaca hasil perintah SQL dengan mengakses obyek ini.

Contoh :

 

while(rs.next())

{

String pin = rs.getString(“PIN”);

String name = rs.getString(“NAME”);

String ic = rs.getString(“IC”);

String address = rs.getString(“ADDRESS”);

}

 

Kode lengkapnya adalah sebagai berikut:

 

import java.io.*;

import java.sql.*;

 

public class LatJDBCQueryApp

{

public static void main(String[] args)

{

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try

{

 

String jdbcDriver = “org.gjt.mm.mysql.Driver”;

Class.forName(jdbcDriver);

 

String url = “jdbc:mysql://localhost:3306/RELIEVEDB”;

String user = “ekobs”;

String pwd  = “j2ee”;

 

conn = DriverManager.getConnection(url, user, pwd);

stmt = conn.createStatement();

 

String selectSQL =

“SELECT PIN, NAME, IC, ADDRESS FROM PATIENTTBL”;

rs = stmt.executeQuery(selectSQL);

 

while(rs.next())

{

String pin = rs.getString(“PIN”);

String name = rs.getString(“NAME”);

String ic = rs.getString(“IC”);

String address = rs.getString(“ADDRESS”);

System.out.println();

System.out.println(“P A T I E N T”);

System.out.println(“Patient Identification Num: ” + pin);

System.out.println(“Name                    : ” + name);

System.out.println(“Identification Card     : ” + ic);

System.out.println(“Address                 : ” + address);

}

}

catch(ClassNotFoundException cnfe)

{

cnfe.printStackTrace();

}

catch(SQLException sqle)

{

sqle.printStackTrace();

}

finally

{

try

{

if(rs != null) rs.close();

if(stmt!= null) stmt.close();

if(conn != null) conn.close();

}

catch(SQLException sqle)

{

sqle.printStackTrace();

}

}

 

}

}

 

Apabila terdapat error semacam ini:

 

java.sql.SQLException: Syntax error or access violation:

You have an error in your SQL syntax near ” at line 1

at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source)

at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown Source)

at org.gjt.mm.mysql.MysqlIO.sqlQuery(Unknown Source)

at org.gjt.mm.mysql.Connection.execSQL(Unknown Source)

at org.gjt.mm.mysql.Connection.execSQL(Unknown Source)

at org.gjt.mm.mysql.Statement.executeUpdate(Unknown Source)

at org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Unknown Source)

at LatJDBCUpdateApp.main(LatJDBCUpdateApp.java:48)

Anda perlu meneliti kembali perintah SQL yang Anda kirimkan melalui java.sql.Statement.executeQuery()

java.sql.SQLException: Column ‘ID’ not found.

 

Anda perlu meneliti kembali perintah SQL yang Anda kirimkan melalui java.sql.Statement.executeQuery() maupun pernyataan dalam membaca hasil melalui java.sql.ResultSet.getXxx()

Selain cara penanganan tersebut kita juga dapat menggunakan penanganan exception yang khusus untuk database atau SQL, yaitu dengan SQLException.

 

Kode Dikompilasi dan Diuji Jika Diperlukan Diterasi

 

Setelah seluruh kode telah dianggap benar, maka hal yang harus kita lakukan adalah mengkompilasi kode tersebut agar dapat menjadi sebuah program yang dapat berjalan sesuai dengan keinginan kita.

Untuk bahasa pemrograman C/C++, tools yang ada bersifat compiler, sehingga terdapat fasilitas untuk mengkompilasi secara langsung untuk menjadi suatu program yang dapat dieksekusi langsung karena berekstensi .EXE pada windows atau .BIN pada Linux. Cara untuk mengkompilasinya adalah tergantung pada tools yang dipakai, misalnya pada Borland/Turbo C 3.0, dan Borland/Turbo C++ 4.5 shortcut yang dipergunakan adalah Ctrl+F9, sedangkan pada Microsoft Visual C++ 6.0 atau Microsoft Visual C++.NET yang dipergunakan adalah Ctrl+F5.

Sedangkan pada Linux, cara yang dilakukan adalah dengan mengetikkan perintah-perintah tertentu pada Terminal pada Linux (Command Prompt pada Windows) untuk mengkompilasi kode dalam bahasa C/C++ agar menjadi suatu program yang dapat dijalankan.

Untuk bahasa C, perintah yang harus diketikkan adalah sebagai berikut:

 

gcc coba.c -o coba.bin

 

atau untuk C++, perintah yang harus diketikkan adalah sebagai berikut:

 

g++ coba.cpp -o coba.bin

 

Untuk program Java yang bersifat interpreter, ada sebagian tools seperti Eclipse, Netbeans atau Jbuilder yang dapat melakukan kompilasi langsung untuk menjadikan file yang berisi kode, yaitu file yang berekstensi .JAVA menjadi file berekstensi .CLASS agar dapat diinterpretasikan oleh Java Virtual Machine (JVM) agar dapat dijalankan sesuai dengan keinginan.

Apabila kita tidak memiliki tools untuk mengedit kode program Java, maka kita dapat mengetikkan hal ini pada Command Prompt untuk dapat mengkompilasi program Java kita.

 

javac coba.java

 

Setelah dikompilasi maka akan muncul file coba.class pada folder yang sama dengan folder di mana kita memiliki file coba.java. Untuk menjalankan program tersebut, kita harus mengetikkan perintah berikut ini.

 

java coba

 

Apabila kita masih belum yakin apakah program sudah dapat berjalan dengan baik, maka hal yang dapat kita lakukan adalah melakukan debugging, penanganan error atau trace seperti pada bagian 4.6.1.

 

2) Ketrampilan Kerja

Ketrampilan kerja diperlukan untuk mendukung kerja dan beberapa ketrampilan yang diperlukan telah dituangkan dalam butir pengetahuan kerja di atas.

 

3) Sikap Kerja

Sikap kerja ditunjukkan ketika beraktivitas di lingkungan kerja, yaitu :

1. Menggunakan metoda yang sesuai untuk penanganan error dan debugging

2. Melakukan pengujian dan kompilasi kode program jika diperlukan

 

             


BAB V

SUMBER-SUMBER YANG DIPERLUKAN UNTUK PENCAPAIAN                          KOMPETENSI

 

5.1 Sumber Daya Manusia

Dalam proses pencapaian kompetensi sumber yang dapat diandalkan adalah sumber daya manusia. Sumber daya manusia yang dimaksud disiini adalah orang-orang yang dapat mendukung proses pencapaian kompetensi yang dimaksud, antara lain:

 

  • Pembimbing

Pembimbing Anda merupakan orang yang dapat diandalkan karena beliau memiliki pengalaman. Peran Pembimbing adalah untuk:

  1. Membantu Anda untuk merencanakan proses belajar.
  2. Membimbing Anda melalui tugas-tugas pelatihan yang dijelaskan dalam tahap belajar.
  3. Membantu Anda untuk memahami konsep dan praktik baru dan untuk menjawab pertanyaan Anda mengenai proses belajar Anda.
  4. Membantu Anda untuk menentukan dan mengakses sumber tambahan lain yang Anda perlukan untuk belajar Anda.
  5. Mengorganisir kegiatan belajar kelompok jika diperlukan.
  6. Merencanakan seorang ahli dari tempat kerja untuk membantu jika diperlukan.

 

  • Penilai

Penilai Anda melaksanakan program pelatihan terstruktur untuk penilaian di tempat kerja. Penilai akan:

  1. Melaksanakan penilaian apabila Anda telah siap dan merencanakan proses belajar dan penilaian selanjutnya dengan Anda.
  2. Menjelaskan kepada Anda mengenai bagian yang perlu untuk diperbaiki dan merundingkan rencana pelatihan selanjutnya dengan Anda.
  3. Mencatat pencapaian / perolehan Anda.

 

  • Teman kerja/sesama peserta pelatihan

Teman kerja Anda/sesama peserta pelatihan juga merupakan sumber dukungan dan bantuan. Anda juga dapat mendiskusikan proses belajar dengan mereka. Pendekatan ini akan menjadi suatu yang berharga dalam membangun semangat tim dalam lingkungan belajar/kerja Anda dan dapat meningkatkan pengalaman belajar Anda.

 

 

5.2 Literatur

Disamping dengan belajar dengan orang-orang seperti yang disebutkan diatas, Anda tentu perlu juga terus menambah wawasan dan pengetahuan Anda dari sumber-sumber bacaan seperti buku-buku yang berkaitan dengan kompetensi yang Anda pilih, jurnal-jurnal, majalah, dan sebagainya.

 

Literatur dalam hal ini tentu bukan saja material berupa bacaan atau buku melainkan termasuk pula material-material lainnya yang menjadi pendukung proses pembelajaran ketika peserta pelatihan sedang menggunakan Pedoman Belajar ini. Misalnya rekaman dalam bentuk kaset, videp, dan sebagainya.

 

Buku referensi, lembar kerja, tugas-tugas kerja juga dapat digunakan dalam proses pencapaian kompetensi. Peserta boleh mencari dan menggunakan sumber-sumber alternatif lain yang lebih baik atau sebagai pendukung tambahan atau jika ternyata sumber-sumber yang direkomendasikan dalam pedoman belajar ini tidak tersedia/tidak ada.

 

Untuk referensi mengenai materi-materi yang dapat digunakan, Anda dapat melihat dari Daftar Pustaka yang terlampir dihalaman terakhir modul ini.

 

 


5.3 Daftar Peralatan dan Bahan yang digunakan

 

  1. Judul/Nama Pelatihan        :    Menulis dan Mengkompilasikan Kode Program                 Sesuai dengan Kebutuhan
  2. Kode Program Pelatihan    :    TIK.PR02.013.01

 

NO

UNIT

KOMPETENSI

KODE UNIT

DAFTAR PERALATAN

DAFTAR BAHAN

KETERANGAN

1.

Menulis dan Mengkompilasikan Kode Program Sesuai dengan Kebutuhan

TIK.PR02.013.01

- Unit PC (Personal Computer) dengan CD drive.

- PC dengan sistem operasi Windows XP atau Linux.

- Keyboard, mouse, dan monitor.

- RAM dengan ukuran yang sesuai dengan kebutuhan.

- CD Installer untuk Tools Bahasa PemrogramanC/C++ dan Java.

- Buku informasi atau manual tentang PemrogramanC/C++ dan Java.

- Buku Kerja

- Buku penilaian

 

-

 

 

 

 

 

 

 

 

 

 


DAFTAR PUSTAKA

 

  • Buku
    • Kadir, Abdul. 2005. Dasar Pemrograman Java 2. Yogyakarta :  Andi.
    • Papilaya, Victor N. Dan Jasson Prestiliano. 2006. C/C++ Goes To Open Source : Belajar Membuat Pustaka Sendiri. Yogyakarta : Gava Media.
    • Prasetyo, Didik Dwi. 2007. 150 Rahasia Pemrograman Java. Jakarta: Elex Media Komputindo.

 

 

Testimoni

artikel lainnya Menulis Dan Mengkompilasikan Kode Program Sesuai Dengan Kebutuhan TIK.PR02.013.01

Monday 9 March 2015 | blog

  MATERI PELATIHAN BERBASIS KOMPETENSI SEKTOR TELEMATIKA SUB SEKTOR JARINGAN KOMPUTER DAN SISTEM ADMINISTRASI    …

Tuesday 14 July 2015 | blog

ABDULLAH GYMNASTIAR (AA GYM) SUKSES BISNIS DENGAN AKHLAK “Kalau kita mau sukses, kunci pertama adalah jujur,…

Tuesday 4 December 2012 | blog

Tujuan Disini gw coba membuat thread tentang diskusi berbisnis di ebay, dan akan kita bahas secara…

Sunday 12 July 2015 | blog

MATERI PELATIHAN BERBASIS KOMPETENSI SEKTOR TELEMATIKA SUB SEKTOR COMPUTER TECHNICAL SUPPORT       MENGEPAK DAN…