MATERI PELATIHAN BERBASIS KOMPETENSI
     SEKTOR TEKNOLOGI INFORMASI DAN
                         KOMUNIKASI


             MEMBUAT ALGORITMA
            PEMROGRAMAN LANJUT
                    TIK.PR02.002.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
Materi Pelatihan Berbasis Kompetensi                                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                               TIK.PR02.001.01


                                          DAFTAR ISI




                                                          Daftar                                      Isi
          2


 BAB I    PENGANTAR
          4


          1.1.   Konsep       Dasar         Pelatihan           Berbasis          Kompetensi
                   4
          1.2.   Penjelasan                                                                      Modul
                   4
          1.3.   Pengakuan                Kompetensi                     Terkini                 (RCC)
                   7
          1.4.   Pengertian-pengertian                                                           Istilah
                   8


 BAB II STANDAR                                                                       KOMPETENSI
          10


          2.1.   Peta                   Paket                         Pelatihan
                   10
          2.2.   Pengertian                     Unit                      Standar
                   10
          2.3.   Unit          Kompetensi                   yang               Dipelajari
                   11
                   2.3.1.     Judul                                  Unit
                              ............................................................................
                              11


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                            Halaman: 2 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                                       Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                                 TIK.PR02.001.01


                    2.3.2.      Kode                                   Unit
                                ............................................................................
                                11
                    2.3.3.      Deskripsi                                 Unit
                                ............................................................................
                                11
                    2.3.4.      Elemen                             Kompetensi
                                ............................................................................
                                11
                    2.3.5.      Kriteria                   Unjuk                    Kerja
                                ............................................................................
                                11
                    2.3.6.      Batasan                               Variabel
                                ............................................................................
                                13
                    2.3.7.      Panduan                               Penilaian
                                ............................................................................
                                13
                    2.3.8.      Kompetensi                                 Kunci
                                ............................................................................
                                15


 BAB III STRATEGI                DAN                METODE                    PELATIHAN
          17


          3.1.    Strategi                                                                    Pelatihan
                    17
          3.2.    Metode                                    Pelatihan
                    17
 BAB IV MATERI                       UNIT                         KOMPETENSI
          18


          4.1 Tujuan Instruksional Umum ............................................................... 18



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                              Halaman: 3 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                                 Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                           TIK.PR02.001.01


          4.2 Tujuan Instruksional Khuisus ............................................................. 18
          4.3 Penggunaan Array Multi Dimensi........................................................ 19

               4.3.1 Pengenalan array multi dimensi ................................................
          19
               4.3.2 Array 2 dimensi (Matriks) .........................................................
          19
                    4.3.2.1 Deklarasi matriks 2 dimensi .......................................... ..
          20
                    4.3.2.2 Memberikan dan membaca nilai dari matriks 2 dimensi ......
          20
                    4.3.2.3 Mengubah isi dari matriks n dimensi...................................
          22
                    4.3.2.4 Penerapan matriks 2 dimensi ...........................................
          23
                     4.3.2.5 Penjumlahan matriks 2 dimensi ........................................
          23
                     4.3.2.6 Pengurangan matriks 2 dimensi........................................
          24
               4.3.3 Array matriks 3 dimensi............................................................
          25
                    4.3.3.1 Deklarasi array 3 dimensi ................................................
          25
                    4.3.3.2 Memberikan dan membaca nilai dari matriks 3 dimensi .....
          27
                     4.3.3.3 Melakukan inisialisasi matriks 3 dimensi ...........................
          27
                     4.3.3.4 Memberikan nilai secara langsung ...................................
          27
                     4.3.3.5 Mengubah isi dari matriks 3 dimensi ................................
          29


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                       Halaman: 4 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                                      Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                                TIK.PR02.001.01


          4.4 Penggunaan Prosedur dan Fungsi ....................................................
          33
               4.4.1 Apa itu file library .....................................................................
          34
                      4.4.1.1 Fungsi operasi string .......................................................
          34
                      4.4.1.2 Fungsi operasi karakter ....................................................
          35
                      4.4.1.3 Fungsi operasi matematika ...............................................
          36
               4.4.2 Membuat fungsi sendiri .............................................................
          38
            4.4.3 Parameter formal dan parameter aktual ......................................
          40
            4.4.4 Cara melewatkan parameter ......................................................
          41
               4.4.5 Variabel Lokal ...........................................................................
          42
                     4.4.5.1 Sifat - sifat variabel lokal ....................................................
          42
            4.4.6 Variabel Global ...........................................................................
          42
                    4.4.6.1 Sifat - sifat variabel global ...................................................
          42
            4.4.7 Variabel Statis ............................................................................
          43
                    4.4.7.1 Sifat - sifat variabel statis ...................................................
          43
            4.4.8 Variabel Register ........................................................................
          43




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                            Halaman: 5 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                                  Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                            TIK.PR02.001.01


                  4.4.8.1 Sifat - sifat variabel register .................................................
          43
          4.5 Pemrograman Grafik ........................................................................
          46
            4.5.1 Fungsi - fungsi pada proses inisialisasi modus grafis ......................
          47
            4.5.2 Fungsi - fungsi penting dalam memanipulasi obyek grafis ..............
          50
            4.5.3 Fungsi - fungsi penting untuk membuat obyek 2 dimensi ...............
          52
            4.5.4 Contoh - contoh program : ..........................................................
          56
          4.6 Pengenalan Obyek 3 Dimensi ............................................................
          63
          4.7 Pengenalan Terhadap Obyek Open GL ...............................................
          64
            4.7.1 Pengelompokkan fungsi ..............................................................
          65
             4.7.2 Proses inisialisasi Open GL ..........................................................
          66
            4.7.3 Fungsi dasar obyek Open GL .......................................................
          67
            4.7.4 Proses kompilasi program Open GL .............................................
          68
               4.7.5 Algoritma animasi sederhana ......................................................
          68


 BAB V    SUMBER-SUMBER              YANG        DIPERLUKAN           UNTUK        PENCAPAIAN
 KOMPETENSI
          72




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                        Halaman: 6 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


  5.1.    Sumber                     Daya                     Manusia
               72
  5.2.    Sumber-sumber                            Perpustakaan
               72
  5.3.    Daftar            Peralatan/Mesin             dan             Bahan
               73


  DAFTAR                                                                        PUSTAKA
               74




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                           Halaman: 7 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                       Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                 TIK.PR02.001.01


                                           BAB I
                                       PENGANTAR


  1.1.    Konsep Dasar Pelatihan Berbasis Kompetensi
 • 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.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                            Halaman: 8 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                          Kode Modul
       Sektor Telematika Sub Sektor Programmer Komputer                    TIK.PR02.001.01


 1.2.1     Desain Modul
 Modul ini didisain untuk dapat digunakan pada Pelatihan Klasikal dan Pelatihan
 Individual/mandiri :
 • Pelatihan klasikal adalah pelatihan yang disampaiakan 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:
 a.    Buku Informasi
         Buku informasi ini adalah sumber pelatihan untuk pelatih maupun peserta
         pelatihan.
 b.      Buku Kerja
         Buku kerja ini harus digunakan oleh peserta pelatihan untuk mencatat setiap
         pertanyaan dan kegiatan praktik 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.
 c.      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.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                 Halaman: 9 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                             Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                       TIK.PR02.001.01


        • 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.3Pengakuan 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.



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                Halaman: 10 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


        •   Anda mungkin sudah memiliki pengetahuan dan keterampilan, karena
            Anda telah :
        a. Bekerja dalam suatu pekerjaan yang memerlukan suatu pengetahuan dan
            keterampilan yang sama atau
        b. Berpartisipasi dalam pelatihan yang mempelajari kompetensi yang sama
            atau
        c. Mempunyai pengalaman lainnya yang mengajarkan pengetahuan dan
            keterampilan yang sama.


  1.4Pengertian-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.


        Standardisasi
        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




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 11 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                  Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer            TIK.PR02.001.01


        serta lingkungan belajar yang ada terfokus kepada pencapaian unjuk kerja
        pada kompetensi yang dipelajari.


        Kompetensi
        Kompetensi adalah kemampuan seseorang untuk menunjukkan aspek sikap,
        pengetahuan dan keterampilan serta penerapan dari ketiga aspek tersebut
        ditempat kerja untuk mwncapai unjuk kerja yang ditetapkan.


        Standar Kompetensi
        Standar kompetensi adalah standar yang ditampilkan dalam istilah-istilah hasil
        serta memiliki format standar yang terdiri dari judul unit, deskripsi unit,
        elemen kompetensi, kriteria unjuk kerja, ruang lingkup serta pedoman bukti.


        Sertifikat Kompetensi
        Adalah pengakuan tertulis atas penguasaan suatu kompetensi tertentu
        kepada seseorang yang dinyatakan kompeten yang diberikan oleh Lembaga
        Sertifikasi Profesi.


        Sertifikasi Kompetensi
        Adalah proses penerbitan sertifikat kompetensi melalui proses penilaian / uji
        kompetensi.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                     Halaman: 12 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


                                              BAB II
                                  STANDAR KOMPETENSI


 2.1.     Peta Paket Pelatihan
          Modul yang sedang Anda pelajari ini adalah untuk mencapai satu unit
          kompetensi, yang termasuk dalam satu paket pelatihan, yang terdiri atas
          unit-unit kompetensi berikut:
          2.1.1.     TIK.OP02.002.01                   Membuat Algoritma Pemrograman
                     Lanjut.
          2.1.2.     TIK.OP02.003.01A         Mengoperasikan Sistem Operasi Microsoft
                     Windows.
          2.1.3.     TIK.OP02.001.01             Mengoperasikan komputer personal yang
                     berdiri sendiri ( PC Stand Alone )


 2.2.     Pengertian Unit Standar Kompetensi
          Apakah Standar Kompetensi?
          Setiap Standar Kompetensi menentukan :
          a. Pengetahuan       dan      keterampilan   yang   diperlukan   untuk    mencapai
               kompetensi.
          b.   Standar yang diperlukan untuk mendemonstrasikan kompetensi.
          c.   Kondisi dimana kompetensi dicapai.

          Apa yang akan Anda pelajari dari Unit Kompetensi ini?
          Anda akan mempelajari tentang Algoritma Pemrograman lanjut.

          Berapa lama Unit Kompetensi ini dapat diselesaikan?
          Pada     sistem   pelatihan    berdasarkan    kompetensi,   fokusnya     ada   pada
          pencapaian kompetensi, bukan pada lamanya waktu. Namun diharapkan
          pelatihan ini dapat dilaksanakan dalam jangka waktu tiga sampai tujuh hari.
          Pelatihan ini dijutukan bagi semua user terutama yang tugasnya berkaitan
          dengan programming, seperti operator, programmer, staff support, dan staff
          admin.



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                            Halaman: 13 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01




          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 :
          •   mengidentifikasikan apa yang harus dikerjakan peserta pelatihan.
          •   memeriksa kemajuan peserta pelatihan.
          •   menyakinkan bahwa semua elemen (sub-kompetensi) dan criteria unjuk
              kerja telah dimasukkan dalam pelatihan dan penilaian.


  KODE UNIT                     : TIK.PR02.002.01


  JUDUL UNIT             : Membuat Algoritma Pemrograman Lanjut


  DESKRIPSI UNIT :


 Unit ini menentukan kompetensi yang diperlukan untuk mempelajari algoritma yang
 akan diterapkan pada program, tidak tergantung bahasa pemrograman yang akan
 digunakan. Algoritma pemrograman merupakan materi dasar yang harus dikuasai
 oleh setiap programer. Untuk tingkat lanjut ini ditekankan kepada penguasaan array
 multi dimensi, pemakaian prosedur dan fungsi serta pemanfaatan grafik.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 14 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                        Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                  TIK.PR02.001.01




    ELEMEN KOMPETENSI                    KRITERIA UNJUK KERJA


    1       Menggunakan Array Multi 1.1 Algoritma array multi dimensi dibuat dan
            Dimensi                         dijelaskan.


                                         1.2 Matrik     2D,    3D   dibuat   dalam       bentuk
                                            penjumlahan, pengurangan, perkalian dsb.


                                         1.3 Algoritma          pembacaan,         pengisian,
                                            pengubahan dan penghapusan data dalam
                                            array multi dimensi dibuat dan ditunjukkan.



    2       Menggunakan       prosedur
            dan fungsi                   2.1 Algoritma program dibuat dengan prosedur


                                         2.2 Algoritma program dibuat dengan fungsi.


                                         2.3 Algoritma program dibuat dengan prosedur
                                             dan fungsi.


    3       Menggunakan          library 3.1 Algoritma program dibuat dengan library
            pemrograman grafik               berbasis grafik.


                                         3.2 Algoritma        pemrograman    dengan       grafik
                                             (gambar sederhana) berbentuk 2D dan 3D
                                             dibuat.



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                             Halaman: 15 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


                                        3.3 Algoritma   pemrograman    animasi      dibuat
                                             dengan grafik (gambar sederhana).




 BATASAN VARIABEL


 1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan komunikasi.
 2. Menjaga etika bersifat internal pada bidang teknologi informasi dan komunikasi.


 PANDUAN PENILAIAN


    1.      Pengetahuan           dan        keterampilan      penunjang            untuk
            mendemontrasikan kompetensi, memerlukan bukti keterampilan
            dan pengetahuan di bidang berikut ini :


            1.1         Pengetahuan dasar :
                  1.1.1 Matematika dasar dan matematika logika
                  1.1.2 Flowchart dan dasar pemrograman
            1.2         Keterampilan dasar


                        Mengoperasikan sistem komputer


    2.      Konteks penilaian
            Kompetensi harus diujikan di tempat kerja atau di tempat lain secara teori
            dengan kondisi kerja sesuai dengan keadaan normal.




    3.      Aspek penting penilaian


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 16 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                       Kode Modul
      Sektor Telematika Sub Sektor Programmer Komputer                 TIK.PR02.001.01


              Aspek yang harus diperhatikan:
        3.1      Kemampuan mengidentifikasi varian dan invarian yang berlaku umum
                 pada pemrograman.
        3.2      Kemampuan mengidentifikasi alur logika pemrograman sekuensial dan
                 membuat algoritma.
        3.3      Kemampuan mengidentifikasi pengelolaan array pada program.
        3.4      Kemampuan menyimpan program ke dalam media penyimpanan.
        3.5      Kemampuan membuat program membaca dan menulis data ke dalam
                 file secara sekuensial dan indeks.


 4.    Kaitan dengan unit-unit lainnya
        4.1      Unit ini didukung oleh pengetahuan dan keterampilan dalam unit-unit
                 kompetensi yang berkaitan dengan dasar-dasar teknologi informasi.
                 4.1.1 Mengoperasikan PC dan system informasi
                 4.1.2 TIK.PR02.001.01 Membuat Algoritma Pemrograman Dasar
        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 sektor
                 tertentu. Batasan variabel akan membantu dalam hal ini. Untuk sektor
                 tertentu/khusus,   pelatihan    harus   disesuaikan     untuk    memenuhi
                 kebutuhan sektor tersebut.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                           Halaman: 17 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi           Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer     TIK.PR02.001.01


 Kompetensi Kunci


  No     Kompetensi Kunci Dalam Unit ini                           Tingkat
  1      Mengumpulkan, mengorganisir dan menganalisa informasi     1
  2      Mengkomunikasikan ide-ide dan informasi                   1
  3      Merencanakan dan mengorganisir aktivitas-aktivitas        1
  4      Bekerja dengan orang lain dan kelompok                    1
  5      Menggunakan ide-ide dan teknik matematika                 2
  6      Memecahkan masalah                                        1
  7      Menggunakan teknologi                                     1




                                            BAB III
                          STRATEGI DAN METODE PELATIHAN


 3.1.     Strategi Pelatihan


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                 Halaman: 18 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


        Belajar dalam suatu sistem Berdasarkan 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 melaksanakannya dengan tekun sesuai
 dengan rencana yang telah dibuat.


 Persiapan/perencanaan
 a. Membaca bahan/materi yang telah diidentifikasi dalam setiap tahap belajar
    dengan tujuan mendapatkan tinjauan umum mengenai isi proses belajar Anda.
 b. Membuat catatan terhadap apa yang telah dibaca.
 c. Memikirkan bagaimana pengetahuan baru yang diperoleh berhubungan dengan
    pengetahuan dan pengalaman yang telah Anda miliki.
 d. Merencanakan aplikasi praktik pengetahuan dan keterampilan Anda.


 Permulaan dari proses pembelajaran
 a. Mencoba mengerjakan seluruh pertanyaan dan tugas praktik yang terdapat pada
    tahap belajar.
 b. Merevisi dan meninjau materi belajar agar dapat menggabungkan pengetahuan
    Anda.


 Pengamatan terhadap tugas praktik
 a. Mengamati keterampilan praktik yang didemonstrasikan oleh Pelatih atau orang
    yang telah berpengalaman lainnya.
 b. Mengajukan pertanyaan kepada Pelatih tentang konsep sulit yang Anda
    temukan.




 Implementasi
 a. Menerapkan pelatihan kerja yang aman.
 b. Mengamati indicator kemajuan personal melalui kegiatan praktik.
 c. Mempraktikkan keterampilan baru yang telah Anda peroleh.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                      Halaman: 19 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                    Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer              TIK.PR02.001.01




 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 topic tertentu.




                                            BAB IV
                               MATERI UNIT KOMPETENSI
                   MEMBUAT ALGORITMA PEMROGRAMAN LANJUT




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 20 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                       Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                 TIK.PR02.001.01




            4.1 Tujuan Instruksional Umum

          o Siswa mampu mempelajari lanjutan dari Algoritma dan Pemrograman
             dasar
          o Siswa mampu memahami tentang array lebih lanjut
          o Siswa mampu menguasai tentang prosedur dan fungsi
          o Siswa mampu mengetahui fungsi – fungsi matematika, pengolahan
             kalimat dan grafik.
          o Siswa dapat mengetahui dasar – dasar dalam pemrograman grafis.
          o Siswa dapat mengetahui pemrograman tingkat lanjut menggunakan
             Open GL.

            4.2 Tujuan Instruksional Khusus

          o Siswa dapat mengetahui seberapa pentingnya Algoritma Pemrograman
             lanjut dalam mempelajari pemrograman.
          o Siswa dapat mengetahui tentang array multidimensi.
          o Siswa dapat dapat mengetahui tentang operasi matrik.
          o Siswa dapat mengetahui tentang bagaimana membuat prosedur dan
             fungsi sendiri.
          o Siswa     dapat    mengetahui     fungsi    –   fungsi   yang   penting     dalam
             matematika, pengolahan kalimat dan grafis.
          o Siswa dapat menguasai dasar – dasar dalam pemrograman grafis.
          o Siswa dapat mengetahui dasar dan penerapan program Open GL dalam
             pengelolaan grafis tingkat lanjut.




 Apa itu Algoritma Pemrograman Lanjut ?




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                            Halaman: 21 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


 Algoritma Pemrograman lanjut merupakan pembahasan – pembahasan lanjutan
 mengenai dasar – dasar pemrograman dan memperkenalkan pembaca kepada
 topik – topik lanjutan yang belum dibahas pada Algortma Pemrograman dasar.
 Topik – topik itu meliputi : Penggunaan array multi dimensi, penggunaan prosedur
 dan fungsi dan dasar – dasar pemrograman grafik. Seluruh contoh dan
 pembahasan ini akan menggunakan bahasap pemrograman Turbo C.


 4.3      Penggunaan Array Multi Dimensi.


    4.3.1            Pengenalan Array Multi Dimensi
    Array multi dimensi pada dasarnya merupakan sebuah struktur data array biasa,
    seperti     halnya    struktur   array   1   dimensi.   Perbedaannya   terletak    pada
    kemampuan menyimpan elemen data yang lebih banyak daripada array 1
    dimensi. Semakin besar jumlah dimensi yang terkandug, semakin banyak data
    yang dapat disimpan dalam struktur array tersebut. Pemilihan penggunaa array
    1 dimensi atau array muti dimensi hendaknya disesuaikan dengan permasalahan
    yang ada, karena tidak semua permasalahan dapat diselesaikan dengan array 1
    dimensi dan begitu pula sebaliknya.


    4.3.2            Array 2 Dimensi (Matriks)
    Array 2 dimensi atau biasa disebut juga sebagai matriks merupakan sekumpulan
    informasi yang setiap elemennya diacu dengan menggunakan 2 buah indeks
    ( yang biasanya dinotasikan dengan baris dan kolom).
    Karakteristik array 2 dimensi secara umum adalah :
    -     Kumpulan elemen bertipe sama.
    -     Setiap elemen dapat diakses secara acak, jika indeks (baris dan kolomnya)
          sudah diketahui.
    -     Merupakan struktur data statis, jika jumlah elemenya terlah ditentukan di
          awalnya maka tidak dapat dirubah selama pelaksanaan program.


    4.3.2.1          Deklarasi Matriks 2 Dimensi


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                           Halaman: 22 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


    Tipe_data nama_matriks[elemen_baris][elemen_kolom]


    Contoh :
    int jumlah_lulusan[2][2];

                                0                          1
     0                          Jumlah_lulusa[0][0]        Jumlah_lulusa[0][1]
     1                          Jumlah_lulusa[1][0]        Jumlah_lulusa[1][1]




    Tipe data struktur array 2 dimensi dapat berupa integer, float, booelan, dll.
    Penamaan matriks harus memperhatikan ketentuan penamaan variabel.
    Elemen baris menyatakan maksimal elemen baris matriks.
    Elemen kolom menyatakan maksimlam elemen kolom matriks.


    4.3.2.2        Memberikan dan membaca nilai dari matriks n dimensi.
    Metode yang digunakan untuk memberikan nilai pada matriks 2 dimensi atau n
    dimensi memiliki kesamaan, terdapat 2 cara yang dapat digunakan yaitu :


            o Melakukan inisialisasi matrriks
    Inisialisasi matriks berarti memberikan nilai pada setiap elemen ketika matriks
    tersebut dideklarasikan. Metode ini hanya bisa dilakukan ketika kita sudah
    mengetahui nilai yang hendak dimasukkan kedalam setiap elemen data dari
    matriks.
    Contoh :
    Int a[2][3] = { {1,2,3} , {4,5,6}}


    Tanda kurva pertama menunjukkan baris pertama dimana didalamnya terdapat
    3 elemen (1,2,3) dan kurva kedua menunjukkan baris kedua dimana terdapat 3
    elemen juga (4,5,6).


            o Memberikan nilai secara langsung (assignment)


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 23 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


    Memberikan nilai secara langsung kepada matriks sama dengan memberikan
    nilai secara langsung kepda sebuah variabel, yang membedakan adalah dalam
    memberikan nilai kepada sebuah matriks kita harus mengetahui secara pasti
    indeks baris dan kolomnya terlebih dahulu.


    Contoh :
    Jumlah_lulusan[0][0] = 100; // memberikan data pada elemen baris ke 0,
    kolom ke 0.
    Hal yang harus diperhatikan dalam pemberian nilai ke dalam sebuah matriks
    adalah indeks, kesalahan dalam pemberian indeks akan mengakibatkan
    pemberian data pada elemen yang salah ataupun akan mengakibatkan program
    error ( ini terjadi apabila indeks yang dituju lebih dari indeks maksimal yang
    telah ditetapkan sebelumnya).


    Contoh :
    int a[2][2]; // mendeklarasikan matriks array 2 dimensi, sebanyak 4 elemen.


    a[1][1] = 100; // benar. Akan memasukkan data ke elemen baris ke 1 dan
    kolom ke 1.
    A[3][2] = 20; // akan meberikan error pada program, karena elemen baris ke 3
    tidak pernah didefinisikan sebelumnya.


            o Melalui piranti masukan (keyboard ataupun file)
    Memberikan nilai kepada matriks array dapat dilakukan juga melalui keyboard
    secara langsung ataupun dengan membaca isi dari sebuah file. Metode yang
    digunakan pada setiap bahasa pemrograman berbeda – beda.
    Contoh :
    Program akan mengisi matriks 2 dimensi dengan menginput langsung dari
    keyboard dan langsung menampilkan ke standar output (layar monitor).


    #include <stdio.h>


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                    Halaman: 24 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01




    void main(){
    int a[2][2];
    int baris, kolom;


    // meminta inputan matriks melalui keyboard.
    for(baris=0; baris< 2; baris++){
    for (kolom=0;kolom < 2; kolom++){
    scanf(“%d”,&a[baris][kolom]); // meminta inputan dari keyboard dan langsung
    memasukkan ke dalam tiap elemen matriks.
    }}
    // menampilkan isi dari elemen matriks ke layar.
    for(baris=0; baris< 2; baris++){
    for (kolom=0;kolom < 2; kolom++){
    printf(“%d”,a[baris][kolo]);
    // menampilkan setiap elemen matriks ke layar.
    }}}


    4.3.2.3        Mengubah isi dari matriks 2 Dimensi
    Pada dasarnya matriks n dimensi dapat kita lakukan manipulasi pada setiap
    elemen datanya, tapi kita tidak dapat menghapus isi dari elemen matriks


    tersebut. Metode yang digunakan untuk melakukan manipulasi / pengubahan isi
    dari elemen matriks tersebut sama dengan cara untuk memberikan nilai secara
    langsung (assignment). Elemen matriks yang telah didefinisikan pada deklarasi
    awal tidak dapat dirubah ataupun dihapus saat program berjalan (ingat
    karakteristik bahwa array bersifat statis).


    Contoh :
    int a[2][2]; // deklarasi matriks dengan 4 elemen.
    a[0][0] = 100; // memberi nilai 100 pada elemen (0,0).


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                   Halaman: 25 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                         Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                   TIK.PR02.001.01


    A[0][0] = 150; // merubah isi dari elemen (0,0) menjadi 150.


    4.3.2.4        Penerapan Matriks 2 Dimensi.
    Penerapan matriks 2 dimensi sangat banyak, biasanya digunakan untuk
    perhitungan matematika ataupun sebagai dasar pemrograman linier. Berikut
    akan    diberikan      contoh   operasi   matematika       berupa   penjumlahan       dan
    pengurangan matriks 2 dimensi.


    4.3.2.5        Penjumlahan Matriks 2 Dimensi
    Menjumlahkan 2 buah matriks A + B akan menghasilkan matriks baru C.
    Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B
    sama dan seluruh elemen telah terisi nilai tertentu.


    C[i,j] = A [i,j] + B[i,j] untuk setiap i dan j tertentu.


    A = [ [2,2], [3,3] ]
    B = [ [3,3] , [2,2] ]
    C=A+B
    C = [ [5,5], [5,5] ]
    Pada dasarnya setiap elemen pada baris dan kolom tertentu akan dijumlahkan
    pada matriks lain pada elemen baris dan kolom tertentu.
    Contoh program :
    #include <stdio.h>


    void main(){
    int a[2][2] = { {1,2}, {3,4}};
    int b[2][2] = {{5,6}, {7,8}};
    int c[2][2];
    int baris, kolom;


    for(baris = 0; baris <2; baris++){


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                            Halaman: 26 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


     for(kolom = 0; kolom <2; kolom++){
        c[baris][kolom] = a[baris][kolom] + b[baris][kolom];} // menjumlahkan
    matriks.
    }
    for(baris = 0; baris <2; baris++){
     for(kolom = 0; kolom <2; kolom++){
    printf(“%d”,c[baris][kolom]); // menampilkan matriks hasil penjumlahan.
    }}}


    4.3.2.6        Pengurangan Matriks 2 Dimensi
    Mengurangkan 2 buah matriks A + B akan menghasilkan matriks baru C.
    Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B
    sama dan seluruh elemen telah terisi nilai tertentu.


    C[i,j] = A [i,j] - B[i,j] untuk setiap i dan j tertentu.


    A = [ [5,5], [6,6] ]
    B = [ [3,3] , [2,2] ]
    C=A–B
    C = [ [2,2], [4,4] ]
    Pada dasarnya setiap elemen pada baris dan kolom tertentu akan dikurangkan
    pada matriks lain pada elemen baris dan kolom tertentu.


    Contoh program :
    #include <stdio.h>


    void main(){
    int a[2][2] = { {1,2}, {3,4}};
    int b[2][2] = {{5,6}, {7,8}};
    int c[2][2];
    int baris, kolom;


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                   Halaman: 27 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                  Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer            TIK.PR02.001.01


    for(baris = 0; baris <2; baris++){
     for(kolom = 0; kolom <2; kolom++){
     c[baris][kolom] = b[baris][kolom] - a[baris][kolom];}
     // mengurangkan matriks. }
    for(baris = 0; baris <2; baris++){
     for(kolom = 0; kolom <2; kolom++){
    printf(“%d”,c[baris][kolom]); // menampilkan matriks hasil penjumlahan.
    }}}


    4.3.3 Array Matriks 3 Dimensi
    Pada dasarnya matriks array 3 dimensi memiliki kesamaan dalam hal
    karakteristik dan aturan – aturan pemberian nilai, pengubahan nilai. Hal yang
    harus diperhatikan adalah gambaran dari sebuah matriks array 3 dimensi yang
    berbeda dengan array 1 dimensi ataupun matriks array 2 dimensi. Matriks array
    3 dimensi bisa digambarkan seperti gambar 3 dimensi dan memang lebih
    banyak dipergunakan sebagai dasar perhitungan matematika pemrograman
    grafis yang menggunakan bentuk 3 dimensi.


          4.3.3.1   Deklarasi Array 3 Dimensi


    Tipe_data nama_matriks [elemen baris][elemen kolom][elemen detil_kolom];


    Tipe data dapat berupa integer, float, boolean atau tipe data dasar lainnya.
    Nama matriks disesuaikan dengan aturan penamaan variabel.
    Elemen baris menunjukkan maksimal elemen baris matriks.
    Elemen kolom menunjukkan maksimal elemen kolom matriks.
    Elemen detil kolom menunjukkan maksimal elemen detil dari setiap kolom
    matriks.




    Contoh :


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                     Halaman: 28 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                      Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                TIK.PR02.001.01


    Int a[2][2][2];
 Baris/ Kolom                   0                              1
 0                              Lihat tabel 1.1                Lihat tabel 1.2
 1                              Lihat tabel 1.3                Lihat tabel 1.4


    Pada matriks 3 dimensi memungkinkan untuk menyimpan elemen data pada
    setiap kolom dari matriks. Sehingga bentuknya menjadi seperti ini.


    Tabel 1.1
    Pada matriks (0,0)
 Indeks = 0                                       Indeks = 1
 Nilai = 10                                       Nilai = 20

    Tabel 1.2
    Pada matriks (0,1)
 Indeks = 0                                       Indeks = 1
 Nilai = 30                                       Nilai = 40

    Tabel 1.3
    Pada matriks (1,0)
 Indeks = 0                                       Indeks = 1
 Nilai = 50                                       Nilai = 60

    Tabel 1.4
    Pada matriks (1,1)
 Indeks = 0                                       Indeks = 1
 Nlai = 70                                        Nilai = 80

    Pada tabel – tabel diatas terlihat jelas bahwa penyimpanan data dilakukan pada
    elemen detil dari setiap elemen baris dan kolom.


        4.3.3.2     Memberikan dan membaca nilai dari matriks n dimensi.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 29 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                  Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer            TIK.PR02.001.01


    Metode yang digunakan untuk memberikan nilai pada matriks 3 dimensi
    memiliki kesamaan dengan matriks 2 dimensi ataupun dengan array 1 dimensi.
    Terdapat 3 metode yang dapat digunakan, antara lain :


        4.3.3.3     Melakukan Inisialisasi Matriks 3 Dimensi
    Inisialisasi matriks berarti memberikan nilai pada setiap elemen ketika matriks
    tersebut dideklarasikan. Metode ini hanya bisa dilakukan ketika kita sudah
    mengetahui nilai yang hendak dimasukkan kedalam setiap elemen data dari
    matriks.


    Contoh :
    Int a[2][2][2] = {
                         {  baris pertama
                           {1,2},  elemen baris pertama, kolom pertama
                           {3,4}  elemen baris pertama, kolom kedua
                       },
                       {  baris kedua
                       {5,6},  elemen baris kedua, kolom pertama
                       {7,8}  elemen baris kedua, kolom kedua
                      }}
    Pada contoh diatas dijabarkan keberadaan nilai pada setiap indeks baris dan
    kolom tertentu.


          4.3.3.4     Memberikan nilai secara langsung (assignment)
    Memberikan nilai secara langsung kepada matriks sama dengan memberikan
    nilai secara langsung kepda sebuah variabel, yang membedakan adalah dalam


    memberikan nilai kepada sebuah matriks kita harus mengetahui secara pasti
    indeks baris dan kolomnya terlebih dahulu.


    Contoh :


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 30 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


    Int a[2][2][2];
    A[0[0][0] = 100; // memberikan nilai pada detil kolom dari indeks baris pertama
    dan kolom pertama.


    Hal yang harus diperhatikan dalam pemberian nilai ke dalam sebuah matriks
    adalah indeks, kesalahan dalam pemberian indeks akan mengakibatkan
    pemberian data pada elemen yang salah ataupun akan mengakibatkan program
    error ( ini terjadi apabila indeks yang dituju lebih dari indeks maksimal yang
    telah ditetapkan sebelumnya).


    Contoh :
    int a[2][2][2]; // mendeklarasikan matriks array 2 dimensi, sebanyak 4 elemen.
    a[1][1][1] = 100; // benar. Akan memasukkan data ke elemen baris ke 1 dan
    kolom ke 1.
    A[3][2][1] = 20; // akan meberikan error pada program, karena elemen baris ke
    3 tidak pernah didefinisikan sebelumnya.


            o Melalui piranti masukan (keyboard ataupun file)
    Memberikan nilai kepada matriks array dapat dilakukan juga melalui keyboard
    secara langsung ataupun dengan membaca isi dari sebuah file. Metode yang
    digunakan pada setiap bahasa pemrograman berbeda – beda.


    Contoh :
    Program akan mengisi matriks 3 dimensi dengan menginput langsung dari
    keyboard dan langsung menampilkan ke standar output (layar monitor).




    #include <stdio.h>


    void main(){
    int a[2][2][2];


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                    Halaman: 31 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                 Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer           TIK.PR02.001.01


    int baris, kolom,detil_kolom;
    // meminta inputan matriks melalui keyboard.
    for(baris=0; baris< 2; baris++){
    for (kolom=0;kolom < 2; kolom++){
     for(detil_kolom=0; detil_kolom <2; detil_kolom++){
    scanf(“%d”,&a[baris][kolom][detil_kolom]); // meminta inputan dari keyboard
    dan langsung memasukkan ke dalam tiap elemen matriks.
    }}}
    // menampilkan isi dari elemen matriks ke layar.
    for(baris=0; baris< 2; baris++){
    for (kolom=0;kolom < 2; kolom++){
    for(detil_kolom=0; detil_kolom <2; detil_kolom++){
    printf(“%d”,a[baris][kolom][detil_kolom]);
    // menampilkan setiap elemen matriks ke layar.
    }}}}


          4.3.3.5   Mengubah isi dari matriks 3 Dimensi
    Pada dasarnya matriks n dimensi dapat kita lakukan manipulasi pada setiap
    elemen datanya, tapi kita tidak dapat menghapus isi dari elemen matriks
    tersebut. Metode yang digunakan untuk melakukan manipulasi / pengubahan isi
    dari elemen matriks tersebut sama dengan cara untuk memberikan nilai secara
    langsung (assignment). Elemen matriks yang telah didefinisikan pada deklarasi
    awal tidak dapat dirubah ataupun dihapus saat program berjalan (ingat
    karakteristik bahwa array bersifat statis).




    Contoh :
    int a[2][2][2]; // deklarasi matriks dengan 4 elemen.
    a[0][0][0] = 100; // memberi nilai 100 pada elemen (0,0).
    A[0][0][0] = 150; // merubah isi dari elemen (0,0) menjadi 150.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                      Halaman: 32 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                         Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                   TIK.PR02.001.01




            o Penerapan Matriks 3 Dimensi.
    Penerapan matriks 3 dimensi biasanya digunakan sebagai dasar perhitungan
    pemrograman grafis 3 dimensi, karena dari struktur datanya memang
    memenuhi kapasitas untuk menyimpan elemen data yang lebih besar daripada
    matriks 2 dimensi. Berikut akan diberikan contoh operasi penjumlahan dan
    pengurangan dari matriks 3 dimensi.


            o Penjumlahan Matriks 3 Dimensi
    Menjumlahkan 3 buah matriks A + B akan menghasilkan matriks baru C.
    Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B
    sama dan seluruh elemen telah terisi nilai tertentu.


    C[i,j,k] = A [i,,kj] + B[i,j,k] untuk setiap i, j dan k tertentu.


    A = [ [ [2,2], [3,3] ] , [ [4,4],[5,5] ] ]
    B = [ [ [3,3], [2,2] ] , [ [5,5],[4,4] ] ]
    C=A+B
    C = [ [ [5,5], [5,5] ] , [ [9,9],[9,9] ] ]


    Pada dasarnya setiap detil elemen pada baris dan kolom tertentu akan
    dijumlahkan dengan detil elemen baris dan kolom tertentu dari matriks lain.


    Contoh program :
    #include <stdio.h>




    void main(){
    int a[2][2][2] = {
                         {{1,2}, {3,4}} ,



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                            Halaman: 33 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi               Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer         TIK.PR02.001.01


                         {{5,6}, {7,8}} ,
                         };
    int b[2][2][2] = {
                         {{1,2}, {3,4}} ,
                         {{5,6}, {7,8}} ,
                         };
    int c[2][2[2]];
    int baris, kolom, detil_kolom;


    for(baris = 0; baris <2; baris++){
     for(kolom = 0; kolom <2; kolom++){
      for(detil_kolom = 0; detil_kolom <2; detil_kolom++){
     c[baris][kolom][detil_kolom] = a[baris][kolom][detil_kolom] + b[baris][kolom]
    [detil_kolom];
     // menjumlahkan matriks.
    }}}
    // menampilkan hasil penjumlahan ke layar.
    for(baris = 0; baris <2; baris++){
     for(kolom = 0; kolom <2; kolom++){
      for(detil_kolom = 0; detil_kolom <2; detil_kolom++){
    printf(“%d”,c[baris][kolom][detil_kolom]);
     // menampilkan matriks hasil penjumlahan.
    }}}
    // akhir program.
     }




            o Pengurangan Matriks 3 Dimensi
    Mengurangkan 2 buah matriks A + B akan menghasilkan matriks baru C.
    Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                   Halaman: 34 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                         Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                   TIK.PR02.001.01


    sama dan seluruh elemen telah terisi nilai tertentu.
    C[i,j,k] = A [i,,kj] + B[i,j,k] untuk setiap i, j dan k tertentu.


    A = [ [ [5,5], [6,6] ] , [ [7,7],[8,8] ] ]
    B = [ [ [3,3], [2,2] ] , [ [5,5],[4,4] ] ]
    C=A-B
    C = [ [ [2,2], [4,4] ] , [ [2,2],[4,4] ] ]


    Pada dasarnya setiap detil elemen pada baris dan kolom tertentu akan
    dikurangkan dengan detil elemen baris dan kolom tertentu dari matriks lain.


    Contoh program :
    #include <stdio.h>


    void main(){
    int a[2][2][2] = {
                         {{8,8}, {9,9}} ,
                         {{7,7}, {20,12}} ,
                         };
    int b[2][2][2] = {
                         {{1,2}, {3,4}} ,
                         {{5,6}, {7,8}} ,
                         };
    int c[2][2[2]];
    int baris, kolom, detil_kolom;
    for(baris = 0; baris <2; baris++){
     for(kolom = 0; kolom <2; kolom++){
      for(detil_kolom = 0; detil_kolom <2; detil_kolom++){
     c[baris][kolom][detil_kolom] = a[baris][kolom][detil_kolom] - b[baris][kolom]
    [detil_kolom];
     // mengurangkan matriks.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                            Halaman: 35 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


    }}}
    // menampilkan hasil pengurangan ke layar.
    for(baris = 0; baris <2; baris++){
     for(kolom = 0; kolom <2; kolom++){
      for(detil_kolom = 0; detil_kolom <2; detil_kolom++){
    printf(“%d”,c[baris][kolom][detil_kolom]);
     // menampilkan matriks hasil pengurangan.
    }}}
    // akhir program.
     }


    4.4      Penggunaan Prosedur dan Fungsi.
    Fungsi 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 karena bahasa
    C sendiri terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program bahasa C,
    minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak diterapkan
    dalam program-program C yang terstruktur. 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. Dalam bahasa C fungsi dapat dibagi menjadi dua, yaitu fungsi
    pustaka atau fungsi yang telah tersedia dalam bahasa C dan fungsi yang
    didefinisikan atau dibuat oleh programmer. Sebelum mengenal lebih lanjut
    mengenai fungsi , ada baikinya kita mempelajari sedikit tentang file library.




          4.4.1     Apa itu File Library ?




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 36 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


    File library adalah file yang telah disediakan pada masing – masing bahasa
    pemrograman yang didalamnya memuat fungsi – fungsi yang dapat digunakan
    untuk membantu pemrogram dalam menyusun kode program. Dalam setiap
    bahasa pemrograman biasanya menyediakan file library lebih dari satu.
    Pengetahuan terhadap fle library ini sangat penting,      karena biasanya setiap
    bahasa pemrograman mengelompokkan fungsi – fungsi tersebut ke dalam file
    library tertentu berdasarkan fungsionalitasnya.


    Contoh :
    File library stiring.h pada bahasa C, didalamnya terdapat fungsi – fungsi yang
    digunakan untuk melakukan manipulasi string.
    File library math.h pada bahasa C, didalamnya terdapat fungsi – fungsi yang
    digunakan untuk melakukan operasi matematika.
    Dan banyak lagi file – file library, tergantung dari bahasa pemrograman yang
    digunakan.


        4.4.1.1      Fungsi Operasi String (tersimpan dalam header file
        “string.h”)
        . strcpy()
        Berfungsi untuk menyalin suatu string asal ke variable string tujuan.
        Bentuk umum : strcpy(var_tujuan, string_asal);


        . strlen()
        berfungsi untuk memperoleh jumlah karakter dari suatu string.
        Bentuk umum : strlen(string);


        . strcat()
        Digunakan untuk menambahkan string sumber ke bagian akhir dari string
        tujuan.
        Bentuk umum : strcat(tujuan, sumber);
        . strupr()


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                      Halaman: 37 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


        Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf
        capital.
        Bentuk umum : strupr(string);


        strlwr()
        Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf
        kecil semua.
        Bentuk umum : strlwr(string);


        . strcmp()
        Digunakan untuk membandingkan dua buah string.
        Hasil dari fungsi ini bertipe integer dengan nilai :
        (a) Negative, jika string pertama kurang dari string kedua.
        (b) Nol, jika string pertama sama dengan string kedua
        (c) Positif, jika string pertama lebih besar dari string kedua.
        Bentuk umum : strcmp(string1, string2);




        4.4.1.2        Fungsi   Operasi     Karakter     (tersimpan       dalam    header
        “ctype.h”)


        . islower()
        Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter
        merupakan huruf kecil.
        Bentuk umum : islower(char);


        . isupper()
        Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter
        merupakan huruf kapital.
        Bentuk umum : isupper(char);
        . isdigit()


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 38 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


        Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter
        merupakan sebuah digit.
        Bentuk umum : isdigit(char);


        . tolower()
        Fungsi akan mengubah huruf capital menjadi huruf kecil.
        Bentuk umum : tolower(char);


        . toupper()
        Fungsi akan mengubah huruf kecil menjadi huruf kapital.
        Bentuk umum : toupper(char);


        4.4.1.3    Fungsi     Operasi     Matematik     (tersimpan   dalam     header
        “math.h” dan “stdlib.h”)


        . sqrt()
        Digunakan untuk menghitung akar dari sebuah bilangan.
        Bentuk umum : sqrt(bilangan);


        . pow()
        Digunakan untuk menghitung pemangkatan suatu bilangan.
        Bentuk umum : pow(bilangan, pangkat);


        . sin(), cos(), tan()
        Masing-masing digunakan untuk menghitung nilai sinus, cosinus dan
        tangens dari suatu sudut.
        Bentuk umum :
        sin(sudut);
        cos(sudut);
        tan(sudut);
        . atof()


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                      Halaman: 39 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


        Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe
        double.
        Bentuk umum : atof(char x);


        . atoi()
        Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe
        integer.
        Bentuk umum : atoi(char x);


        . div()
        Digunakan untuk menghitung hasil pembagian dan sisa pembagian.
        Bentuk umum : div_t div(int x, int y)


        Strukturnya :
        typedef struct
        { int qout; // hasil pembagian
        int rem // sisa pembagian
        } div_t;


        . max()
        Digunakan untuk menentukan nilai maksimal dari dua buah bilangan.
        Bentuk umum : max(bilangan1, bilangan2);


        . min()
        Digunakan untuk menentukan bilangan terkecil dari dua buah bilangan.
        Bentuk umum : min(bilangan1, bilangan2);




        4.4.2      Membuat fungsi sendiri


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                    Halaman: 40 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


    Meskipun hampit setiap bahasa pemrograman telah menyediakan berbagai
    macam fungsi sesuai dengan kegunaannya, pada implementasinya pemrogram
    harus memiliki kemampuan untuk mendefisinikan fungsi sendiri. Berikut akan
    dijelaskan keuntungan yang diperoleh dengan memecah bagian kode program ke
    dalam fungsi – fungsi kecil.


    -     Sebuah program berisikan sekumpulan instruksi logis yang dieksekusi
          berdasarkan urutan, dalam penulisan program yang besar ada kemungkinan
          baris – baris kode program yang berulang. Dengan menggunakan fungsi,
          maka perulangan kode ini tidak perlu terjadi.
    -     Pemakaian fungsi dapat menyederhanakan penulisan kode program dan
          mempengaruhi terhadap ukuran file dari program yang dihasilkan.
    -     Pemakaina fungsi dapat memudahkan proses debug (pemeriksaan) ketika
          terjadi kesalahan pada kode program.
    -     Pemakaian fungsi dapat memudahkan pemrogram ketika mengembangkan
          program yang lain, dan tidak perlu menuliskan kode program untuk sebuah
          masalah yang sama.
    -     Pemakaian fungsi dapat meningkatkan efisiensi waktu pengembangan
          program.


    Pada dasarnya fungsi dibagi menjadi 2, yaitu :
    -     Fungsi
          Fungsi adalah sebuah modul yang berisi sekumpulan kode program yang
          disusun untuk sebuah tujuan tertentu. Fungsi akan mengembalikan sebuah
          nilai tertentu kepada pemanggilnya.


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


          tipe_fungsi nama_fungsi(parameter_fungsi);


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                      Halaman: 41 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01




          Sedangkan bentuk umum pendefinisian fungsi adalah :


          Tipe_fungsi nama_fungsi(parameter_fungsi)
          {
          statement
          statement
          ………...
          ………...
          return nilai_tertentu
          }


          Hal-hal yang perlu diperhatikan dalam penggunaan fungsi :


          1. Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi
              dengan nilai keluaran bertipe integer.
          2. Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka
              diperlukan pendefinisian penentu tipe fungsi.
          3. Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke
              dalam tipe void
          4. Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa
              pernyataan return.
          5. Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.


    -     Prosedur
          Pada dasarnya sebuah modul juga berisi sekumpulan kode program yang
          disusun untuk sebuah tujuan tertentu, yang membedakan dengan fungsi
          adalah prosedur tidak mengembalikan nilai kepada pemanggilnya. Prosedur
          hanya menjalankan sekumpulan instruksi tanpa mengembalikan nilai apapun.


          Deklarasi Prosedur


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 42 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                 Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer           TIK.PR02.001.01


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


        void nama_prosedur(parameter_prosedur);


        Pada pendeklarasian prosedur ditambahkan kata kunci void, yang berarti
        tidak mengembalikan nilai apapun kepada pemanggilnya.
        Sedangkan bentuk umum pendefinisian prosedur adalah :


        void nama_prosedur(parameter_prosedur)
        {
        statement
        statement
        ………...
        ………...
        }


        4.4.3    Parameter Formal dan Parameter Aktual


        1. Parameter Formal adalah variabel yang ada pada daftar parameter
        dalam
        definisi fungsi.
        2. Parameter Aktual adalah variabel (parameter) yang dipakai dalam
        pemanggilan fungsi.




        4.4.4 Cara Melewatkan Parameter


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                    Halaman: 43 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                  Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer            TIK.PR02.001.01


        Cara melewatkan suatu parameter dalam Bahasa C ada dua cara yaitu :


        1. Pemanggilan Secara Nilai (Call by Value)
            o Call by value akan menyalin nilai dari parameter aktual ke parameter
               formal
            o Yang dikirimkan ke fungsi / prosedur adalah nilai dari datanya, bukan
               alamat
                memori letak dari datanya.
            o Fungsi / prosedur yang menerima kiriman nilai akan menyimpannya
              
               alamat terpisah dari nilai aslinya yang digunakan oleh bagian program
               yang memanggil fungsi / prosedur.
            o Perubahan nilai di fungsi / prosedur (parameter formal) tidak akan
               merubah nilai asli di bagian program yang memanggilnya.
            o Pengiriman parameter secara nilai adalah pengiriman searah, yaitu
               dari bagian program yang memanggil fungsi / prosedur ke fungsi /
               prosedur yang dipanggil.
            o Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak
                 hanya untuk sebuah variabel, elemen array atau konstanta saja.


        2. Secara Referensi (Call by Reference)
            o Pemanggilan secara Referensi merupakan upaya untuk melewatkan
               alamat dari suatu variabel ke dalam fungsi / prosedur.
            o Yang dikirimkan ke fungsi / prosedur adalah alamat letak dari nilai
               datanya, bukan nilai datanya.
            o Fungsi / prosedur yang menerima kiriman alamat ini makan
              
               menggunakan alamat yang sama untuk mendapatkan nilai datanya.
            o Perubahan nilai di fungsi / prosedur akan merubah nilai asli di bagian
               program yang memanggil fungsi / prosedur.
            o Pengiriman parameter secara referensi adalah pengiriman dua arah,




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 44 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                       Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                 TIK.PR02.001.01


                     yaitu dari fungsi / prosedur pemanggil ke fungsi / proisedur yang
                  dipanggil dan juga sebaliknya.
            o Pengiriman secara acuan tidak dapat bdilakukan untuk suatu
                  ungkapan.


        Penggolongan Variabel berdasarkan Kelas Penyimpanan (Storage
        Class)
        Ketika mempelajari tentang metode untuk melewatkan parameter ke dalam
        fungsi / prosedur, hendaknya kita juga mengetahui jenis – jenis variabel
        dengan ruang lingkupnya masing – masing.


        4.4.5 Variabel lokal
        Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi / prosedur
        tertentu dan hanya berlaku pada fungsi / prosedur tersebut..


            4.4.5.1       Sifat-sifat variabel lokal :
            o Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan
                  lenyap ketika proses eksekusi terhadap fungsi berakhir.
            o Hanya dikenal oleh fungsi tempat variabel dideklarasikan.
            o Tidak ada inisialisasi secara otomatis (saat variabel diciptakan
                  nilainya random).
            o Dideklarasikan dengan menambahkan kata “auto” (opsional).


        4.4.6 Variabel global (eksternal)
        Variabel global (eksternal) adalah variabel yang dideklarasikan di luar
        fungsi.


            4.4.6.1 Sifat-sifat variabel global :
            o Dikenal (dapat diakses) oleh semua fungsi.
            o Jika tidak diberi nilai awal secara otomatis berisi nilai nol.



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 45 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                       Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                 TIK.PR02.001.01


            o Dideklarasikan dengan menambahkan kata “extern” (opsional).
        4.4.7 Variabel Statis
        Variabel statis adalah variabel yang nilainya tetap dan bisa berupa variabel
        lokal (internal) dan variabel global (eksternal).


            4.4.7.1     Sifat-sifat variabel statis :
            o Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi
               tempat variabel dideklarasikan.
            o Jika bersifat eksternal (global), maka variabel dapat dipergunakan
               oleh semua fungsi yang terletak pada program yang sama.
            o Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi
               telah berakhir.
            o Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi
               dipanggil pertama kali.
            o Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
            o Dideklarasikan dengan menambahkan kata “static”.


        4.4.8 Variabel Register
        Variabel Register adalah variabel yang nilainya disimpan dalam resister dan
        bukan dalam memori RAM.


            4.4.8.1    Sifat-sifat variabel register :
            o Hanya dapat diterapkan pada variabel lokal yang bertipe int dan
               char.
            o Digunakan untuk mengendalikan proses perulangan (looping).
            o Proses perulangan akan lebih cepat karena variabel register memiliki
               kecepatan yang lebih tinggi dibandingkan variabel biasa.
            o Dideklarasikan dengan menambahkan kata “register”.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 46 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                  Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer            TIK.PR02.001.01




    Contoh 1.1
    Program akan mendefinisikan sebuah fungsi untuk menghitung nilai akhir ujian
    berdasarkan rumus perhitungan : Nilai akhir = (nilai ujian * 3) / 4. Hasil
    perhitungan akan ditampilkan pada fungsi pemanggilnya.


    #include <stdio.h>


    int hitung_nilai(int nilai){
    int n_akhir;
    n_akhir = (nilai*3)/4;
    return n_akhir;
    }
    void main(){
    int nilai, n_akhir;
    scanf(“%d”,&nilai); // meminta inputan nilai akhir dari keyboard.
    n_akhir = hitung_nilai(nilai);
     // memanggil fungsi hitung nilai dan menampung hasil kembaliannya.
    printf(“Nilai akhir adalah : %d”, n_akhir); // mencetak hasil ke layer monitor.
    }


    Hal yang harus diperhatikan adalah antara variabel n_akhir pada void main
    dengan variabel n_akhir dari fungsi hitung nilai memang memiliki kesamaan,
    namun secara pengalokasian di dalam memori sudah berbeda. Variabel n_akhir
    menjadi variabel lokal pada fungsi nya masing – masing.


    Contoh 1.2
    Program akan mendefisinikan sebuah prosedur untuk menuliskan hasil inputan
    array dari keyboard ke layer. Prosedur akan melewatkan paramter by value.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 47 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                      Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                TIK.PR02.001.01


    #include <stdio.h>


    void tampil(int data[]){
    for(int baris=0; baris < 5; baris++){
    printf(“%d”,data[baris]);
    }}
    void main(){
    int data[5];


    for(int baris = 0; baris < 5; baris++){
    scanf(“%d”, &data[baris]);
    }
    tampil(data);


     // mengirimkan nilai dari variabel array data ke prosedur tampil.
    // tidak menerima nilai kembalian dari prosedur tampil.
    }
    Hal yang harus diperhatikan, meskipun pada void main mengrimkan paramerer
    bernama data ke dalam prosedur tampil yang diterima oleh sebuah variabel
    bernama data juga, pada prinsipnya kedua pihak memiliki alokasi yang berbeda
    di memori computer meskipun memiliki nama yang sama. Nama variabel
    pengirim dan penerima tidak harus sama, penyamaan nama hanya digunakan
    untuk mempermudah penulisan kode program saja.


    Contoh 1.3
    Program akan melewatkan parameter by reference, dimana akan merubah nilai
    sebuah variabel dari prosedur lain.


    #include <stdio.h>
    void ubah_nilai(int &nilai){
    nilai = 100; // mengubah nilai dari pointer nilai menjadi 100.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                         Halaman: 48 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


       }


       void main(){
       int a = 10;
       printf(“Nilai a adalah : %d”,a);
       // sebelum dirubah nilainya dalam prosedur ubah nilai.
       Ubah_nilai(a);
       // mengirimkan alamat dari variabel a ke prosedur ubah nilai.
       printf(“Nilai a sekarang : %d”, a);
       // nilai a sekarang sudah berubah menjadi 100.
       }


 4.5          Pemrograman Grafik.
       Grafik komputer adalah gambar atau grafik yang dihasilkan oleh komputer.
       Teknik-teknik yang dipelajari dalam grafik komputer adalah teknik-teknik
       bagaimana membuat atau menciptakan gambar menggunakan komputer. Ada
       perbedaan yang sangat mendasar antara foto dan gambar, yaitu pada foto
       semua detail obyek terlihat sedangkan pada gambar (baik itu gambar manusia
       atau gambar komputer) tidak dapat memperlihatkan semua detail yang ada
       tetapi hanya detail-detail yang dianggap penting dalam menunjukkan pola suatu
       gambar. Grafik komputer merupakan perangkat (tool) dasar yang digunakan
       untuk membuat gambar dengan komputer. Dengan menggunakan perangkat
       ini,   penciptaan   gambar     dapat    dilakukan   bahkan   dimudahkan     dengan
       menggunakan komputer
       Program atau tool yang digunakan untuk menciptakan atau memanipulasi
       gambar / foto sudah sangat banyak, mulai dari Adobe Photoshop, Corel Draw,
       Adobe Image Ready, dll. Pada pembahasan ini tidak akan membahas mengenai
       program atau tool tersebut, melainkan akan membahas mengenai dasar
       pemrograman grafik menggunakan bahasa pemrograman Turbo C.


       File library yang digunakan


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                         Halaman: 49 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                      Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer                TIK.PR02.001.01


    Fle library yang memuat fungsi – fungsi dalam operasi pemgrograman grafik di
    kompiler turbo C adalah : graphics.h.
    File tersebut harus dimuat terlebih dahulu pada tubuh program ketika hendak
    memulai menulis program. Berikut akan dijelaskan beberapa fungsi – fungsi yang
    penting dalam pemrograman grafik di Turbo C.


          4.5.1         Fungsi – fungsi penting pada proses inisialisasi modus
    grafis.


    -     void initgraph (int far * graphdriver, int far * graphmode, char far *
          pathtodriver)
          Untuk menjalankan sistem kepada modus grafik, prosedur initgraph harus
          dipanggil terlebih dahulu. Prosedur ini akan memanggil driver grafik dari
          tempat penyimpanan tertentu ataupun menvalidasi dari driver yang telah
          diregister di dalam sistem dan kemudian menjalankan sistem pada modus
          grafik. Selain itu, initgraph juga melakukan pengaturan ulang terhadap
          pengaturan grafik kembali ke pengaturan awal.
          Berikut adalah kegunaan dari setiap parameter pada prosedur initgraph :


              •   int far *graphdriver, ini akan mendeskripsikan driver grafis yang
                  akan digunakan ke dalam sistem nantinya.
              •   int far *graphmode, ini akan mendeskripsikan modus grafik yang
                  digunakan. Apabila nilai dari graphmode = DETECT, maka akan
                  membawa sistem kepada resolusi maksimal yang memungkinkan.
                  (Disarankan    untuk    memberikan       nilai   DETECT   pada   parameter
                  graphmode, dimaksudkan agar sistem langsung menyesuaikan diri
                  dengan kondisi resolusi maksimal).
              •   char far *pathtodriver, ini akan mendeskripsikan jalur dari driver
                  yang akan dimuat ke dalam sistem. File driver yang akan dicari
                  berkestensi (.BGI), dan apabila nilainya kosong maka pencarian akan
                  dilakukan pada direktori yang aktif saat ini.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                             Halaman: 50 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01




    -     void far closegraph(void)
          Prosedur ini digunakan untuk mengembalikan modus grafik kepada kondisi
          sebelum pemanggilan prosedut initgraph(), dan seluruh alokasi memori yang
          diakibatkan penggunaan modus grafik tersebut akan dilepaskan dan modus
          sistem kembali ke modus teks.


    -     void far detechgraph(int far * graphdriver, int far * graphmode)
          Prosedur ini digunakan untuk mendeteksi adaptor grafik yang terinstall pada
          sistem kita, apabila tidak ada adaptor grafik yang terinstall pada komputer
          kita maka akan menampilkan pesan kesalahan. Prosedur ini berfungsi untuk
          melihat kapasitas maksimal yang dimiliki oleh sistem grafis kita.


    -     int registerbgidriver(void (*driver)(void))
          Fungsi ini digunakan untuk melakukan registrasi terhadap driver grafis yang
          akan digunakan. File driver dapat secara langsung dimuat dari media
          penyimpanan ataupun dilakukan koversi terlebih dahulu ke dalam file (.OBJ)
          menggunakan (BINOBJ.exe). Apabila proses registrasi berhasil, maka akan
          mengembalikan nilai positif dan apabila gagal maka akan mengembalikan
          nilai
          negatif. Setelah proses registrasi berhasil, maka initgraph dapat memanggil
          sebagai driver yang teregister di dalam sistem.


    -     int fat graphresult(void)
          Fungsi ini akan mengembalikan nilai yang dihasilkan dari setiap operasi
          grafikyang dilakukan. Fungsi ini hanya akan berisi 2 kemungkinan, pertama
          adalah operasi grafis berhasil dilakukan dan kedua adalah operasi grafis gagal
          dilakukan. Nilai kesalaahan yang dimuat mulai dari -18 hingga 0, dimana
          pada setiap nilai tersebut memiliki jenis kesalahan sendiri – sendiri.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 51 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                      Kode Modul
           Sektor Telematika Sub Sektor Programmer Komputer                TIK.PR02.001.01




 Kode                                Konstanta                Pesan Kesalahan
 0                                   grOk                     Tidak ada kesalahan
 -1                                  grNoInitGraph            (BGI) driver tidak terinstall
 -2                                  grNoDetected             Perangkat grafis tidak ada
 -3                                  grFileNotFound           File driver tidak ditemukan
 -4                                  grInvalidDriver          File driver tidak valid
 -5                                  grNoLoadMem              Memori tidak cukup
 -6                                  grNoScanMem              Memori tidak cukup untuk scan fill
 -7                                  grNoFloodMem             Memori tidak cukup untuk flood
                                                              fill
 -8                                  grFontNofFound           File huruf tidak ada
 -9                                  grNoFontMem              Memori tidak cukup load huruf
 -10                                 grInvalidMode            Modus grafis tidak valid



 -11                                 grError                  Grafis error
 -12                                 grIOError                Grafis I/O error
 -13                                 grInvalidFont            File huruf tidak valid
 -14                                 grInvalidFontNum         Nomor huruf tidak valid



 -15                                 grInvalidDeviceNum       Nomor devicde tidak valid
 -18                                 grInvalidVersion         Versi tidak valid


       Pada implementasinya fungsi – fungsi yang digunakan untuk melakukan
       inisialisasi modus grafis cukup banyak, beberapa contoh prosedur diatas adalah
       prosedur yang paling sering digunakan dan sudah mampu untuk melakukan
       manipulasi grafis atapun merubah sistem dari modus teks ke dalam modus
       grafis. Untuk lebih jelasnya, silahkan melihat tutorial atau dokumentaso setiap
       bahasa pemrograman.
             4.5.2        Fungsi – fungsi penting dalam memanipulasi obyek grafis.


       -     void far setcolor(int color)



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                               Halaman: 52 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


          Prosedur yang digunakan untuk melakukan editing terhadap warna dari
          sistem grafis yang dipakai. Warna yang dirubah hanya warna tulisan ataupun
          obyek saja.


    -     int far getcolor(void)
          Fungsi yang digunakan untuk memperoleh warna yang aktif saat ini. Nilai
          yang dihasilkan berupa nilai integer, dimana setiap nilai intereger tersebut
          memiliki arti warna tertentu.


    -     void far setbkcolor(int color)
          Prosedur yang digunakan untuk melakukan manipulasi warna backround dari
          sebuah obyek atau tulisan.


    -     int far getbkcolo(void)
          Fungsi yang digunakan untuk memperoleh warna background dari sebuah
          obyek atau tulisan.


    -     int far getmaxcolor(void)
          Fungsi yang digunakan untuk memperoleh maksimal warna yang dapat
          digunakan / dilewatkan oleh prosedur setcolor atau setbkcolor. Setiap driver
          grafis tertentu memiliki kapasitas yang berbeda – beda. Sebagai contoh :
          Pada driver 256K EGA memiliki maksimal warna 15, yang berarti setcolor
          dapat melewatkan parameter nilai dari 0 sampai 15, sedangkan pada driver
          CGA (Hercules Monochrome Adapter) akan mengembalikan nilai 1.


    -     int far getmaxx(void)
          Fungsi ini mengembalikan nilai maksimum dari kordinat x dari sistem. Nilai
          maksimum dari kordinat ini tergantung dari driver dan modus grafik system.
    -     int far getmaxy(void)
          Fungsi ini mengembalikan nilai maksimum dari kordinat y dari sistem. Nilai
          maksimum dari kordinat ini tergantung dari driver dan modus grafik sistem.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                      Halaman: 53 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01




    -     int far getx(void)
          Fungsi ini akan mengembalikan nilai kordinat x berdasarkan posisi relative
          kursor saat itu.


    -     int far gety(void)
          Fungsi ini akan mengembalikan nilai kordinat y berdasarkan posisi relative
          kursor saat itu.


    -     void far setlinestyle(int linestyle, unsigned upattern, int thickness)
          Prosedur ini digunakan untuk melakukan pengaturan terhadap bentuk, jenis
          dan ketebalan dari garis lurus. Garis ini seringkali digunakan dalam membuat
          bentuk 2 dimensi seperti : garis lurus, rectangle, busur, lingkaran dan bentuk
          polygon. Terdapat 3 buah parameter, antara lain :
              •   int linestyle, mendeskripsikan jenis dari garis.
              •   unsigned upattern, mendeskripsikan bentuk dari garis.
              •   int thickness, mendeskripsikan ketebalan dari garis.


    -     void settextjustify (int horiz, int vertz)
          Prosedur ini digunakan untuk meletakkan sebuah string / kalimat berada
          pada posisi relatif terhadap batas horisontal (batas kiri layar) dan vertikal
          (batas atas layar).
          Pada implementasinya, kita dapat melakukan pengesetan ulang terhadap
          posisi relatif terhadap layar, seperti halnya posisi horisontal (LEFT_TEXT,
          CENTER_TEXT, RIGHT_TEXT) dan vertikal (BOTTOM_TEXT, CENTER_TEXT,
          TOP_TEXT). Prosedur ini hanya bekerja pada modus grafis dan tidak bekerja
          pada modus teks.


    -     void outtextxy(int x, int y, char * text)
          Prosedut outtextxy digunakan untuk menuliskan kalimat pada kordinat
          tertentu menggunakan modus grafis. Terdapat 3 parameter, antara lain :


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 54 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


              •   int x, akan mendeskripsikan nilai kordinat x.
              •   int y, akan mendeskripsikan nilai kordinat y.
              •   char * teks, berupa kalimat / string yang ingin dituliskan.


    -     void settextstyle( int font, int direction, int charsize)
          Prosedur ini digunakan untuk melakukan pengesetan terhadap ukuran dan
          jenis huruf yang digunakan pada modus grafis. Prosedur ini hanya berfungsi
          pada modus grafis saja dan tidak pada modus teks. Terdapat 3 parameter,
          antara lain :
              •   int font, akan mendeskripsikan jenis huruf yang digunakan. Terdapat 5
                  jenis huruf, yaiut : standar, sans_serif, gothic, triplex dan small font.
              •   Int direction, akan mendeskripsikan bagaimana sebuah kalimat aqkan
                  dituliskan ke dalam layar. Terdapat 2 parameter, yaitu : HORIZ_DIR
                  dan VERT_DIR. Dimana HORIZ_DIR akan menuliskan dari kiri ke
                  kanan, dan VERT_DIR akan menuliskan dari bawah ke atas.
              •   Int charsize, akan mendeskripsikan ukuran dari sebuah tulisan.
                  Rentang nilai dari 0 hingga 10 kali ukuran huruf biasa.
          Pada implementasinya, untuk memanipulasi tampilan obyek atau tulisan pada
          modus grafis terdapat cukup banyak fungsi – fungsinya. Pembahasan diatas
          mengacu pada fungsi – fungsi yang sering digunakan dan untuk lebih
          lengkapnya      silahkan    melihat   tutorial   /   dokumentasi   setiap    bahasa
          pemrograman.


          4.5.3        Fungsi – fungsi penting untuk membuat obyek 2 Dimensi


    -     void far line( int x1, int y1, int x2, int y2)
          Prosedur ini akan menggabarkan garis linier / lurus dari titik kordinat (x1,y1)
          hingga titik kordinat (x2,y2) berdasarkan warna yang aktif saat itu.
          Pengubahan      warna      dapat   dilakukan     dengan   menggunakan       prosesur
          setcolor(int color).



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                             Halaman: 55 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                    Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer              TIK.PR02.001.01


    -     void far linerel(int dx, int dy)
          Prosedur ini akan menggambarkan garis linier / lurus dari posisi saat ini
          hingga jarak relative horisontal yang ditentukan dalam dx dan jarak relative
          vertikal yang ditentukan dalam dy.


    -     void far lineto (int x, int y)
          Prosedur ini akan menggambarkan garis lurus / linier dari posisi saat ini
          hingga kordinat yang dituju yang didefinisikan dalam nilai x dan y. Setelah itu
          posisi kursor akan dipindah ke kordinat (x,y).


    -     void far ellipse(int x, int y, int stangle, int endangle,int xradius, int
          yradius)
          Prosedur ini digunakan untuk menggambar busur elips berdasarkan warna
          yang aktif saat itu. Terdapat 6 buah parameter, antara lain :
              •   int x, ini sebagai pusat kordinat x penggambaran.
              •   int y, ini sebagai pusak kordinat y penggambaran.
              •   int stangle, sebagai sudut awal (dalam derajat)
              •   int endangle, sebagai sudut akhir (dalam derajat)
              •   int xradius, sebagai diameter horizontal dari elips yang digambar.
              •   Int yradius,sebagai diameter vertikal dari elips yang digambar.


    -     void far fillellipse(int x, int y,int xradius, int yradius)
          Prosedur ini digunakan untuk menggambar busur elips dan mengisi elips
          tersebut menggunakan warna dan metode pengisian yang telah diatur
          sebelumnya menggunakan prosedur setfilltype(). Terdapat 4 buah parameter,
          antara lain :
              •   int x, ini sebagai pusat kordinat x penggambaran.
              •   int y, ini sebagai pusak kordinat y penggambaran.
              •   int xradius, sebagai diameter horizontal dari elips yang digambar.
              •   Int yradius,sebagai diameter vertikal dari elips yang digambar.



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 56 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                    Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer              TIK.PR02.001.01




    -     void far arc(int x, int y, int stangle, int endangle, int radius)
          Prosedur ini digunakan untuk menggambarkan bentuk busur. Terdapat 5
          buah parameter, antara lain :
              •   int x, ini sebagai pusat kordinat x penggambaran.
              •   int y, ini sebagai pusak kordinat y penggambaran.
              •   int stangle, sebagai sudut awal (dalam derajat)
              •   int endangle, sebagai sudut akhir (dalam derajat)
              •   int radius, sebagai diameter dari busur yang akan digambar.


    -     void far circle(int x, int y, int radius)
          Prosedur ini digunakan untuk menggambarkan bentuk lingkaran. Terdapat 3
          buah parameter, antara lain :
              •   int x, ini sebagai pusat kordinat x penggambaran.
              •   int y, ini sebagai pusak kordinat y penggambaran.
              •   int radius, sebagai diameter dari busur yang akan digambar.


    -     void far rectangle(int left, int top, int right, int bottom)
          Prosedur ini digunakan untuk menggambar bentuk rectangle (bentuk bujur
          sangkar dengan siku berbentuk sedikit elips). Terdapat 4 buah parameter,
          antara lain :
              •   int top, menunjukkan kordinat x dari ujung kiri atas.
              •   Int left, menunjukkan kordinat y dari ujung kiri atas.
              •   Int right, menunjukkan kordinat x dari ujung kanan bawah.
              •   Int bottom, menunjukkan kordinat y dari ujung kanan bawah.
          Prosedur akan menggambarkan sesuai dengan warna dan bentuk garis yang
          telah didefinisikan sebelumnya.




    -     void far drawpoly(int numpoints, int far *polypoints)



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                           Halaman: 57 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                    Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer              TIK.PR02.001.01


          Prosedur ini digunakan untuk menggambar bentuk polygon menggunakan
          bentuk garis dan warna yang telah didefinisikan sebelumnya. Terdapat 2
          buah parameter, antara lain :
              •   int numpoints, mendeskripsikan jumlah titik yang ada.
              •   Int far *polypoints, mendeskripsikan sekumpulan pasangan titik yang
                  digunakan sebagai titik kordinat dari bentuk polygon. Jumlah pasangan
                  titik ini = 2 X jumlah titik (numpoints). Setiap pasang titik
                  medeskripsikan kordinat (x,y) dari bentuk polygon.


    -     void far fillpoly(int numpoints, int far *polypoints)
          Prosedur ini sama persis dengan prosedur drawpoly diatas, perbedaannya
          adalah prosedur ini akan mengisi bentuk polygon dengan warna dan model


          pengisian yang telah didefinisikan sebelumnya. Penjelasan mengenai tiap
          parameter, sama dengan penjelasan pada prosedur drawpoly.


    -     void far pieslice(int x, int y, int stangle, int endangle, int radius)
          Prosedur ini digunakan untuk menggambarkan bentuk diagram pie. Terdapat
          5 buah parameter, antara lain :
              •   int x, ini sebagai pusat kordinat x penggambaran.
              •   int y, ini sebagai pusak kordinat y penggambaran.
              •   int stangle, sebagai sudut awal (dalam derajat)
              •   int endangle, sebagai sudut akhir (dalam derajat)
              •   int radius, sebagai diameter dari busur yang akan digambar.
          Perbedaan antara arc dengan pieslice adalah pada bentuk ini akan dilakukan
          pengisian warna. Warna yang diisikan sesuai pengaturan warna melalui
          prosedur setfillstyle().




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 58 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                    Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer              TIK.PR02.001.01


    4.5.4       Contoh – contoh program :


    Contoh 1.1
    Program mendaftarkan driver grafis EGAVGA ke dalam sistem.


    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void)
    {
        /* request auto detection */
        int gdriver = DETECT, gmode, errorcode;
        errorcode = registerbgidriver(EGAVGA_driver);
        /*apabila registrasi gagal */
        if (errorcode < 0) {
            printf("Graphics error: %sn", grapherrormsg(errorcode));
            printf("Press any key to halt:");
            getch();
            exit(1); /* terminate with an error code */
        }
        /* initialisasi graphics*/
        initgraph(&gdriver, &gmode, "");
        /* memeriksa apakah inisialisasi grafis berhasil*/
        errorcode = graphresult();
        if (errorcode != grOk) /* an error occurred */ {
            printf("Graphics error: %sn", grapherrormsg(errorcode));
            printf("Press any key to halt:");
            getch();
            exit(1); /* terminate with an error code */


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 59 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                        Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                  TIK.PR02.001.01


        }


    Contoh 1.2
    Program membuka modus grafis dan menggambarkan garis sederhana
    kemudian mengembalikan ke modus teks.


    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void)
    {
        /* auto detect */
        int gdriver = DETECT, gmode, errorcode;
    // inisialisasi modus grafis.
        initgraph(&gdriver, &gmode, "");
        errorcode = graphresult(); // melihat apakah modus grafis berhasil di load.
        if (errorcode != grOk) { // gagal inisialisasi modus grafis.
            printf("Graphics error: %sn", grapherrormsg(errorcode));
            printf("Press any key to halt:");
            getch();
            exit(1);         /* program terminasi dengan ada error */
        }
        line(0, 0, getmaxx(), getmaxy()); // menggambar garis sederhana.
        closegraph(); // mengembalikan ke modus teks.
        return 0; // program terminasi tanpa ada error.
        }




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                           Halaman: 60 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                    Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer              TIK.PR02.001.01


    Contoh 1.3
    Program untuk menuliskan teks ke dalam modus grafis pada posisi kordinat
    (50,50).


    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void){
        /*auto detect */
        int gdriver = DETECT, gmode, errorcode;
        int midx, midy;
        /* inisialisasi modus grafis*/
        initgraph(&gdriver, &gmode, "");
        errorcode = graphresult();
        // memeriksa apakah berhasil meload modus grafis.
        if (errorcode != grOk) { // apabila terjadi kegagalan.
          printf("Graphics error: %sn", grapherrormsg(errorcode));
          printf("Press any key to halt:");
          getch();
          exit(1); /* program di terminasi dengan ada kesalahan */ }
        midx =50;
        midy = 50;
          outtextxy(midx, midy, "Testing Sederhana");        // menulis pada kordinat
    (50,50)
        closegraph(); // kembali ke modus teks.
        return 0; /* program di terminasi tanpa ada kesalahan */
    }




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 61 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                        Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                  TIK.PR02.001.01


    Contoh 1.4
    Program untuk menggambar garis lurus dari kordinat (10,20) hingga (30,50)
    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void)
    {
        /* auto detect */
        int gdriver = DETECT, gmode, errorcode;
        // inisialisasi modus grafis.
        initgraph(&gdriver, &gmode, "");
        errorcode = graphresult(); // melihat apakah modus grafis berhasil di load.
        if (errorcode != grOk) { // gagal inisialisasi modus grafis.
            printf("Graphics error: %sn", grapherrormsg(errorcode));




            printf("Press any key to halt:");
            getch();
            exit(1);         /* program terminasi dengan ada error */
        }
        line(10,20, 30, 50); // menggambar garis sederhana.
        closegraph(); // mengembalikan ke modus teks.
        return 0; // program terminasi tanpa ada error.
        }


    Contoh 1.5
    Program untuk menggambar lingkaran pada kordinat (20,20) dengan radius 50.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                           Halaman: 62 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                    Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer              TIK.PR02.001.01


    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void){
        /* Auto Detect */
        int gdriver = DETECT, gmode, errorcode;
        int midx, midy;
        int radius = 100;
        /* inisialisasi ke modus grafis */
        initgraph(&gdriver, &gmode, "")
        errorcode = graphresult(); // melihat apakah berhasil meload modus grafis.
        if (errorcode != grOk) { // terdapat kegagalan dalam meload modus grafis.
            printf("Graphics error: %sn", grapherrormsg(errorcode));
            printf("Press any key to halt:");
            getch();
            exit(1); /* program di terminasi dengan ada kesalahan */
        }
        midx = getmaxx() / 2;
        midy = getmaxy() / 2;
        setcolor(getmaxcolor()); // atur warna sistem.
        circle(midx, midy, radius); // mengammbar bentuk lingkaran.
        closegraph(); // mengembalikan ke modus teks.
        return 0; /* program di terminasi dengan ada kesalahan */
    }
    Contoh 1.6
    Program untuk menggambarkan bentuk rectangle pada kordinat (10,10) dan
    (50,100).




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 63 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01


    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void){
       /* Auto Detect */
       int gdriver = DETECT, gmode, errorcode;
       int midx, midy;
       int radius = 100;
       /* inisialisasi ke modus grafis */
       initgraph(&gdriver, &gmode, "")
       errorcode = graphresult();
       // melihat apakah berhasil meload modus grafis.
       if (errorcode != grOk) { // terdapat kegagalan dalam meload modus grafis.
           printf("Graphics error: %sn", grapherrormsg(errorcode));
           printf("Press any key to halt:");
           getch();
           exit(1); /* program di terminasi dengan ada kesalahan */
       }


       left = getmaxx() / 2 - 50;
       top = getmaxy() / 2 - 50;
       right = getmaxx() / 2 + 50;
       bottom = getmaxy() / 2 + 50;
       rectangle(left,top,right,bottom); // menggambar bentuk rectangle.
       closegraph(); // mengembalikan ke modus teks.
       return 0; /* program di terminasi dengan ada kesalahan */ }




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                       Halaman: 64 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                      Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer                TIK.PR02.001.01


    Contoh 1.7
    Program untuk menggambar bentuk poligon dengan 5 titik. Masing – masing
    titik kordinat akan digambarkan langsung di dalam program.


    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void)
    {
         /* auto detect */
         int gdriver = DETECT, gmode, errorcode;
         int maxx, maxy;


         /* array verteks dari poligon */
         int poly[10];
        initgraph(&gdriver, &gmode, ""); // inisialisaasi modus grafis.
         errorcode = graphresult(); // melihat apakah modus grafis berhasil di load.
         if (errorcode != grOk) { // terjadi kegagalan dama load modus grafis.
           printf("Graphics error: %sn", grapherrormsg(errorcode));
           printf("Press any key to halt:");
           getch();
           exit(1); // program diterminasi dengan ada keslahan.
     }
         maxx = getmaxx();
         maxy = getmaxy();
         poly[0] = 20;         /* verteks pertama */
         poly[1] = maxy / 2;
         poly[2] = maxx - 20; /* kedua */
         poly[3] = 20;


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                          Halaman: 65 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


        poly[4] = maxx - 50; /* ketiga */
        poly[5] = maxy - 20;
        poly[6] = maxx / 2; /*keempat */
        poly[7] = maxy / 2;
        poly[8] = poly[0]; /* kelima = akhir penutur = verteks awal */
        poly[9] = poly[1];
        drawpoly(5, poly); // menggambar bentuki poligon.
        closegraph(); // mengembalikan ke modus teks.
        return 0; // program diterminasi tanpa ada kesalahan.
    }


    4.6 Pengenalan Obyek 3 Dimensi
    Pemrograman grafis selau tidak pernah dari obyek 3 Dimensi, karena dewasa ini
    penggunaan obyek 3 dimensi semakin bervariatif. Mulai dari game console,


    game online, film animasi hingga dunia periklanan. Program dan tool – tool
    yang digunakan untuk membuat obyek 3 dimensi juga semakin bervariatif,
    mulai dari openGL, 3D Studio Max, Maya dan lain sebagainya. Pada
    pembahasan ini kita akan mempelajari dasar – dasar dalam pemrograman
    obyek 3 Dimensi.
    Objek 3 dimensi adalah sebuah model struktur data yang menyatakan suatu
    gambar 3D dibentuk dan disusun. Objek 3D didefinisikan dengan :


         •   Objek 3D adalah sekumpulan titik-titik 3D (x,y,z) yang membentuk luasan-
             luasan (face) yang digabungkan menjadi satu kesatuan.
         •   Face adalah gabungan titik-titik yang membentuk luasan tertentu atau
             sering dinamakan dengan sisi. Dari definisi ini, dapat dikatakan bahwa
             objek 3D merupakan kumpulan titik-titik dan kumpulan face yang
             merupakan susunan dari titik-titik         yang ditentukan. Seperti gambar
             kubus, kubus terdiri dari 8 titik dan 6 sisi/face. Dimana face merupakan




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                         Halaman: 66 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


            polygon atau kumpulan titik-titik yang disusun urutannya. Dalam kubus,
            facenya semua berupa bujur sangkar dengan 4 titik.


    Pada dasarnya sebuah obyek 3D terdiri dari elemen – elemen dasar, antara lain :


        •   Point
            Point adalah sebuah titik yang digunakan untuk membangun obyek.
            Setiap titik dalam obyek 3D memiliki nilai dalam x, y, z .


        •   Polyline
            Polyline adalah sebuah fungsi yang dibentuk dari beberapa garis yang
            saling berhubungan dan membentuk sebuh kurva yang terbuka
        •   Polygon
            Polygon adalah suatu fungsi yang mirip dengan polyline hanya saja
            hasilnya adalah kurva tertutup, sedangkan polyline hasilnya kurva terbuka.


        •   Filled Polygon (Face)
            Filled Polygon adalah sebuah polygon yang bagian dalamnya diwarnai
            atau dipenuhi dengan sebuah warna tertentu. Filled polygon biasanya
            digunakan sebagai face dari pembentukan obyek 3D.


        •   Gradate Polygon
            Gradate polygon adalah sebuah polygon yang bagian dalamnya memiliki
            warna – warna yang bergradasi dari satu warna ke warna yang lain.


    4.7 Pengenalan Terhadap Program OpenGL
    Pada pembuatan obyek 3D, kita tidak dapat membuat dengan metode yang kita
    gunakan untuk membuat obyek 2D. Meski pada dasarnya sebuah obyek 3D
    adalah sekumpulan titik – titik (point) yang terhubung satu sama lain. Untuk
    menghasilkan sebuah obyek 3D yang baik maka kita akan mempelajari tentang
    dasar – dasar penerapan program openGL.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                         Halaman: 67 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


    OpenGL adalah software (perangkat lunak) interface perangkat keras grafik.
    Interface ini terdiri dari sekitar 150 command atau perintah yang berbeda yang
    bisa digunakan untuk menentukan objek dan operasi yang dibutuhkan untuk
    menghasilkan aplikasi tiga dimensi yang interaktif.          OpenGL didesain untuk
    memperlancar, diimplementasikan pada            banyak jenis perangkat keras yang
    berbeda.
    OpenGL tidak menyediakan command (perintah) untuk menggambarkan model
    dari objek tiga dimensi, kita harus membangun model yang diinginkan dari satu
    set kecil dari geometri seperti titik, garis, dan poligon.
    Library yang menyediakan fitur ini tentunya bisa dibuat dengan OpenGL.


    The OpenGL Utility Library (GLU) menyediakan beberapa fitur modeling, seperti
    permukaan kuadrik, kurva, dan bentuk-bentuk             lainnya. GLU adalah bagian
    standar dari setiap implementasi OpenGL. OpenGL memiliki lebih dari 200 fungsi.


        4.7.1       Fungsi tersebut bisa dikelompokkan menjadi :


        •   Fungsi primitif, menentukan elemen yang bisa menghasilkan gambar di
            layar. Fungsi ini terdiri dari 2 jenis, yaitu primitive geometric seperti
            polygon (segi banyak) yang bisa dibuatmenjadi dua, tiga, atau empat
            dimensi, dan primitif gambar seperti bitmaps.


        •   Fungsi atribut, mengontrol tampilan dari primitif. Fungsi ini menentukan
            warna, jenis garis, properti material, sumber cahaya, dan tekstur.
        •   Fungsi pandangan, menentukan properti kamera. OpenGL menyediakan
            sebuah virtual kamera yang bisa diposisikan dan diorientasikan relatif ke
            obyek yang ditentukan dengan fungsi primitif. Lensa kamera juga bisa
            dikendalikan sehingga bisa dihasilkan sudut yang lebar dan pandangan
            telefoto (jarak jauh).
        •   Fungsi windowing, fungsi ini mengendalikan windows pada layar dan
            penggunaan dari mouse dan keyboard.


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 68 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                 Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer           TIK.PR02.001.01


        •   Fungsi kontrol, menghidupkan macam-macam fitur OpenGL.
            Fungsi-fungsi OpenGL dimuat didalam 2 library yang disebut dengan gl
            dan glu (atau GL dan GLU). Library yang pertama, adalah fungsi utama
            dari OpenGL, berisi semua fungsi OpenGL yang dibutuhkan sedangkan
            yang kedua, the openGL Utility Llibrary (GLU) memuat fungsi yang ditulis
            menggunakan fungsi dari library utama dan sangat membantu bagi
            pengguna. Fungsi utama mempunyai nama yang diawali dengan “gl”
            seperti “glVertex3f()”, sedangkan fungsi didalam GLU mempunyai nama
            yang diawali dengan “glu” seperti “gluOrtho2D()”.


        4.7.2       Proses Instalasi OpenGL
    Pada pembahasan kali ini, kita akan menggunakan sistem operasi Linux Debian
    sebagai system operasi dasar dimana program OpenGl berjalan. Pembahasan ini
    tidak menjelaskan secara detil cara untuk melakukan instalasi system operasi
    Linux (dapat melihat materi instalasi linux). Berikut akan dijelakan bagaimana
    melakukan instalasi program OpenGL pada sistem operasi linux.
    Untuk melakukan kompilasi dari program OpenGL yang dibuat, diharapkan
    melakukan instalasi terhadap compiler C (gcc) dengan langkah –langkah sebagai
    berikut :


        •   Instal kompiler C (gcc) dengan mengetik :
            # apt-get install gcc-3.4


        •   Instal paket library yang dibutuhkan bahasa pemrograman C dan OpenGL
            # apt-get install libc6 libc6-dev
            # apt-get install freeglut3 freeglut3-dev
            # apt-get install libglut3 libglut3-dev
            # apt-get install xlibmesa-gl xlibmesa-gl-dev
            # apt-get install xlibmesa-glu xlibmesa-glu-dev




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                    Halaman: 69 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer          TIK.PR02.001.01


    Untuk menulis program C atau OpenGL di dalam system operasi linux, anda tidak
    memerlukan editor khusus. Anda bias menggunakan editor biasa semacam
    kwrite atau editor vi atau vim. Secara teknis sintak – sintak yang digunakan
    sama dengan bahasa C.


        4.7.3         Program dasar dari OpenGL terdiri dari 2 fungsi yaitu :


        •   Fungsi main()
            Fungsi main berfungsi untuk inisialisasi OpenGL.


        •   Fungsi display()
            Fungsi display berfungsi untuk menetukan grafik yang akan ditampilkan
            dalam window.


    Contoh 1.8


    Program membuat sebuah kotak putih dengan latar layer kotak hitam.


    #include<GL/glut.h>
    void display(){
        glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_POLYGON);
        glVertex2f(-0.5, -0.5);
        glVertex2f(-0.5, 0.5);
        glVertex2f(0.5, 0.5);
        glVertex2f(0.5, -0.5);
        glEnd();
        glFlush();
    }




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                   Halaman: 70 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                   Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer             TIK.PR02.001.01




    int main(int argc, char** argv){
        glutInit(&argc, argv);
        glutCreateWindow(“simple”);
        glutDisplayFunc(display);
        glutMainLoop();
    }


        4.7.4       Proses Kompilasi Program OpenGL
    Proses kompilasi program OpenGl tergantung pada sistem operasi yang
    digunakan, karen pada pembahasan ini kita mengasumsikan menggunakan
    sistem operasi Linux Debian, maka contoh yang diberikan ini berdasarkan
    sistem operasi linux.
    gcc nama_file.c –o nama_file –lglut –lGLU –lGL –lX11 –lm


    Untuk penjelasan lebih lanjut mengenai fungsi – fungsi yang terkandung dalam
    program     OpenGl,     silahkan   mencari    dokumentasi   atau   tutorial   tentang
    pemrograman OpenGL lebih lanjut. Pembahasan ini tidak dimaksudkan untuk
    mengupas program OpenGL dengan detail, namun lebih ditujukan untuk
    mengenalkan dasar – dasar pemrograman obyek 3D dan pengenalan dasar
    program OpenGL.


        4.7.5       Algoritma Animasi Sederhana
    Animasi pada dasarnya adalah membuat objek seolah-olah bergerak sehingga
    terjadi pergerakan yang membuat mata kita memandangnya sebagai sebuah


    kesatuan utuh. Padahal dibalik itu, animasi dibuat berdasarkan pada bagian
    -bagian tertentu (terpisah) dan baru kemudian akan disatukan untuk
    mendapatkan pergerakan yang sempurna. Pada dasarnya animasi adalah proses
    sebuah obyek bergerak dari satu posis ke posii yang lain dalam hitungan



Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 71 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                 Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer           TIK.PR02.001.01


    interval waktu tertentu. Obyek yang digerakkan dapat berupa obyek 2D, obyek
    3D atau bahkan sebuah tulisan sederhana. Dewasa ini telah banyak
    berkembang program – program atau tool yang digunakan untuk membuat
    program animasi antara lain : Macromedia Flash, Studio 3D Max, Maya, Adobe
    Image Ready atau bahkan menggunakan program OpenGl yang telah sedikit
    kita bahas diatas.
    Berikut akan diberikan contoh sederhana animasi obyek 2D menggunakan
    bahasa pemrograman C.


    Contoh 1.9
    Program membuat tulisan dalam modus grafis bergerak ke kanan dengan
    interval waktu sebanyak 200 mili sekon, dan program akan terus bergerak
    hingga pengguna menekan tombol apapun dari keyboard. Ketika tulisan
    mencapai batas kanan dari layar maka tulisan akan kembali ke kordinat awal.


    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>


    int main(void){
       /*auto detect */
       int gdriver = DETECT, gmode, errorcode;
       int midx, midy;
       /* inisialisasi modus grafis*/
       initgraph(&gdriver, &gmode, "");
       errorcode = graphresult();
       // memeriksa apakah berhasil meload modus grafis.
       if (errorcode != grOk) { // apabila terjadi kegagalan.
         printf("Graphics error: %sn", grapherrormsg(errorcode));
         printf("Press any key to halt:");


Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                     Halaman: 72 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                     Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer               TIK.PR02.001.01


           getch();
           exit(1); } /* program di terminasi dengan ada kesalahan */
          midx =50;
          midy = 50;
    while (!kbhit()){ // lakukan perulangna hingga ada penekanan keyboard.
        outtextxy(midx, midy, "Hello");
        delay(200);


         // menahan selama 200 mili sekon sebelum melanjutkan ke instruksi
    selanjutnya
        outtextxy(midx, midy, "   "); // menghapus tulisan yang lama.
        midx+=10; // menambah jumlah kordinat x sebanyak 10 titk.


    // jika sudah mencapai ujung dari layar.
    if (midx == (getmaxx() – 5)){ // karena tulisan hello panjangnya 5.
    midx = 50; // kembali ke posisi awal.
     }
    } // akhir tubuh perulangan.
    closegraph(); // kembali ke modus teks.
         return 0; /* program di terminasi tanpa ada kesalahan */
    }




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                        Halaman: 73 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi              Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer        TIK.PR02.001.01




                                             BAB V
                         SUMBER-SUMBER YANG DIPERLUKAN
                           UNTUK PENCAPAIAN KOMPETENSI


 5.1.     Sumber Daya Manusia


 Pelatih
 Pelatih Anda dipilih karena dia telah berpengalaman. Peran Pelatih adalah untuk :
 a.   Membantu Anda untuk merencanakan proses belajar.
 b.   Membimbing Anda melalui tugas-tugas pelatihan yang dijelaskan dalam tahap
      belajar.
 c.   Membantu Anda untuk memahami konsep dan praktik baru dan untuk
      menjawab pertanyaan Anda mengenai proses belajar Anda.
 d.   Membantu Anda untuk menentukan dan mengakses sumber tambahan lain yang
      Anda perlukan untuk belajar Anda.
 e. Mengorganisir kegiatan belajar kelompok jika diperlukan.
 f.   Merencanakan seorang ahli dari tempat kerja untuk membantu jika diperlukan.


 Penilai
 Penilai Anda melaksanakan program pelatihan terstruktur untuk penilaian di tempat
 kerja. Penilai akan :
      a. Melaksanakan penilaian apabila Anda telah siap dan merencanakan proses
          belajar dan penilaian selanjutnya dengan Anda.
      b. Menjelaskan kepada Anda mengenai bagian yang perlu untuk diperbaiki dan
          merundingkan rencana pelatihan selanjutnya dengan Anda.
      c. Mencatat pencapaian / perolehan Anda.


 Teman kerja/sesama peserta pelatihan




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                     Halaman: 74 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi            Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer      TIK.PR02.001.01


 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.     Sumber-sumber Perpustakaan
          Pengertian sumber-sumber adalah material yang menjadi pendukung proses
 pembelajaran ketika peserta pelatihan sedang menggunakan Pedoman Belajar ini.
 Sumber-sumber tersebut dapat meliputi :
 1.   Buku referensi dari perusahan
 2. Lembar kerja
 3. Gambar
 4. Contoh tugas kerja
 5. Rekaman dalam bentuk kaset, video, film dan lain-lain.


 Ada beberapa sumber yang disebutkan dalam pedoman belajar ini untuk membantu
 peserta pelatihan mencapai unjuk kerja yang tercakup pada suatu unit kompetensi.


 Prinsip-prinsip dalam CBT mendorong kefleksibilitasan dari penggunaan sumber-
 sumber yang terbaik dalam suatu unit kompetensi tertentu, dengan mengijinkan
 peserta untuk menggunakan sumber-sumber alternative lain yang lebih baik atau
 jika ternyata sumber-sumber yang direkomendasikan dalam pedoman belajar ini
 tidak tersedia/tidak ada.




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                   Halaman: 75 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi                               Kode Modul
        Sektor Telematika Sub Sektor Programmer Komputer                         TIK.PR02.001.01




 5.3.     Daftar Peralatan/Mesin dan Bahan


 1.       Judul/Nama Pelatihan          :    Algoritma dan Pemrograman Lanjut
 2.       Kode Program Pelatihan        :    TIK.PR02.002.01


          UNIT                              DAFTAR                   DAFTAR
  NO                      KODE UNIT                                                      KETERANGAN
          KOMPETENSI                        PERALATAN                BAHAN
  1.      Algoritma dan   TIK.PR02.002.01      -       Unit    PC       -Program         -
          Pemrograman                          (Personal                Borland C+
          Lanjut                               Computer)                + 3.1.
                                               dengan          CD       -Buku
                                               drive dan Hard           informasi
                                               Disk.                    tentang
                                               -     PC   dengan        Algoritma
                                               sistem      operasi      Pemrogram
                                               Windows XP               an    Lanjut,
                                               - Keyboard dan           Pemrogram
                                               mouse                    an grafis.
                                               - RAM dengan
                                               ukuran         yang
                                               sesuai     dengan
                                               kebutuhan.
                                               -          Program
                                               Borland        C++
                                               3.1




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                                                        Halaman: 76 dari 77
Buku Informasi                      Versi: 01-09-2007
Materi Pelatihan Berbasis Kompetensi         Kode Modul
     Sektor Telematika Sub Sektor Programmer Komputer   TIK.PR02.001.01



                                DAFTAR PUSTAKA
    •   Website:
            •   http://www.ilmukomputer.com
            •   http://devnet.com
            •   http://www.codeguru.com
            •   http://id.wikipedia.org




Judul Modul: Membuat Algoritma Pemrograman Lanjut
                                                            Halaman: 77 dari 77
Buku Informasi                      Versi: 01-09-2007

More Related Content

DOC
Fix tik.pr02.020.01 buku informasi
DOC
Tik.pr02.001.01 b informasi
DOC
Tik.pr02.003.01 b informasi2
DOC
Tik.pr01.016.01 b informasi menjaga etika
DOC
Fix tik.op02.001.001.01 b informasi pc standalone
DOC
Tik.cs02.013.01 b informasi fix
DOC
Tik.cs03.006.01 buku informasi
DOC
Buku informasi memperbaiki monitor
Fix tik.pr02.020.01 buku informasi
Tik.pr02.001.01 b informasi
Tik.pr02.003.01 b informasi2
Tik.pr01.016.01 b informasi menjaga etika
Fix tik.op02.001.001.01 b informasi pc standalone
Tik.cs02.013.01 b informasi fix
Tik.cs03.006.01 buku informasi
Buku informasi memperbaiki monitor

What's hot (20)

DOC
Tik.cs02.053.01 buku informasi
DOC
Buku informasi tik.cs03.016.01
DOC
Tik.cs03.008.01 buku informasi
DOC
Buku informasi tik.cs03.010.01
DOC
Buku informasi tik.cs03.015.01 udah revisi
DOC
Tik.cs02.052.01 buku informasi setting wireless fix
DOC
Tik.cs03.007.01 buku informasi
DOC
Buku informasi tik.cs03.011.01
DOC
Buku informasi tik.cs03.012.01 (autosaved)
DOC
Tik.jk02.007.01 b info
DOC
Tik.jk02.023.01 b informasi fix
DOC
Tik.jk02.001 b informasi
DOC
Tik.jk01.006.01 b informasi fix
DOC
Tik.jk02.012 b informasi
DOC
Tik.cs02.049.01 buku informasi
DOC
Tik.jk02.005.01 b info
DOC
Tik.cs01.006.01 buku informasi
DOC
Modul 4 Pengolah Kata
PDF
Perangkat lunak pengolah kata
PDF
25358544 motor-stater
Tik.cs02.053.01 buku informasi
Buku informasi tik.cs03.016.01
Tik.cs03.008.01 buku informasi
Buku informasi tik.cs03.010.01
Buku informasi tik.cs03.015.01 udah revisi
Tik.cs02.052.01 buku informasi setting wireless fix
Tik.cs03.007.01 buku informasi
Buku informasi tik.cs03.011.01
Buku informasi tik.cs03.012.01 (autosaved)
Tik.jk02.007.01 b info
Tik.jk02.023.01 b informasi fix
Tik.jk02.001 b informasi
Tik.jk01.006.01 b informasi fix
Tik.jk02.012 b informasi
Tik.cs02.049.01 buku informasi
Tik.jk02.005.01 b info
Tik.cs01.006.01 buku informasi
Modul 4 Pengolah Kata
Perangkat lunak pengolah kata
25358544 motor-stater
Ad

Similar to Tik.pr02.002.01 b informasi fix (20)

DOC
Modul 5 Lembar Sebar
PDF
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
DOC
Perbaikan
DOC
Modul 9 Pengelolaan Informasi
PDF
Pengantar Teknologi Informasi
PDF
Supriyanto s komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...
PDF
Modul Frais CNC_versi4.0_juli11
PDF
DIESEL ENGINE 11 jun 2012 .pdf
PDF
Modul 2 mesin_bubut_cnc_versi_juli
PDF
Tugas UAS Rangkuman Riset Operasi
PDF
mendiagnosis_permasalahan_pengoperasian_pc_dan_periferal
PDF
02. mendiagnosis permasalahan pengoperasian_pc_dan_periferal
PDF
02. mendiagnosis permasalahan pengoperasian_pc_dan_periferal
DOC
Modul 2 Mengidentifikasi Komputer
PDF
mendiagnosis_permasalahan_pengoperasian_pc_yg_tersambung_jaringan
PDF
12 Mendiagnosis Permasalahan Pengoperasian Pc Yg Tersambung Jar
PDF
11. mendiagnosis permasalahan pengoperasian_pc_yg_tersambung_jaringan
PDF
Ka 01.-praktikum-algoritma-pemrograman-2
PDF
Membuat Dokumen LaTeX Eleventh Edition
PDF
Buku pegangan-kuliah-dasar-mikroprosesor-lengkap
Modul 5 Lembar Sebar
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
Perbaikan
Modul 9 Pengelolaan Informasi
Pengantar Teknologi Informasi
Supriyanto s komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...
Modul Frais CNC_versi4.0_juli11
DIESEL ENGINE 11 jun 2012 .pdf
Modul 2 mesin_bubut_cnc_versi_juli
Tugas UAS Rangkuman Riset Operasi
mendiagnosis_permasalahan_pengoperasian_pc_dan_periferal
02. mendiagnosis permasalahan pengoperasian_pc_dan_periferal
02. mendiagnosis permasalahan pengoperasian_pc_dan_periferal
Modul 2 Mengidentifikasi Komputer
mendiagnosis_permasalahan_pengoperasian_pc_yg_tersambung_jaringan
12 Mendiagnosis Permasalahan Pengoperasian Pc Yg Tersambung Jar
11. mendiagnosis permasalahan pengoperasian_pc_yg_tersambung_jaringan
Ka 01.-praktikum-algoritma-pemrograman-2
Membuat Dokumen LaTeX Eleventh Edition
Buku pegangan-kuliah-dasar-mikroprosesor-lengkap
Ad

More from Lukmanulhakim Almamalik (20)

PDF
Promoting Green Financing Mechanisms.pdf
PDF
UU_Perindustrian_No_3_2014.pdf
PDF
PENGENALAN PEMODELAN SISTEM DINAMIK MENGGUNAKAN VENSIM PLE
PDF
Bahan kuliah ttm [compatibility mode]
PDF
Buku systems thinking

Tik.pr02.002.01 b informasi fix

  • 1. MATERI PELATIHAN BERBASIS KOMPETENSI SEKTOR TEKNOLOGI INFORMASI DAN KOMUNIKASI MEMBUAT ALGORITMA PEMROGRAMAN LANJUT TIK.PR02.002.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
  • 2. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 DAFTAR ISI Daftar Isi 2 BAB I PENGANTAR 4 1.1. Konsep Dasar Pelatihan Berbasis Kompetensi 4 1.2. Penjelasan Modul 4 1.3. Pengakuan Kompetensi Terkini (RCC) 7 1.4. Pengertian-pengertian Istilah 8 BAB II STANDAR KOMPETENSI 10 2.1. Peta Paket Pelatihan 10 2.2. Pengertian Unit Standar 10 2.3. Unit Kompetensi yang Dipelajari 11 2.3.1. Judul Unit ............................................................................ 11 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 2 dari 77 Buku Informasi Versi: 01-09-2007
  • 3. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 2.3.2. Kode Unit ............................................................................ 11 2.3.3. Deskripsi Unit ............................................................................ 11 2.3.4. Elemen Kompetensi ............................................................................ 11 2.3.5. Kriteria Unjuk Kerja ............................................................................ 11 2.3.6. Batasan Variabel ............................................................................ 13 2.3.7. Panduan Penilaian ............................................................................ 13 2.3.8. Kompetensi Kunci ............................................................................ 15 BAB III STRATEGI DAN METODE PELATIHAN 17 3.1. Strategi Pelatihan 17 3.2. Metode Pelatihan 17 BAB IV MATERI UNIT KOMPETENSI 18 4.1 Tujuan Instruksional Umum ............................................................... 18 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 3 dari 77 Buku Informasi Versi: 01-09-2007
  • 4. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 4.2 Tujuan Instruksional Khuisus ............................................................. 18 4.3 Penggunaan Array Multi Dimensi........................................................ 19 4.3.1 Pengenalan array multi dimensi ................................................ 19 4.3.2 Array 2 dimensi (Matriks) ......................................................... 19 4.3.2.1 Deklarasi matriks 2 dimensi .......................................... .. 20 4.3.2.2 Memberikan dan membaca nilai dari matriks 2 dimensi ...... 20 4.3.2.3 Mengubah isi dari matriks n dimensi................................... 22 4.3.2.4 Penerapan matriks 2 dimensi ........................................... 23 4.3.2.5 Penjumlahan matriks 2 dimensi ........................................ 23 4.3.2.6 Pengurangan matriks 2 dimensi........................................ 24 4.3.3 Array matriks 3 dimensi............................................................ 25 4.3.3.1 Deklarasi array 3 dimensi ................................................ 25 4.3.3.2 Memberikan dan membaca nilai dari matriks 3 dimensi ..... 27 4.3.3.3 Melakukan inisialisasi matriks 3 dimensi ........................... 27 4.3.3.4 Memberikan nilai secara langsung ................................... 27 4.3.3.5 Mengubah isi dari matriks 3 dimensi ................................ 29 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 4 dari 77 Buku Informasi Versi: 01-09-2007
  • 5. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 4.4 Penggunaan Prosedur dan Fungsi .................................................... 33 4.4.1 Apa itu file library ..................................................................... 34 4.4.1.1 Fungsi operasi string ....................................................... 34 4.4.1.2 Fungsi operasi karakter .................................................... 35 4.4.1.3 Fungsi operasi matematika ............................................... 36 4.4.2 Membuat fungsi sendiri ............................................................. 38 4.4.3 Parameter formal dan parameter aktual ...................................... 40 4.4.4 Cara melewatkan parameter ...................................................... 41 4.4.5 Variabel Lokal ........................................................................... 42 4.4.5.1 Sifat - sifat variabel lokal .................................................... 42 4.4.6 Variabel Global ........................................................................... 42 4.4.6.1 Sifat - sifat variabel global ................................................... 42 4.4.7 Variabel Statis ............................................................................ 43 4.4.7.1 Sifat - sifat variabel statis ................................................... 43 4.4.8 Variabel Register ........................................................................ 43 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 5 dari 77 Buku Informasi Versi: 01-09-2007
  • 6. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 4.4.8.1 Sifat - sifat variabel register ................................................. 43 4.5 Pemrograman Grafik ........................................................................ 46 4.5.1 Fungsi - fungsi pada proses inisialisasi modus grafis ...................... 47 4.5.2 Fungsi - fungsi penting dalam memanipulasi obyek grafis .............. 50 4.5.3 Fungsi - fungsi penting untuk membuat obyek 2 dimensi ............... 52 4.5.4 Contoh - contoh program : .......................................................... 56 4.6 Pengenalan Obyek 3 Dimensi ............................................................ 63 4.7 Pengenalan Terhadap Obyek Open GL ............................................... 64 4.7.1 Pengelompokkan fungsi .............................................................. 65 4.7.2 Proses inisialisasi Open GL .......................................................... 66 4.7.3 Fungsi dasar obyek Open GL ....................................................... 67 4.7.4 Proses kompilasi program Open GL ............................................. 68 4.7.5 Algoritma animasi sederhana ...................................................... 68 BAB V SUMBER-SUMBER YANG DIPERLUKAN UNTUK PENCAPAIAN KOMPETENSI 72 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 6 dari 77 Buku Informasi Versi: 01-09-2007
  • 7. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 5.1. Sumber Daya Manusia 72 5.2. Sumber-sumber Perpustakaan 72 5.3. Daftar Peralatan/Mesin dan Bahan 73 DAFTAR PUSTAKA 74 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 7 dari 77 Buku Informasi Versi: 01-09-2007
  • 8. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 BAB I PENGANTAR 1.1. Konsep Dasar Pelatihan Berbasis Kompetensi • 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. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 8 dari 77 Buku Informasi Versi: 01-09-2007
  • 9. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 1.2.1 Desain Modul Modul ini didisain untuk dapat digunakan pada Pelatihan Klasikal dan Pelatihan Individual/mandiri : • Pelatihan klasikal adalah pelatihan yang disampaiakan 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: a. Buku Informasi Buku informasi ini adalah sumber pelatihan untuk pelatih maupun peserta pelatihan. b. Buku Kerja Buku kerja ini harus digunakan oleh peserta pelatihan untuk mencatat setiap pertanyaan dan kegiatan praktik 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. c. 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. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 9 dari 77 Buku Informasi Versi: 01-09-2007
  • 10. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 • 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.3Pengakuan 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. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 10 dari 77 Buku Informasi Versi: 01-09-2007
  • 11. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 • Anda mungkin sudah memiliki pengetahuan dan keterampilan, karena Anda telah : a. Bekerja dalam suatu pekerjaan yang memerlukan suatu pengetahuan dan keterampilan yang sama atau b. Berpartisipasi dalam pelatihan yang mempelajari kompetensi yang sama atau c. Mempunyai pengalaman lainnya yang mengajarkan pengetahuan dan keterampilan yang sama. 1.4Pengertian-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. Standardisasi 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 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 11 dari 77 Buku Informasi Versi: 01-09-2007
  • 12. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 serta lingkungan belajar yang ada terfokus kepada pencapaian unjuk kerja pada kompetensi yang dipelajari. Kompetensi Kompetensi adalah kemampuan seseorang untuk menunjukkan aspek sikap, pengetahuan dan keterampilan serta penerapan dari ketiga aspek tersebut ditempat kerja untuk mwncapai unjuk kerja yang ditetapkan. Standar Kompetensi Standar kompetensi adalah standar yang ditampilkan dalam istilah-istilah hasil serta memiliki format standar yang terdiri dari judul unit, deskripsi unit, elemen kompetensi, kriteria unjuk kerja, ruang lingkup serta pedoman bukti. Sertifikat Kompetensi Adalah pengakuan tertulis atas penguasaan suatu kompetensi tertentu kepada seseorang yang dinyatakan kompeten yang diberikan oleh Lembaga Sertifikasi Profesi. Sertifikasi Kompetensi Adalah proses penerbitan sertifikat kompetensi melalui proses penilaian / uji kompetensi. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 12 dari 77 Buku Informasi Versi: 01-09-2007
  • 13. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 BAB II STANDAR KOMPETENSI 2.1. Peta Paket Pelatihan Modul yang sedang Anda pelajari ini adalah untuk mencapai satu unit kompetensi, yang termasuk dalam satu paket pelatihan, yang terdiri atas unit-unit kompetensi berikut: 2.1.1. TIK.OP02.002.01 Membuat Algoritma Pemrograman Lanjut. 2.1.2. TIK.OP02.003.01A Mengoperasikan Sistem Operasi Microsoft Windows. 2.1.3. TIK.OP02.001.01 Mengoperasikan komputer personal yang berdiri sendiri ( PC Stand Alone ) 2.2. Pengertian Unit Standar Kompetensi Apakah Standar Kompetensi? Setiap Standar Kompetensi menentukan : a. Pengetahuan dan keterampilan yang diperlukan untuk mencapai kompetensi. b. Standar yang diperlukan untuk mendemonstrasikan kompetensi. c. Kondisi dimana kompetensi dicapai. Apa yang akan Anda pelajari dari Unit Kompetensi ini? Anda akan mempelajari tentang Algoritma Pemrograman lanjut. Berapa lama Unit Kompetensi ini dapat diselesaikan? Pada sistem pelatihan berdasarkan kompetensi, fokusnya ada pada pencapaian kompetensi, bukan pada lamanya waktu. Namun diharapkan pelatihan ini dapat dilaksanakan dalam jangka waktu tiga sampai tujuh hari. Pelatihan ini dijutukan bagi semua user terutama yang tugasnya berkaitan dengan programming, seperti operator, programmer, staff support, dan staff admin. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 13 dari 77 Buku Informasi Versi: 01-09-2007
  • 14. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 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 : • mengidentifikasikan apa yang harus dikerjakan peserta pelatihan. • memeriksa kemajuan peserta pelatihan. • menyakinkan bahwa semua elemen (sub-kompetensi) dan criteria unjuk kerja telah dimasukkan dalam pelatihan dan penilaian. KODE UNIT : TIK.PR02.002.01 JUDUL UNIT : Membuat Algoritma Pemrograman Lanjut DESKRIPSI UNIT : Unit ini menentukan kompetensi yang diperlukan untuk mempelajari algoritma yang akan diterapkan pada program, tidak tergantung bahasa pemrograman yang akan digunakan. Algoritma pemrograman merupakan materi dasar yang harus dikuasai oleh setiap programer. Untuk tingkat lanjut ini ditekankan kepada penguasaan array multi dimensi, pemakaian prosedur dan fungsi serta pemanfaatan grafik. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 14 dari 77 Buku Informasi Versi: 01-09-2007
  • 15. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 ELEMEN KOMPETENSI KRITERIA UNJUK KERJA 1 Menggunakan Array Multi 1.1 Algoritma array multi dimensi dibuat dan Dimensi dijelaskan. 1.2 Matrik 2D, 3D dibuat dalam bentuk penjumlahan, pengurangan, perkalian dsb. 1.3 Algoritma pembacaan, pengisian, pengubahan dan penghapusan data dalam array multi dimensi dibuat dan ditunjukkan. 2 Menggunakan prosedur dan fungsi 2.1 Algoritma program dibuat dengan prosedur 2.2 Algoritma program dibuat dengan fungsi. 2.3 Algoritma program dibuat dengan prosedur dan fungsi. 3 Menggunakan library 3.1 Algoritma program dibuat dengan library pemrograman grafik berbasis grafik. 3.2 Algoritma pemrograman dengan grafik (gambar sederhana) berbentuk 2D dan 3D dibuat. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 15 dari 77 Buku Informasi Versi: 01-09-2007
  • 16. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 3.3 Algoritma pemrograman animasi dibuat dengan grafik (gambar sederhana). BATASAN VARIABEL 1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan komunikasi. 2. Menjaga etika bersifat internal pada bidang teknologi informasi dan komunikasi. PANDUAN PENILAIAN 1. Pengetahuan dan keterampilan penunjang untuk mendemontrasikan kompetensi, memerlukan bukti keterampilan dan pengetahuan di bidang berikut ini : 1.1 Pengetahuan dasar : 1.1.1 Matematika dasar dan matematika logika 1.1.2 Flowchart dan dasar pemrograman 1.2 Keterampilan dasar Mengoperasikan sistem komputer 2. Konteks penilaian Kompetensi harus diujikan di tempat kerja atau di tempat lain secara teori dengan kondisi kerja sesuai dengan keadaan normal. 3. Aspek penting penilaian Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 16 dari 77 Buku Informasi Versi: 01-09-2007
  • 17. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Aspek yang harus diperhatikan: 3.1 Kemampuan mengidentifikasi varian dan invarian yang berlaku umum pada pemrograman. 3.2 Kemampuan mengidentifikasi alur logika pemrograman sekuensial dan membuat algoritma. 3.3 Kemampuan mengidentifikasi pengelolaan array pada program. 3.4 Kemampuan menyimpan program ke dalam media penyimpanan. 3.5 Kemampuan membuat program membaca dan menulis data ke dalam file secara sekuensial dan indeks. 4. Kaitan dengan unit-unit lainnya 4.1 Unit ini didukung oleh pengetahuan dan keterampilan dalam unit-unit kompetensi yang berkaitan dengan dasar-dasar teknologi informasi. 4.1.1 Mengoperasikan PC dan system informasi 4.1.2 TIK.PR02.001.01 Membuat Algoritma Pemrograman Dasar 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 sektor tertentu. Batasan variabel akan membantu dalam hal ini. Untuk sektor tertentu/khusus, pelatihan harus disesuaikan untuk memenuhi kebutuhan sektor tersebut. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 17 dari 77 Buku Informasi Versi: 01-09-2007
  • 18. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Kompetensi Kunci No Kompetensi Kunci Dalam Unit ini Tingkat 1 Mengumpulkan, mengorganisir dan menganalisa informasi 1 2 Mengkomunikasikan ide-ide dan informasi 1 3 Merencanakan dan mengorganisir aktivitas-aktivitas 1 4 Bekerja dengan orang lain dan kelompok 1 5 Menggunakan ide-ide dan teknik matematika 2 6 Memecahkan masalah 1 7 Menggunakan teknologi 1 BAB III STRATEGI DAN METODE PELATIHAN 3.1. Strategi Pelatihan Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 18 dari 77 Buku Informasi Versi: 01-09-2007
  • 19. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Belajar dalam suatu sistem Berdasarkan 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 melaksanakannya dengan tekun sesuai dengan rencana yang telah dibuat. Persiapan/perencanaan a. Membaca bahan/materi yang telah diidentifikasi dalam setiap tahap belajar dengan tujuan mendapatkan tinjauan umum mengenai isi proses belajar Anda. b. Membuat catatan terhadap apa yang telah dibaca. c. Memikirkan bagaimana pengetahuan baru yang diperoleh berhubungan dengan pengetahuan dan pengalaman yang telah Anda miliki. d. Merencanakan aplikasi praktik pengetahuan dan keterampilan Anda. Permulaan dari proses pembelajaran a. Mencoba mengerjakan seluruh pertanyaan dan tugas praktik yang terdapat pada tahap belajar. b. Merevisi dan meninjau materi belajar agar dapat menggabungkan pengetahuan Anda. Pengamatan terhadap tugas praktik a. Mengamati keterampilan praktik yang didemonstrasikan oleh Pelatih atau orang yang telah berpengalaman lainnya. b. Mengajukan pertanyaan kepada Pelatih tentang konsep sulit yang Anda temukan. Implementasi a. Menerapkan pelatihan kerja yang aman. b. Mengamati indicator kemajuan personal melalui kegiatan praktik. c. Mempraktikkan keterampilan baru yang telah Anda peroleh. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 19 dari 77 Buku Informasi Versi: 01-09-2007
  • 20. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 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 topic tertentu. BAB IV MATERI UNIT KOMPETENSI MEMBUAT ALGORITMA PEMROGRAMAN LANJUT Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 20 dari 77 Buku Informasi Versi: 01-09-2007
  • 21. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 4.1 Tujuan Instruksional Umum o Siswa mampu mempelajari lanjutan dari Algoritma dan Pemrograman dasar o Siswa mampu memahami tentang array lebih lanjut o Siswa mampu menguasai tentang prosedur dan fungsi o Siswa mampu mengetahui fungsi – fungsi matematika, pengolahan kalimat dan grafik. o Siswa dapat mengetahui dasar – dasar dalam pemrograman grafis. o Siswa dapat mengetahui pemrograman tingkat lanjut menggunakan Open GL. 4.2 Tujuan Instruksional Khusus o Siswa dapat mengetahui seberapa pentingnya Algoritma Pemrograman lanjut dalam mempelajari pemrograman. o Siswa dapat mengetahui tentang array multidimensi. o Siswa dapat dapat mengetahui tentang operasi matrik. o Siswa dapat mengetahui tentang bagaimana membuat prosedur dan fungsi sendiri. o Siswa dapat mengetahui fungsi – fungsi yang penting dalam matematika, pengolahan kalimat dan grafis. o Siswa dapat menguasai dasar – dasar dalam pemrograman grafis. o Siswa dapat mengetahui dasar dan penerapan program Open GL dalam pengelolaan grafis tingkat lanjut. Apa itu Algoritma Pemrograman Lanjut ? Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 21 dari 77 Buku Informasi Versi: 01-09-2007
  • 22. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Algoritma Pemrograman lanjut merupakan pembahasan – pembahasan lanjutan mengenai dasar – dasar pemrograman dan memperkenalkan pembaca kepada topik – topik lanjutan yang belum dibahas pada Algortma Pemrograman dasar. Topik – topik itu meliputi : Penggunaan array multi dimensi, penggunaan prosedur dan fungsi dan dasar – dasar pemrograman grafik. Seluruh contoh dan pembahasan ini akan menggunakan bahasap pemrograman Turbo C. 4.3 Penggunaan Array Multi Dimensi. 4.3.1 Pengenalan Array Multi Dimensi Array multi dimensi pada dasarnya merupakan sebuah struktur data array biasa, seperti halnya struktur array 1 dimensi. Perbedaannya terletak pada kemampuan menyimpan elemen data yang lebih banyak daripada array 1 dimensi. Semakin besar jumlah dimensi yang terkandug, semakin banyak data yang dapat disimpan dalam struktur array tersebut. Pemilihan penggunaa array 1 dimensi atau array muti dimensi hendaknya disesuaikan dengan permasalahan yang ada, karena tidak semua permasalahan dapat diselesaikan dengan array 1 dimensi dan begitu pula sebaliknya. 4.3.2 Array 2 Dimensi (Matriks) Array 2 dimensi atau biasa disebut juga sebagai matriks merupakan sekumpulan informasi yang setiap elemennya diacu dengan menggunakan 2 buah indeks ( yang biasanya dinotasikan dengan baris dan kolom). Karakteristik array 2 dimensi secara umum adalah : - Kumpulan elemen bertipe sama. - Setiap elemen dapat diakses secara acak, jika indeks (baris dan kolomnya) sudah diketahui. - Merupakan struktur data statis, jika jumlah elemenya terlah ditentukan di awalnya maka tidak dapat dirubah selama pelaksanaan program. 4.3.2.1 Deklarasi Matriks 2 Dimensi Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 22 dari 77 Buku Informasi Versi: 01-09-2007
  • 23. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Tipe_data nama_matriks[elemen_baris][elemen_kolom] Contoh : int jumlah_lulusan[2][2]; 0 1 0 Jumlah_lulusa[0][0] Jumlah_lulusa[0][1] 1 Jumlah_lulusa[1][0] Jumlah_lulusa[1][1] Tipe data struktur array 2 dimensi dapat berupa integer, float, booelan, dll. Penamaan matriks harus memperhatikan ketentuan penamaan variabel. Elemen baris menyatakan maksimal elemen baris matriks. Elemen kolom menyatakan maksimlam elemen kolom matriks. 4.3.2.2 Memberikan dan membaca nilai dari matriks n dimensi. Metode yang digunakan untuk memberikan nilai pada matriks 2 dimensi atau n dimensi memiliki kesamaan, terdapat 2 cara yang dapat digunakan yaitu : o Melakukan inisialisasi matrriks Inisialisasi matriks berarti memberikan nilai pada setiap elemen ketika matriks tersebut dideklarasikan. Metode ini hanya bisa dilakukan ketika kita sudah mengetahui nilai yang hendak dimasukkan kedalam setiap elemen data dari matriks. Contoh : Int a[2][3] = { {1,2,3} , {4,5,6}} Tanda kurva pertama menunjukkan baris pertama dimana didalamnya terdapat 3 elemen (1,2,3) dan kurva kedua menunjukkan baris kedua dimana terdapat 3 elemen juga (4,5,6). o Memberikan nilai secara langsung (assignment) Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 23 dari 77 Buku Informasi Versi: 01-09-2007
  • 24. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Memberikan nilai secara langsung kepada matriks sama dengan memberikan nilai secara langsung kepda sebuah variabel, yang membedakan adalah dalam memberikan nilai kepada sebuah matriks kita harus mengetahui secara pasti indeks baris dan kolomnya terlebih dahulu. Contoh : Jumlah_lulusan[0][0] = 100; // memberikan data pada elemen baris ke 0, kolom ke 0. Hal yang harus diperhatikan dalam pemberian nilai ke dalam sebuah matriks adalah indeks, kesalahan dalam pemberian indeks akan mengakibatkan pemberian data pada elemen yang salah ataupun akan mengakibatkan program error ( ini terjadi apabila indeks yang dituju lebih dari indeks maksimal yang telah ditetapkan sebelumnya). Contoh : int a[2][2]; // mendeklarasikan matriks array 2 dimensi, sebanyak 4 elemen. a[1][1] = 100; // benar. Akan memasukkan data ke elemen baris ke 1 dan kolom ke 1. A[3][2] = 20; // akan meberikan error pada program, karena elemen baris ke 3 tidak pernah didefinisikan sebelumnya. o Melalui piranti masukan (keyboard ataupun file) Memberikan nilai kepada matriks array dapat dilakukan juga melalui keyboard secara langsung ataupun dengan membaca isi dari sebuah file. Metode yang digunakan pada setiap bahasa pemrograman berbeda – beda. Contoh : Program akan mengisi matriks 2 dimensi dengan menginput langsung dari keyboard dan langsung menampilkan ke standar output (layar monitor). #include <stdio.h> Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 24 dari 77 Buku Informasi Versi: 01-09-2007
  • 25. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 void main(){ int a[2][2]; int baris, kolom; // meminta inputan matriks melalui keyboard. for(baris=0; baris< 2; baris++){ for (kolom=0;kolom < 2; kolom++){ scanf(“%d”,&a[baris][kolom]); // meminta inputan dari keyboard dan langsung memasukkan ke dalam tiap elemen matriks. }} // menampilkan isi dari elemen matriks ke layar. for(baris=0; baris< 2; baris++){ for (kolom=0;kolom < 2; kolom++){ printf(“%d”,a[baris][kolo]); // menampilkan setiap elemen matriks ke layar. }}} 4.3.2.3 Mengubah isi dari matriks 2 Dimensi Pada dasarnya matriks n dimensi dapat kita lakukan manipulasi pada setiap elemen datanya, tapi kita tidak dapat menghapus isi dari elemen matriks tersebut. Metode yang digunakan untuk melakukan manipulasi / pengubahan isi dari elemen matriks tersebut sama dengan cara untuk memberikan nilai secara langsung (assignment). Elemen matriks yang telah didefinisikan pada deklarasi awal tidak dapat dirubah ataupun dihapus saat program berjalan (ingat karakteristik bahwa array bersifat statis). Contoh : int a[2][2]; // deklarasi matriks dengan 4 elemen. a[0][0] = 100; // memberi nilai 100 pada elemen (0,0). Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 25 dari 77 Buku Informasi Versi: 01-09-2007
  • 26. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 A[0][0] = 150; // merubah isi dari elemen (0,0) menjadi 150. 4.3.2.4 Penerapan Matriks 2 Dimensi. Penerapan matriks 2 dimensi sangat banyak, biasanya digunakan untuk perhitungan matematika ataupun sebagai dasar pemrograman linier. Berikut akan diberikan contoh operasi matematika berupa penjumlahan dan pengurangan matriks 2 dimensi. 4.3.2.5 Penjumlahan Matriks 2 Dimensi Menjumlahkan 2 buah matriks A + B akan menghasilkan matriks baru C. Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B sama dan seluruh elemen telah terisi nilai tertentu. C[i,j] = A [i,j] + B[i,j] untuk setiap i dan j tertentu. A = [ [2,2], [3,3] ] B = [ [3,3] , [2,2] ] C=A+B C = [ [5,5], [5,5] ] Pada dasarnya setiap elemen pada baris dan kolom tertentu akan dijumlahkan pada matriks lain pada elemen baris dan kolom tertentu. Contoh program : #include <stdio.h> void main(){ int a[2][2] = { {1,2}, {3,4}}; int b[2][2] = {{5,6}, {7,8}}; int c[2][2]; int baris, kolom; for(baris = 0; baris <2; baris++){ Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 26 dari 77 Buku Informasi Versi: 01-09-2007
  • 27. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 for(kolom = 0; kolom <2; kolom++){ c[baris][kolom] = a[baris][kolom] + b[baris][kolom];} // menjumlahkan matriks. } for(baris = 0; baris <2; baris++){ for(kolom = 0; kolom <2; kolom++){ printf(“%d”,c[baris][kolom]); // menampilkan matriks hasil penjumlahan. }}} 4.3.2.6 Pengurangan Matriks 2 Dimensi Mengurangkan 2 buah matriks A + B akan menghasilkan matriks baru C. Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B sama dan seluruh elemen telah terisi nilai tertentu. C[i,j] = A [i,j] - B[i,j] untuk setiap i dan j tertentu. A = [ [5,5], [6,6] ] B = [ [3,3] , [2,2] ] C=A–B C = [ [2,2], [4,4] ] Pada dasarnya setiap elemen pada baris dan kolom tertentu akan dikurangkan pada matriks lain pada elemen baris dan kolom tertentu. Contoh program : #include <stdio.h> void main(){ int a[2][2] = { {1,2}, {3,4}}; int b[2][2] = {{5,6}, {7,8}}; int c[2][2]; int baris, kolom; Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 27 dari 77 Buku Informasi Versi: 01-09-2007
  • 28. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 for(baris = 0; baris <2; baris++){ for(kolom = 0; kolom <2; kolom++){ c[baris][kolom] = b[baris][kolom] - a[baris][kolom];} // mengurangkan matriks. } for(baris = 0; baris <2; baris++){ for(kolom = 0; kolom <2; kolom++){ printf(“%d”,c[baris][kolom]); // menampilkan matriks hasil penjumlahan. }}} 4.3.3 Array Matriks 3 Dimensi Pada dasarnya matriks array 3 dimensi memiliki kesamaan dalam hal karakteristik dan aturan – aturan pemberian nilai, pengubahan nilai. Hal yang harus diperhatikan adalah gambaran dari sebuah matriks array 3 dimensi yang berbeda dengan array 1 dimensi ataupun matriks array 2 dimensi. Matriks array 3 dimensi bisa digambarkan seperti gambar 3 dimensi dan memang lebih banyak dipergunakan sebagai dasar perhitungan matematika pemrograman grafis yang menggunakan bentuk 3 dimensi. 4.3.3.1 Deklarasi Array 3 Dimensi Tipe_data nama_matriks [elemen baris][elemen kolom][elemen detil_kolom]; Tipe data dapat berupa integer, float, boolean atau tipe data dasar lainnya. Nama matriks disesuaikan dengan aturan penamaan variabel. Elemen baris menunjukkan maksimal elemen baris matriks. Elemen kolom menunjukkan maksimal elemen kolom matriks. Elemen detil kolom menunjukkan maksimal elemen detil dari setiap kolom matriks. Contoh : Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 28 dari 77 Buku Informasi Versi: 01-09-2007
  • 29. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Int a[2][2][2]; Baris/ Kolom 0 1 0 Lihat tabel 1.1 Lihat tabel 1.2 1 Lihat tabel 1.3 Lihat tabel 1.4 Pada matriks 3 dimensi memungkinkan untuk menyimpan elemen data pada setiap kolom dari matriks. Sehingga bentuknya menjadi seperti ini. Tabel 1.1 Pada matriks (0,0) Indeks = 0 Indeks = 1 Nilai = 10 Nilai = 20 Tabel 1.2 Pada matriks (0,1) Indeks = 0 Indeks = 1 Nilai = 30 Nilai = 40 Tabel 1.3 Pada matriks (1,0) Indeks = 0 Indeks = 1 Nilai = 50 Nilai = 60 Tabel 1.4 Pada matriks (1,1) Indeks = 0 Indeks = 1 Nlai = 70 Nilai = 80 Pada tabel – tabel diatas terlihat jelas bahwa penyimpanan data dilakukan pada elemen detil dari setiap elemen baris dan kolom. 4.3.3.2 Memberikan dan membaca nilai dari matriks n dimensi. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 29 dari 77 Buku Informasi Versi: 01-09-2007
  • 30. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Metode yang digunakan untuk memberikan nilai pada matriks 3 dimensi memiliki kesamaan dengan matriks 2 dimensi ataupun dengan array 1 dimensi. Terdapat 3 metode yang dapat digunakan, antara lain : 4.3.3.3 Melakukan Inisialisasi Matriks 3 Dimensi Inisialisasi matriks berarti memberikan nilai pada setiap elemen ketika matriks tersebut dideklarasikan. Metode ini hanya bisa dilakukan ketika kita sudah mengetahui nilai yang hendak dimasukkan kedalam setiap elemen data dari matriks. Contoh : Int a[2][2][2] = { {  baris pertama {1,2},  elemen baris pertama, kolom pertama {3,4}  elemen baris pertama, kolom kedua }, {  baris kedua {5,6},  elemen baris kedua, kolom pertama {7,8}  elemen baris kedua, kolom kedua }} Pada contoh diatas dijabarkan keberadaan nilai pada setiap indeks baris dan kolom tertentu. 4.3.3.4 Memberikan nilai secara langsung (assignment) Memberikan nilai secara langsung kepada matriks sama dengan memberikan nilai secara langsung kepda sebuah variabel, yang membedakan adalah dalam memberikan nilai kepada sebuah matriks kita harus mengetahui secara pasti indeks baris dan kolomnya terlebih dahulu. Contoh : Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 30 dari 77 Buku Informasi Versi: 01-09-2007
  • 31. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Int a[2][2][2]; A[0[0][0] = 100; // memberikan nilai pada detil kolom dari indeks baris pertama dan kolom pertama. Hal yang harus diperhatikan dalam pemberian nilai ke dalam sebuah matriks adalah indeks, kesalahan dalam pemberian indeks akan mengakibatkan pemberian data pada elemen yang salah ataupun akan mengakibatkan program error ( ini terjadi apabila indeks yang dituju lebih dari indeks maksimal yang telah ditetapkan sebelumnya). Contoh : int a[2][2][2]; // mendeklarasikan matriks array 2 dimensi, sebanyak 4 elemen. a[1][1][1] = 100; // benar. Akan memasukkan data ke elemen baris ke 1 dan kolom ke 1. A[3][2][1] = 20; // akan meberikan error pada program, karena elemen baris ke 3 tidak pernah didefinisikan sebelumnya. o Melalui piranti masukan (keyboard ataupun file) Memberikan nilai kepada matriks array dapat dilakukan juga melalui keyboard secara langsung ataupun dengan membaca isi dari sebuah file. Metode yang digunakan pada setiap bahasa pemrograman berbeda – beda. Contoh : Program akan mengisi matriks 3 dimensi dengan menginput langsung dari keyboard dan langsung menampilkan ke standar output (layar monitor). #include <stdio.h> void main(){ int a[2][2][2]; Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 31 dari 77 Buku Informasi Versi: 01-09-2007
  • 32. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 int baris, kolom,detil_kolom; // meminta inputan matriks melalui keyboard. for(baris=0; baris< 2; baris++){ for (kolom=0;kolom < 2; kolom++){ for(detil_kolom=0; detil_kolom <2; detil_kolom++){ scanf(“%d”,&a[baris][kolom][detil_kolom]); // meminta inputan dari keyboard dan langsung memasukkan ke dalam tiap elemen matriks. }}} // menampilkan isi dari elemen matriks ke layar. for(baris=0; baris< 2; baris++){ for (kolom=0;kolom < 2; kolom++){ for(detil_kolom=0; detil_kolom <2; detil_kolom++){ printf(“%d”,a[baris][kolom][detil_kolom]); // menampilkan setiap elemen matriks ke layar. }}}} 4.3.3.5 Mengubah isi dari matriks 3 Dimensi Pada dasarnya matriks n dimensi dapat kita lakukan manipulasi pada setiap elemen datanya, tapi kita tidak dapat menghapus isi dari elemen matriks tersebut. Metode yang digunakan untuk melakukan manipulasi / pengubahan isi dari elemen matriks tersebut sama dengan cara untuk memberikan nilai secara langsung (assignment). Elemen matriks yang telah didefinisikan pada deklarasi awal tidak dapat dirubah ataupun dihapus saat program berjalan (ingat karakteristik bahwa array bersifat statis). Contoh : int a[2][2][2]; // deklarasi matriks dengan 4 elemen. a[0][0][0] = 100; // memberi nilai 100 pada elemen (0,0). A[0][0][0] = 150; // merubah isi dari elemen (0,0) menjadi 150. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 32 dari 77 Buku Informasi Versi: 01-09-2007
  • 33. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 o Penerapan Matriks 3 Dimensi. Penerapan matriks 3 dimensi biasanya digunakan sebagai dasar perhitungan pemrograman grafis 3 dimensi, karena dari struktur datanya memang memenuhi kapasitas untuk menyimpan elemen data yang lebih besar daripada matriks 2 dimensi. Berikut akan diberikan contoh operasi penjumlahan dan pengurangan dari matriks 3 dimensi. o Penjumlahan Matriks 3 Dimensi Menjumlahkan 3 buah matriks A + B akan menghasilkan matriks baru C. Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B sama dan seluruh elemen telah terisi nilai tertentu. C[i,j,k] = A [i,,kj] + B[i,j,k] untuk setiap i, j dan k tertentu. A = [ [ [2,2], [3,3] ] , [ [4,4],[5,5] ] ] B = [ [ [3,3], [2,2] ] , [ [5,5],[4,4] ] ] C=A+B C = [ [ [5,5], [5,5] ] , [ [9,9],[9,9] ] ] Pada dasarnya setiap detil elemen pada baris dan kolom tertentu akan dijumlahkan dengan detil elemen baris dan kolom tertentu dari matriks lain. Contoh program : #include <stdio.h> void main(){ int a[2][2][2] = { {{1,2}, {3,4}} , Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 33 dari 77 Buku Informasi Versi: 01-09-2007
  • 34. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 {{5,6}, {7,8}} , }; int b[2][2][2] = { {{1,2}, {3,4}} , {{5,6}, {7,8}} , }; int c[2][2[2]]; int baris, kolom, detil_kolom; for(baris = 0; baris <2; baris++){ for(kolom = 0; kolom <2; kolom++){ for(detil_kolom = 0; detil_kolom <2; detil_kolom++){ c[baris][kolom][detil_kolom] = a[baris][kolom][detil_kolom] + b[baris][kolom] [detil_kolom]; // menjumlahkan matriks. }}} // menampilkan hasil penjumlahan ke layar. for(baris = 0; baris <2; baris++){ for(kolom = 0; kolom <2; kolom++){ for(detil_kolom = 0; detil_kolom <2; detil_kolom++){ printf(“%d”,c[baris][kolom][detil_kolom]); // menampilkan matriks hasil penjumlahan. }}} // akhir program. } o Pengurangan Matriks 3 Dimensi Mengurangkan 2 buah matriks A + B akan menghasilkan matriks baru C. Operasi penjumlahan baru dapat dilakukan apabila ukuran dari matriks A dan B Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 34 dari 77 Buku Informasi Versi: 01-09-2007
  • 35. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 sama dan seluruh elemen telah terisi nilai tertentu. C[i,j,k] = A [i,,kj] + B[i,j,k] untuk setiap i, j dan k tertentu. A = [ [ [5,5], [6,6] ] , [ [7,7],[8,8] ] ] B = [ [ [3,3], [2,2] ] , [ [5,5],[4,4] ] ] C=A-B C = [ [ [2,2], [4,4] ] , [ [2,2],[4,4] ] ] Pada dasarnya setiap detil elemen pada baris dan kolom tertentu akan dikurangkan dengan detil elemen baris dan kolom tertentu dari matriks lain. Contoh program : #include <stdio.h> void main(){ int a[2][2][2] = { {{8,8}, {9,9}} , {{7,7}, {20,12}} , }; int b[2][2][2] = { {{1,2}, {3,4}} , {{5,6}, {7,8}} , }; int c[2][2[2]]; int baris, kolom, detil_kolom; for(baris = 0; baris <2; baris++){ for(kolom = 0; kolom <2; kolom++){ for(detil_kolom = 0; detil_kolom <2; detil_kolom++){ c[baris][kolom][detil_kolom] = a[baris][kolom][detil_kolom] - b[baris][kolom] [detil_kolom]; // mengurangkan matriks. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 35 dari 77 Buku Informasi Versi: 01-09-2007
  • 36. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 }}} // menampilkan hasil pengurangan ke layar. for(baris = 0; baris <2; baris++){ for(kolom = 0; kolom <2; kolom++){ for(detil_kolom = 0; detil_kolom <2; detil_kolom++){ printf(“%d”,c[baris][kolom][detil_kolom]); // menampilkan matriks hasil pengurangan. }}} // akhir program. } 4.4 Penggunaan Prosedur dan Fungsi. Fungsi 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 karena bahasa C sendiri terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program bahasa C, minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-program C yang terstruktur. 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. Dalam bahasa C fungsi dapat dibagi menjadi dua, yaitu fungsi pustaka atau fungsi yang telah tersedia dalam bahasa C dan fungsi yang didefinisikan atau dibuat oleh programmer. Sebelum mengenal lebih lanjut mengenai fungsi , ada baikinya kita mempelajari sedikit tentang file library. 4.4.1 Apa itu File Library ? Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 36 dari 77 Buku Informasi Versi: 01-09-2007
  • 37. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 File library adalah file yang telah disediakan pada masing – masing bahasa pemrograman yang didalamnya memuat fungsi – fungsi yang dapat digunakan untuk membantu pemrogram dalam menyusun kode program. Dalam setiap bahasa pemrograman biasanya menyediakan file library lebih dari satu. Pengetahuan terhadap fle library ini sangat penting, karena biasanya setiap bahasa pemrograman mengelompokkan fungsi – fungsi tersebut ke dalam file library tertentu berdasarkan fungsionalitasnya. Contoh : File library stiring.h pada bahasa C, didalamnya terdapat fungsi – fungsi yang digunakan untuk melakukan manipulasi string. File library math.h pada bahasa C, didalamnya terdapat fungsi – fungsi yang digunakan untuk melakukan operasi matematika. Dan banyak lagi file – file library, tergantung dari bahasa pemrograman yang digunakan. 4.4.1.1 Fungsi Operasi String (tersimpan dalam header file “string.h”) . strcpy() Berfungsi untuk menyalin suatu string asal ke variable string tujuan. Bentuk umum : strcpy(var_tujuan, string_asal); . strlen() berfungsi untuk memperoleh jumlah karakter dari suatu string. Bentuk umum : strlen(string); . strcat() Digunakan untuk menambahkan string sumber ke bagian akhir dari string tujuan. Bentuk umum : strcat(tujuan, sumber); . strupr() Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 37 dari 77 Buku Informasi Versi: 01-09-2007
  • 38. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital. Bentuk umum : strupr(string); strlwr() Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf kecil semua. Bentuk umum : strlwr(string); . strcmp() Digunakan untuk membandingkan dua buah string. Hasil dari fungsi ini bertipe integer dengan nilai : (a) Negative, jika string pertama kurang dari string kedua. (b) Nol, jika string pertama sama dengan string kedua (c) Positif, jika string pertama lebih besar dari string kedua. Bentuk umum : strcmp(string1, string2); 4.4.1.2 Fungsi Operasi Karakter (tersimpan dalam header “ctype.h”) . islower() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kecil. Bentuk umum : islower(char); . isupper() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital. Bentuk umum : isupper(char); . isdigit() Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 38 dari 77 Buku Informasi Versi: 01-09-2007
  • 39. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit. Bentuk umum : isdigit(char); . tolower() Fungsi akan mengubah huruf capital menjadi huruf kecil. Bentuk umum : tolower(char); . toupper() Fungsi akan mengubah huruf kecil menjadi huruf kapital. Bentuk umum : toupper(char); 4.4.1.3 Fungsi Operasi Matematik (tersimpan dalam header “math.h” dan “stdlib.h”) . sqrt() Digunakan untuk menghitung akar dari sebuah bilangan. Bentuk umum : sqrt(bilangan); . pow() Digunakan untuk menghitung pemangkatan suatu bilangan. Bentuk umum : pow(bilangan, pangkat); . sin(), cos(), tan() Masing-masing digunakan untuk menghitung nilai sinus, cosinus dan tangens dari suatu sudut. Bentuk umum : sin(sudut); cos(sudut); tan(sudut); . atof() Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 39 dari 77 Buku Informasi Versi: 01-09-2007
  • 40. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double. Bentuk umum : atof(char x); . atoi() Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer. Bentuk umum : atoi(char x); . div() Digunakan untuk menghitung hasil pembagian dan sisa pembagian. Bentuk umum : div_t div(int x, int y) Strukturnya : typedef struct { int qout; // hasil pembagian int rem // sisa pembagian } div_t; . max() Digunakan untuk menentukan nilai maksimal dari dua buah bilangan. Bentuk umum : max(bilangan1, bilangan2); . min() Digunakan untuk menentukan bilangan terkecil dari dua buah bilangan. Bentuk umum : min(bilangan1, bilangan2); 4.4.2 Membuat fungsi sendiri Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 40 dari 77 Buku Informasi Versi: 01-09-2007
  • 41. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Meskipun hampit setiap bahasa pemrograman telah menyediakan berbagai macam fungsi sesuai dengan kegunaannya, pada implementasinya pemrogram harus memiliki kemampuan untuk mendefisinikan fungsi sendiri. Berikut akan dijelaskan keuntungan yang diperoleh dengan memecah bagian kode program ke dalam fungsi – fungsi kecil. - Sebuah program berisikan sekumpulan instruksi logis yang dieksekusi berdasarkan urutan, dalam penulisan program yang besar ada kemungkinan baris – baris kode program yang berulang. Dengan menggunakan fungsi, maka perulangan kode ini tidak perlu terjadi. - Pemakaian fungsi dapat menyederhanakan penulisan kode program dan mempengaruhi terhadap ukuran file dari program yang dihasilkan. - Pemakaina fungsi dapat memudahkan proses debug (pemeriksaan) ketika terjadi kesalahan pada kode program. - Pemakaian fungsi dapat memudahkan pemrogram ketika mengembangkan program yang lain, dan tidak perlu menuliskan kode program untuk sebuah masalah yang sama. - Pemakaian fungsi dapat meningkatkan efisiensi waktu pengembangan program. Pada dasarnya fungsi dibagi menjadi 2, yaitu : - Fungsi Fungsi adalah sebuah modul yang berisi sekumpulan kode program yang disusun untuk sebuah tujuan tertentu. Fungsi akan mengembalikan sebuah nilai tertentu kepada pemanggilnya. Deklarasi Fungsi Sebelum digunakan (dipanggil), suatu fungsi harus dideklarasikan dan didefinisikan terlebih dahulu. Bentuk umum pendeklarasian fungsi adalah : tipe_fungsi nama_fungsi(parameter_fungsi); Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 41 dari 77 Buku Informasi Versi: 01-09-2007
  • 42. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Sedangkan bentuk umum pendefinisian fungsi adalah : Tipe_fungsi nama_fungsi(parameter_fungsi) { statement statement ………... ………... return nilai_tertentu } Hal-hal yang perlu diperhatikan dalam penggunaan fungsi : 1. Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai keluaran bertipe integer. 2. Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian penentu tipe fungsi. 3. Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void 4. Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return. 5. Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya. - Prosedur Pada dasarnya sebuah modul juga berisi sekumpulan kode program yang disusun untuk sebuah tujuan tertentu, yang membedakan dengan fungsi adalah prosedur tidak mengembalikan nilai kepada pemanggilnya. Prosedur hanya menjalankan sekumpulan instruksi tanpa mengembalikan nilai apapun. Deklarasi Prosedur Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 42 dari 77 Buku Informasi Versi: 01-09-2007
  • 43. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Sebelum digunakan (dipanggil), suatu prosedur harus dideklarasikan dan didefinisikan terlebih dahulu. Bentuk umum pendeklarasian prosedur adalah : void nama_prosedur(parameter_prosedur); Pada pendeklarasian prosedur ditambahkan kata kunci void, yang berarti tidak mengembalikan nilai apapun kepada pemanggilnya. Sedangkan bentuk umum pendefinisian prosedur adalah : void nama_prosedur(parameter_prosedur) { statement statement ………... ………... } 4.4.3 Parameter Formal dan Parameter Aktual 1. Parameter Formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi. 2. Parameter Aktual adalah variabel (parameter) yang dipakai dalam pemanggilan fungsi. 4.4.4 Cara Melewatkan Parameter Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 43 dari 77 Buku Informasi Versi: 01-09-2007
  • 44. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Cara melewatkan suatu parameter dalam Bahasa C ada dua cara yaitu : 1. Pemanggilan Secara Nilai (Call by Value) o Call by value akan menyalin nilai dari parameter aktual ke parameter formal o Yang dikirimkan ke fungsi / prosedur adalah nilai dari datanya, bukan alamat memori letak dari datanya. o Fungsi / prosedur yang menerima kiriman nilai akan menyimpannya  alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi / prosedur. o Perubahan nilai di fungsi / prosedur (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya. o Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi / prosedur ke fungsi / prosedur yang dipanggil. o Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja. 2. Secara Referensi (Call by Reference) o Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi / prosedur. o Yang dikirimkan ke fungsi / prosedur adalah alamat letak dari nilai datanya, bukan nilai datanya. o Fungsi / prosedur yang menerima kiriman alamat ini makan  menggunakan alamat yang sama untuk mendapatkan nilai datanya. o Perubahan nilai di fungsi / prosedur akan merubah nilai asli di bagian program yang memanggil fungsi / prosedur. o Pengiriman parameter secara referensi adalah pengiriman dua arah, Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 44 dari 77 Buku Informasi Versi: 01-09-2007
  • 45. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 yaitu dari fungsi / prosedur pemanggil ke fungsi / proisedur yang dipanggil dan juga sebaliknya. o Pengiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan. Penggolongan Variabel berdasarkan Kelas Penyimpanan (Storage Class) Ketika mempelajari tentang metode untuk melewatkan parameter ke dalam fungsi / prosedur, hendaknya kita juga mengetahui jenis – jenis variabel dengan ruang lingkupnya masing – masing. 4.4.5 Variabel lokal Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi / prosedur tertentu dan hanya berlaku pada fungsi / prosedur tersebut.. 4.4.5.1 Sifat-sifat variabel lokal : o Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika proses eksekusi terhadap fungsi berakhir. o Hanya dikenal oleh fungsi tempat variabel dideklarasikan. o Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya random). o Dideklarasikan dengan menambahkan kata “auto” (opsional). 4.4.6 Variabel global (eksternal) Variabel global (eksternal) adalah variabel yang dideklarasikan di luar fungsi. 4.4.6.1 Sifat-sifat variabel global : o Dikenal (dapat diakses) oleh semua fungsi. o Jika tidak diberi nilai awal secara otomatis berisi nilai nol. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 45 dari 77 Buku Informasi Versi: 01-09-2007
  • 46. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 o Dideklarasikan dengan menambahkan kata “extern” (opsional). 4.4.7 Variabel Statis Variabel statis adalah variabel yang nilainya tetap dan bisa berupa variabel lokal (internal) dan variabel global (eksternal). 4.4.7.1 Sifat-sifat variabel statis : o Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi tempat variabel dideklarasikan. o Jika bersifat eksternal (global), maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada program yang sama. o Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir. o Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi dipanggil pertama kali. o Jika tidak diberi nilai awal secara otomatis berisi nilai nol. o Dideklarasikan dengan menambahkan kata “static”. 4.4.8 Variabel Register Variabel Register adalah variabel yang nilainya disimpan dalam resister dan bukan dalam memori RAM. 4.4.8.1 Sifat-sifat variabel register : o Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char. o Digunakan untuk mengendalikan proses perulangan (looping). o Proses perulangan akan lebih cepat karena variabel register memiliki kecepatan yang lebih tinggi dibandingkan variabel biasa. o Dideklarasikan dengan menambahkan kata “register”. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 46 dari 77 Buku Informasi Versi: 01-09-2007
  • 47. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Contoh 1.1 Program akan mendefinisikan sebuah fungsi untuk menghitung nilai akhir ujian berdasarkan rumus perhitungan : Nilai akhir = (nilai ujian * 3) / 4. Hasil perhitungan akan ditampilkan pada fungsi pemanggilnya. #include <stdio.h> int hitung_nilai(int nilai){ int n_akhir; n_akhir = (nilai*3)/4; return n_akhir; } void main(){ int nilai, n_akhir; scanf(“%d”,&nilai); // meminta inputan nilai akhir dari keyboard. n_akhir = hitung_nilai(nilai); // memanggil fungsi hitung nilai dan menampung hasil kembaliannya. printf(“Nilai akhir adalah : %d”, n_akhir); // mencetak hasil ke layer monitor. } Hal yang harus diperhatikan adalah antara variabel n_akhir pada void main dengan variabel n_akhir dari fungsi hitung nilai memang memiliki kesamaan, namun secara pengalokasian di dalam memori sudah berbeda. Variabel n_akhir menjadi variabel lokal pada fungsi nya masing – masing. Contoh 1.2 Program akan mendefisinikan sebuah prosedur untuk menuliskan hasil inputan array dari keyboard ke layer. Prosedur akan melewatkan paramter by value. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 47 dari 77 Buku Informasi Versi: 01-09-2007
  • 48. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 #include <stdio.h> void tampil(int data[]){ for(int baris=0; baris < 5; baris++){ printf(“%d”,data[baris]); }} void main(){ int data[5]; for(int baris = 0; baris < 5; baris++){ scanf(“%d”, &data[baris]); } tampil(data); // mengirimkan nilai dari variabel array data ke prosedur tampil. // tidak menerima nilai kembalian dari prosedur tampil. } Hal yang harus diperhatikan, meskipun pada void main mengrimkan paramerer bernama data ke dalam prosedur tampil yang diterima oleh sebuah variabel bernama data juga, pada prinsipnya kedua pihak memiliki alokasi yang berbeda di memori computer meskipun memiliki nama yang sama. Nama variabel pengirim dan penerima tidak harus sama, penyamaan nama hanya digunakan untuk mempermudah penulisan kode program saja. Contoh 1.3 Program akan melewatkan parameter by reference, dimana akan merubah nilai sebuah variabel dari prosedur lain. #include <stdio.h> void ubah_nilai(int &nilai){ nilai = 100; // mengubah nilai dari pointer nilai menjadi 100. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 48 dari 77 Buku Informasi Versi: 01-09-2007
  • 49. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 } void main(){ int a = 10; printf(“Nilai a adalah : %d”,a); // sebelum dirubah nilainya dalam prosedur ubah nilai. Ubah_nilai(a); // mengirimkan alamat dari variabel a ke prosedur ubah nilai. printf(“Nilai a sekarang : %d”, a); // nilai a sekarang sudah berubah menjadi 100. } 4.5 Pemrograman Grafik. Grafik komputer adalah gambar atau grafik yang dihasilkan oleh komputer. Teknik-teknik yang dipelajari dalam grafik komputer adalah teknik-teknik bagaimana membuat atau menciptakan gambar menggunakan komputer. Ada perbedaan yang sangat mendasar antara foto dan gambar, yaitu pada foto semua detail obyek terlihat sedangkan pada gambar (baik itu gambar manusia atau gambar komputer) tidak dapat memperlihatkan semua detail yang ada tetapi hanya detail-detail yang dianggap penting dalam menunjukkan pola suatu gambar. Grafik komputer merupakan perangkat (tool) dasar yang digunakan untuk membuat gambar dengan komputer. Dengan menggunakan perangkat ini, penciptaan gambar dapat dilakukan bahkan dimudahkan dengan menggunakan komputer Program atau tool yang digunakan untuk menciptakan atau memanipulasi gambar / foto sudah sangat banyak, mulai dari Adobe Photoshop, Corel Draw, Adobe Image Ready, dll. Pada pembahasan ini tidak akan membahas mengenai program atau tool tersebut, melainkan akan membahas mengenai dasar pemrograman grafik menggunakan bahasa pemrograman Turbo C. File library yang digunakan Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 49 dari 77 Buku Informasi Versi: 01-09-2007
  • 50. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Fle library yang memuat fungsi – fungsi dalam operasi pemgrograman grafik di kompiler turbo C adalah : graphics.h. File tersebut harus dimuat terlebih dahulu pada tubuh program ketika hendak memulai menulis program. Berikut akan dijelaskan beberapa fungsi – fungsi yang penting dalam pemrograman grafik di Turbo C. 4.5.1 Fungsi – fungsi penting pada proses inisialisasi modus grafis. - void initgraph (int far * graphdriver, int far * graphmode, char far * pathtodriver) Untuk menjalankan sistem kepada modus grafik, prosedur initgraph harus dipanggil terlebih dahulu. Prosedur ini akan memanggil driver grafik dari tempat penyimpanan tertentu ataupun menvalidasi dari driver yang telah diregister di dalam sistem dan kemudian menjalankan sistem pada modus grafik. Selain itu, initgraph juga melakukan pengaturan ulang terhadap pengaturan grafik kembali ke pengaturan awal. Berikut adalah kegunaan dari setiap parameter pada prosedur initgraph : • int far *graphdriver, ini akan mendeskripsikan driver grafis yang akan digunakan ke dalam sistem nantinya. • int far *graphmode, ini akan mendeskripsikan modus grafik yang digunakan. Apabila nilai dari graphmode = DETECT, maka akan membawa sistem kepada resolusi maksimal yang memungkinkan. (Disarankan untuk memberikan nilai DETECT pada parameter graphmode, dimaksudkan agar sistem langsung menyesuaikan diri dengan kondisi resolusi maksimal). • char far *pathtodriver, ini akan mendeskripsikan jalur dari driver yang akan dimuat ke dalam sistem. File driver yang akan dicari berkestensi (.BGI), dan apabila nilainya kosong maka pencarian akan dilakukan pada direktori yang aktif saat ini. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 50 dari 77 Buku Informasi Versi: 01-09-2007
  • 51. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 - void far closegraph(void) Prosedur ini digunakan untuk mengembalikan modus grafik kepada kondisi sebelum pemanggilan prosedut initgraph(), dan seluruh alokasi memori yang diakibatkan penggunaan modus grafik tersebut akan dilepaskan dan modus sistem kembali ke modus teks. - void far detechgraph(int far * graphdriver, int far * graphmode) Prosedur ini digunakan untuk mendeteksi adaptor grafik yang terinstall pada sistem kita, apabila tidak ada adaptor grafik yang terinstall pada komputer kita maka akan menampilkan pesan kesalahan. Prosedur ini berfungsi untuk melihat kapasitas maksimal yang dimiliki oleh sistem grafis kita. - int registerbgidriver(void (*driver)(void)) Fungsi ini digunakan untuk melakukan registrasi terhadap driver grafis yang akan digunakan. File driver dapat secara langsung dimuat dari media penyimpanan ataupun dilakukan koversi terlebih dahulu ke dalam file (.OBJ) menggunakan (BINOBJ.exe). Apabila proses registrasi berhasil, maka akan mengembalikan nilai positif dan apabila gagal maka akan mengembalikan nilai negatif. Setelah proses registrasi berhasil, maka initgraph dapat memanggil sebagai driver yang teregister di dalam sistem. - int fat graphresult(void) Fungsi ini akan mengembalikan nilai yang dihasilkan dari setiap operasi grafikyang dilakukan. Fungsi ini hanya akan berisi 2 kemungkinan, pertama adalah operasi grafis berhasil dilakukan dan kedua adalah operasi grafis gagal dilakukan. Nilai kesalaahan yang dimuat mulai dari -18 hingga 0, dimana pada setiap nilai tersebut memiliki jenis kesalahan sendiri – sendiri. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 51 dari 77 Buku Informasi Versi: 01-09-2007
  • 52. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Kode Konstanta Pesan Kesalahan 0 grOk Tidak ada kesalahan -1 grNoInitGraph (BGI) driver tidak terinstall -2 grNoDetected Perangkat grafis tidak ada -3 grFileNotFound File driver tidak ditemukan -4 grInvalidDriver File driver tidak valid -5 grNoLoadMem Memori tidak cukup -6 grNoScanMem Memori tidak cukup untuk scan fill -7 grNoFloodMem Memori tidak cukup untuk flood fill -8 grFontNofFound File huruf tidak ada -9 grNoFontMem Memori tidak cukup load huruf -10 grInvalidMode Modus grafis tidak valid -11 grError Grafis error -12 grIOError Grafis I/O error -13 grInvalidFont File huruf tidak valid -14 grInvalidFontNum Nomor huruf tidak valid -15 grInvalidDeviceNum Nomor devicde tidak valid -18 grInvalidVersion Versi tidak valid Pada implementasinya fungsi – fungsi yang digunakan untuk melakukan inisialisasi modus grafis cukup banyak, beberapa contoh prosedur diatas adalah prosedur yang paling sering digunakan dan sudah mampu untuk melakukan manipulasi grafis atapun merubah sistem dari modus teks ke dalam modus grafis. Untuk lebih jelasnya, silahkan melihat tutorial atau dokumentaso setiap bahasa pemrograman. 4.5.2 Fungsi – fungsi penting dalam memanipulasi obyek grafis. - void far setcolor(int color) Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 52 dari 77 Buku Informasi Versi: 01-09-2007
  • 53. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Prosedur yang digunakan untuk melakukan editing terhadap warna dari sistem grafis yang dipakai. Warna yang dirubah hanya warna tulisan ataupun obyek saja. - int far getcolor(void) Fungsi yang digunakan untuk memperoleh warna yang aktif saat ini. Nilai yang dihasilkan berupa nilai integer, dimana setiap nilai intereger tersebut memiliki arti warna tertentu. - void far setbkcolor(int color) Prosedur yang digunakan untuk melakukan manipulasi warna backround dari sebuah obyek atau tulisan. - int far getbkcolo(void) Fungsi yang digunakan untuk memperoleh warna background dari sebuah obyek atau tulisan. - int far getmaxcolor(void) Fungsi yang digunakan untuk memperoleh maksimal warna yang dapat digunakan / dilewatkan oleh prosedur setcolor atau setbkcolor. Setiap driver grafis tertentu memiliki kapasitas yang berbeda – beda. Sebagai contoh : Pada driver 256K EGA memiliki maksimal warna 15, yang berarti setcolor dapat melewatkan parameter nilai dari 0 sampai 15, sedangkan pada driver CGA (Hercules Monochrome Adapter) akan mengembalikan nilai 1. - int far getmaxx(void) Fungsi ini mengembalikan nilai maksimum dari kordinat x dari sistem. Nilai maksimum dari kordinat ini tergantung dari driver dan modus grafik system. - int far getmaxy(void) Fungsi ini mengembalikan nilai maksimum dari kordinat y dari sistem. Nilai maksimum dari kordinat ini tergantung dari driver dan modus grafik sistem. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 53 dari 77 Buku Informasi Versi: 01-09-2007
  • 54. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 - int far getx(void) Fungsi ini akan mengembalikan nilai kordinat x berdasarkan posisi relative kursor saat itu. - int far gety(void) Fungsi ini akan mengembalikan nilai kordinat y berdasarkan posisi relative kursor saat itu. - void far setlinestyle(int linestyle, unsigned upattern, int thickness) Prosedur ini digunakan untuk melakukan pengaturan terhadap bentuk, jenis dan ketebalan dari garis lurus. Garis ini seringkali digunakan dalam membuat bentuk 2 dimensi seperti : garis lurus, rectangle, busur, lingkaran dan bentuk polygon. Terdapat 3 buah parameter, antara lain : • int linestyle, mendeskripsikan jenis dari garis. • unsigned upattern, mendeskripsikan bentuk dari garis. • int thickness, mendeskripsikan ketebalan dari garis. - void settextjustify (int horiz, int vertz) Prosedur ini digunakan untuk meletakkan sebuah string / kalimat berada pada posisi relatif terhadap batas horisontal (batas kiri layar) dan vertikal (batas atas layar). Pada implementasinya, kita dapat melakukan pengesetan ulang terhadap posisi relatif terhadap layar, seperti halnya posisi horisontal (LEFT_TEXT, CENTER_TEXT, RIGHT_TEXT) dan vertikal (BOTTOM_TEXT, CENTER_TEXT, TOP_TEXT). Prosedur ini hanya bekerja pada modus grafis dan tidak bekerja pada modus teks. - void outtextxy(int x, int y, char * text) Prosedut outtextxy digunakan untuk menuliskan kalimat pada kordinat tertentu menggunakan modus grafis. Terdapat 3 parameter, antara lain : Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 54 dari 77 Buku Informasi Versi: 01-09-2007
  • 55. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 • int x, akan mendeskripsikan nilai kordinat x. • int y, akan mendeskripsikan nilai kordinat y. • char * teks, berupa kalimat / string yang ingin dituliskan. - void settextstyle( int font, int direction, int charsize) Prosedur ini digunakan untuk melakukan pengesetan terhadap ukuran dan jenis huruf yang digunakan pada modus grafis. Prosedur ini hanya berfungsi pada modus grafis saja dan tidak pada modus teks. Terdapat 3 parameter, antara lain : • int font, akan mendeskripsikan jenis huruf yang digunakan. Terdapat 5 jenis huruf, yaiut : standar, sans_serif, gothic, triplex dan small font. • Int direction, akan mendeskripsikan bagaimana sebuah kalimat aqkan dituliskan ke dalam layar. Terdapat 2 parameter, yaitu : HORIZ_DIR dan VERT_DIR. Dimana HORIZ_DIR akan menuliskan dari kiri ke kanan, dan VERT_DIR akan menuliskan dari bawah ke atas. • Int charsize, akan mendeskripsikan ukuran dari sebuah tulisan. Rentang nilai dari 0 hingga 10 kali ukuran huruf biasa. Pada implementasinya, untuk memanipulasi tampilan obyek atau tulisan pada modus grafis terdapat cukup banyak fungsi – fungsinya. Pembahasan diatas mengacu pada fungsi – fungsi yang sering digunakan dan untuk lebih lengkapnya silahkan melihat tutorial / dokumentasi setiap bahasa pemrograman. 4.5.3 Fungsi – fungsi penting untuk membuat obyek 2 Dimensi - void far line( int x1, int y1, int x2, int y2) Prosedur ini akan menggabarkan garis linier / lurus dari titik kordinat (x1,y1) hingga titik kordinat (x2,y2) berdasarkan warna yang aktif saat itu. Pengubahan warna dapat dilakukan dengan menggunakan prosesur setcolor(int color). Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 55 dari 77 Buku Informasi Versi: 01-09-2007
  • 56. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 - void far linerel(int dx, int dy) Prosedur ini akan menggambarkan garis linier / lurus dari posisi saat ini hingga jarak relative horisontal yang ditentukan dalam dx dan jarak relative vertikal yang ditentukan dalam dy. - void far lineto (int x, int y) Prosedur ini akan menggambarkan garis lurus / linier dari posisi saat ini hingga kordinat yang dituju yang didefinisikan dalam nilai x dan y. Setelah itu posisi kursor akan dipindah ke kordinat (x,y). - void far ellipse(int x, int y, int stangle, int endangle,int xradius, int yradius) Prosedur ini digunakan untuk menggambar busur elips berdasarkan warna yang aktif saat itu. Terdapat 6 buah parameter, antara lain : • int x, ini sebagai pusat kordinat x penggambaran. • int y, ini sebagai pusak kordinat y penggambaran. • int stangle, sebagai sudut awal (dalam derajat) • int endangle, sebagai sudut akhir (dalam derajat) • int xradius, sebagai diameter horizontal dari elips yang digambar. • Int yradius,sebagai diameter vertikal dari elips yang digambar. - void far fillellipse(int x, int y,int xradius, int yradius) Prosedur ini digunakan untuk menggambar busur elips dan mengisi elips tersebut menggunakan warna dan metode pengisian yang telah diatur sebelumnya menggunakan prosedur setfilltype(). Terdapat 4 buah parameter, antara lain : • int x, ini sebagai pusat kordinat x penggambaran. • int y, ini sebagai pusak kordinat y penggambaran. • int xradius, sebagai diameter horizontal dari elips yang digambar. • Int yradius,sebagai diameter vertikal dari elips yang digambar. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 56 dari 77 Buku Informasi Versi: 01-09-2007
  • 57. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 - void far arc(int x, int y, int stangle, int endangle, int radius) Prosedur ini digunakan untuk menggambarkan bentuk busur. Terdapat 5 buah parameter, antara lain : • int x, ini sebagai pusat kordinat x penggambaran. • int y, ini sebagai pusak kordinat y penggambaran. • int stangle, sebagai sudut awal (dalam derajat) • int endangle, sebagai sudut akhir (dalam derajat) • int radius, sebagai diameter dari busur yang akan digambar. - void far circle(int x, int y, int radius) Prosedur ini digunakan untuk menggambarkan bentuk lingkaran. Terdapat 3 buah parameter, antara lain : • int x, ini sebagai pusat kordinat x penggambaran. • int y, ini sebagai pusak kordinat y penggambaran. • int radius, sebagai diameter dari busur yang akan digambar. - void far rectangle(int left, int top, int right, int bottom) Prosedur ini digunakan untuk menggambar bentuk rectangle (bentuk bujur sangkar dengan siku berbentuk sedikit elips). Terdapat 4 buah parameter, antara lain : • int top, menunjukkan kordinat x dari ujung kiri atas. • Int left, menunjukkan kordinat y dari ujung kiri atas. • Int right, menunjukkan kordinat x dari ujung kanan bawah. • Int bottom, menunjukkan kordinat y dari ujung kanan bawah. Prosedur akan menggambarkan sesuai dengan warna dan bentuk garis yang telah didefinisikan sebelumnya. - void far drawpoly(int numpoints, int far *polypoints) Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 57 dari 77 Buku Informasi Versi: 01-09-2007
  • 58. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Prosedur ini digunakan untuk menggambar bentuk polygon menggunakan bentuk garis dan warna yang telah didefinisikan sebelumnya. Terdapat 2 buah parameter, antara lain : • int numpoints, mendeskripsikan jumlah titik yang ada. • Int far *polypoints, mendeskripsikan sekumpulan pasangan titik yang digunakan sebagai titik kordinat dari bentuk polygon. Jumlah pasangan titik ini = 2 X jumlah titik (numpoints). Setiap pasang titik medeskripsikan kordinat (x,y) dari bentuk polygon. - void far fillpoly(int numpoints, int far *polypoints) Prosedur ini sama persis dengan prosedur drawpoly diatas, perbedaannya adalah prosedur ini akan mengisi bentuk polygon dengan warna dan model pengisian yang telah didefinisikan sebelumnya. Penjelasan mengenai tiap parameter, sama dengan penjelasan pada prosedur drawpoly. - void far pieslice(int x, int y, int stangle, int endangle, int radius) Prosedur ini digunakan untuk menggambarkan bentuk diagram pie. Terdapat 5 buah parameter, antara lain : • int x, ini sebagai pusat kordinat x penggambaran. • int y, ini sebagai pusak kordinat y penggambaran. • int stangle, sebagai sudut awal (dalam derajat) • int endangle, sebagai sudut akhir (dalam derajat) • int radius, sebagai diameter dari busur yang akan digambar. Perbedaan antara arc dengan pieslice adalah pada bentuk ini akan dilakukan pengisian warna. Warna yang diisikan sesuai pengaturan warna melalui prosedur setfillstyle(). Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 58 dari 77 Buku Informasi Versi: 01-09-2007
  • 59. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 4.5.4 Contoh – contoh program : Contoh 1.1 Program mendaftarkan driver grafis EGAVGA ke dalam sistem. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; errorcode = registerbgidriver(EGAVGA_driver); /*apabila registrasi gagal */ if (errorcode < 0) { printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* initialisasi graphics*/ initgraph(&gdriver, &gmode, ""); /* memeriksa apakah inisialisasi grafis berhasil*/ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 59 dari 77 Buku Informasi Versi: 01-09-2007
  • 60. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 } Contoh 1.2 Program membuka modus grafis dan menggambarkan garis sederhana kemudian mengembalikan ke modus teks. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { /* auto detect */ int gdriver = DETECT, gmode, errorcode; // inisialisasi modus grafis. initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); // melihat apakah modus grafis berhasil di load. if (errorcode != grOk) { // gagal inisialisasi modus grafis. printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* program terminasi dengan ada error */ } line(0, 0, getmaxx(), getmaxy()); // menggambar garis sederhana. closegraph(); // mengembalikan ke modus teks. return 0; // program terminasi tanpa ada error. } Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 60 dari 77 Buku Informasi Versi: 01-09-2007
  • 61. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Contoh 1.3 Program untuk menuliskan teks ke dalam modus grafis pada posisi kordinat (50,50). #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void){ /*auto detect */ int gdriver = DETECT, gmode, errorcode; int midx, midy; /* inisialisasi modus grafis*/ initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); // memeriksa apakah berhasil meload modus grafis. if (errorcode != grOk) { // apabila terjadi kegagalan. printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* program di terminasi dengan ada kesalahan */ } midx =50; midy = 50; outtextxy(midx, midy, "Testing Sederhana"); // menulis pada kordinat (50,50) closegraph(); // kembali ke modus teks. return 0; /* program di terminasi tanpa ada kesalahan */ } Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 61 dari 77 Buku Informasi Versi: 01-09-2007
  • 62. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Contoh 1.4 Program untuk menggambar garis lurus dari kordinat (10,20) hingga (30,50) #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { /* auto detect */ int gdriver = DETECT, gmode, errorcode; // inisialisasi modus grafis. initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); // melihat apakah modus grafis berhasil di load. if (errorcode != grOk) { // gagal inisialisasi modus grafis. printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* program terminasi dengan ada error */ } line(10,20, 30, 50); // menggambar garis sederhana. closegraph(); // mengembalikan ke modus teks. return 0; // program terminasi tanpa ada error. } Contoh 1.5 Program untuk menggambar lingkaran pada kordinat (20,20) dengan radius 50. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 62 dari 77 Buku Informasi Versi: 01-09-2007
  • 63. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void){ /* Auto Detect */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int radius = 100; /* inisialisasi ke modus grafis */ initgraph(&gdriver, &gmode, "") errorcode = graphresult(); // melihat apakah berhasil meload modus grafis. if (errorcode != grOk) { // terdapat kegagalan dalam meload modus grafis. printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* program di terminasi dengan ada kesalahan */ } midx = getmaxx() / 2; midy = getmaxy() / 2; setcolor(getmaxcolor()); // atur warna sistem. circle(midx, midy, radius); // mengammbar bentuk lingkaran. closegraph(); // mengembalikan ke modus teks. return 0; /* program di terminasi dengan ada kesalahan */ } Contoh 1.6 Program untuk menggambarkan bentuk rectangle pada kordinat (10,10) dan (50,100). Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 63 dari 77 Buku Informasi Versi: 01-09-2007
  • 64. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void){ /* Auto Detect */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int radius = 100; /* inisialisasi ke modus grafis */ initgraph(&gdriver, &gmode, "") errorcode = graphresult(); // melihat apakah berhasil meload modus grafis. if (errorcode != grOk) { // terdapat kegagalan dalam meload modus grafis. printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* program di terminasi dengan ada kesalahan */ } left = getmaxx() / 2 - 50; top = getmaxy() / 2 - 50; right = getmaxx() / 2 + 50; bottom = getmaxy() / 2 + 50; rectangle(left,top,right,bottom); // menggambar bentuk rectangle. closegraph(); // mengembalikan ke modus teks. return 0; /* program di terminasi dengan ada kesalahan */ } Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 64 dari 77 Buku Informasi Versi: 01-09-2007
  • 65. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Contoh 1.7 Program untuk menggambar bentuk poligon dengan 5 titik. Masing – masing titik kordinat akan digambarkan langsung di dalam program. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { /* auto detect */ int gdriver = DETECT, gmode, errorcode; int maxx, maxy; /* array verteks dari poligon */ int poly[10]; initgraph(&gdriver, &gmode, ""); // inisialisaasi modus grafis. errorcode = graphresult(); // melihat apakah modus grafis berhasil di load. if (errorcode != grOk) { // terjadi kegagalan dama load modus grafis. printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); // program diterminasi dengan ada keslahan. } maxx = getmaxx(); maxy = getmaxy(); poly[0] = 20; /* verteks pertama */ poly[1] = maxy / 2; poly[2] = maxx - 20; /* kedua */ poly[3] = 20; Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 65 dari 77 Buku Informasi Versi: 01-09-2007
  • 66. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 poly[4] = maxx - 50; /* ketiga */ poly[5] = maxy - 20; poly[6] = maxx / 2; /*keempat */ poly[7] = maxy / 2; poly[8] = poly[0]; /* kelima = akhir penutur = verteks awal */ poly[9] = poly[1]; drawpoly(5, poly); // menggambar bentuki poligon. closegraph(); // mengembalikan ke modus teks. return 0; // program diterminasi tanpa ada kesalahan. } 4.6 Pengenalan Obyek 3 Dimensi Pemrograman grafis selau tidak pernah dari obyek 3 Dimensi, karena dewasa ini penggunaan obyek 3 dimensi semakin bervariatif. Mulai dari game console, game online, film animasi hingga dunia periklanan. Program dan tool – tool yang digunakan untuk membuat obyek 3 dimensi juga semakin bervariatif, mulai dari openGL, 3D Studio Max, Maya dan lain sebagainya. Pada pembahasan ini kita akan mempelajari dasar – dasar dalam pemrograman obyek 3 Dimensi. Objek 3 dimensi adalah sebuah model struktur data yang menyatakan suatu gambar 3D dibentuk dan disusun. Objek 3D didefinisikan dengan : • Objek 3D adalah sekumpulan titik-titik 3D (x,y,z) yang membentuk luasan- luasan (face) yang digabungkan menjadi satu kesatuan. • Face adalah gabungan titik-titik yang membentuk luasan tertentu atau sering dinamakan dengan sisi. Dari definisi ini, dapat dikatakan bahwa objek 3D merupakan kumpulan titik-titik dan kumpulan face yang merupakan susunan dari titik-titik yang ditentukan. Seperti gambar kubus, kubus terdiri dari 8 titik dan 6 sisi/face. Dimana face merupakan Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 66 dari 77 Buku Informasi Versi: 01-09-2007
  • 67. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 polygon atau kumpulan titik-titik yang disusun urutannya. Dalam kubus, facenya semua berupa bujur sangkar dengan 4 titik. Pada dasarnya sebuah obyek 3D terdiri dari elemen – elemen dasar, antara lain : • Point Point adalah sebuah titik yang digunakan untuk membangun obyek. Setiap titik dalam obyek 3D memiliki nilai dalam x, y, z . • Polyline Polyline adalah sebuah fungsi yang dibentuk dari beberapa garis yang saling berhubungan dan membentuk sebuh kurva yang terbuka • Polygon Polygon adalah suatu fungsi yang mirip dengan polyline hanya saja hasilnya adalah kurva tertutup, sedangkan polyline hasilnya kurva terbuka. • Filled Polygon (Face) Filled Polygon adalah sebuah polygon yang bagian dalamnya diwarnai atau dipenuhi dengan sebuah warna tertentu. Filled polygon biasanya digunakan sebagai face dari pembentukan obyek 3D. • Gradate Polygon Gradate polygon adalah sebuah polygon yang bagian dalamnya memiliki warna – warna yang bergradasi dari satu warna ke warna yang lain. 4.7 Pengenalan Terhadap Program OpenGL Pada pembuatan obyek 3D, kita tidak dapat membuat dengan metode yang kita gunakan untuk membuat obyek 2D. Meski pada dasarnya sebuah obyek 3D adalah sekumpulan titik – titik (point) yang terhubung satu sama lain. Untuk menghasilkan sebuah obyek 3D yang baik maka kita akan mempelajari tentang dasar – dasar penerapan program openGL. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 67 dari 77 Buku Informasi Versi: 01-09-2007
  • 68. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 OpenGL adalah software (perangkat lunak) interface perangkat keras grafik. Interface ini terdiri dari sekitar 150 command atau perintah yang berbeda yang bisa digunakan untuk menentukan objek dan operasi yang dibutuhkan untuk menghasilkan aplikasi tiga dimensi yang interaktif. OpenGL didesain untuk memperlancar, diimplementasikan pada banyak jenis perangkat keras yang berbeda. OpenGL tidak menyediakan command (perintah) untuk menggambarkan model dari objek tiga dimensi, kita harus membangun model yang diinginkan dari satu set kecil dari geometri seperti titik, garis, dan poligon. Library yang menyediakan fitur ini tentunya bisa dibuat dengan OpenGL. The OpenGL Utility Library (GLU) menyediakan beberapa fitur modeling, seperti permukaan kuadrik, kurva, dan bentuk-bentuk lainnya. GLU adalah bagian standar dari setiap implementasi OpenGL. OpenGL memiliki lebih dari 200 fungsi. 4.7.1 Fungsi tersebut bisa dikelompokkan menjadi : • Fungsi primitif, menentukan elemen yang bisa menghasilkan gambar di layar. Fungsi ini terdiri dari 2 jenis, yaitu primitive geometric seperti polygon (segi banyak) yang bisa dibuatmenjadi dua, tiga, atau empat dimensi, dan primitif gambar seperti bitmaps. • Fungsi atribut, mengontrol tampilan dari primitif. Fungsi ini menentukan warna, jenis garis, properti material, sumber cahaya, dan tekstur. • Fungsi pandangan, menentukan properti kamera. OpenGL menyediakan sebuah virtual kamera yang bisa diposisikan dan diorientasikan relatif ke obyek yang ditentukan dengan fungsi primitif. Lensa kamera juga bisa dikendalikan sehingga bisa dihasilkan sudut yang lebar dan pandangan telefoto (jarak jauh). • Fungsi windowing, fungsi ini mengendalikan windows pada layar dan penggunaan dari mouse dan keyboard. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 68 dari 77 Buku Informasi Versi: 01-09-2007
  • 69. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 • Fungsi kontrol, menghidupkan macam-macam fitur OpenGL. Fungsi-fungsi OpenGL dimuat didalam 2 library yang disebut dengan gl dan glu (atau GL dan GLU). Library yang pertama, adalah fungsi utama dari OpenGL, berisi semua fungsi OpenGL yang dibutuhkan sedangkan yang kedua, the openGL Utility Llibrary (GLU) memuat fungsi yang ditulis menggunakan fungsi dari library utama dan sangat membantu bagi pengguna. Fungsi utama mempunyai nama yang diawali dengan “gl” seperti “glVertex3f()”, sedangkan fungsi didalam GLU mempunyai nama yang diawali dengan “glu” seperti “gluOrtho2D()”. 4.7.2 Proses Instalasi OpenGL Pada pembahasan kali ini, kita akan menggunakan sistem operasi Linux Debian sebagai system operasi dasar dimana program OpenGl berjalan. Pembahasan ini tidak menjelaskan secara detil cara untuk melakukan instalasi system operasi Linux (dapat melihat materi instalasi linux). Berikut akan dijelakan bagaimana melakukan instalasi program OpenGL pada sistem operasi linux. Untuk melakukan kompilasi dari program OpenGL yang dibuat, diharapkan melakukan instalasi terhadap compiler C (gcc) dengan langkah –langkah sebagai berikut : • Instal kompiler C (gcc) dengan mengetik : # apt-get install gcc-3.4 • Instal paket library yang dibutuhkan bahasa pemrograman C dan OpenGL # apt-get install libc6 libc6-dev # apt-get install freeglut3 freeglut3-dev # apt-get install libglut3 libglut3-dev # apt-get install xlibmesa-gl xlibmesa-gl-dev # apt-get install xlibmesa-glu xlibmesa-glu-dev Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 69 dari 77 Buku Informasi Versi: 01-09-2007
  • 70. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 Untuk menulis program C atau OpenGL di dalam system operasi linux, anda tidak memerlukan editor khusus. Anda bias menggunakan editor biasa semacam kwrite atau editor vi atau vim. Secara teknis sintak – sintak yang digunakan sama dengan bahasa C. 4.7.3 Program dasar dari OpenGL terdiri dari 2 fungsi yaitu : • Fungsi main() Fungsi main berfungsi untuk inisialisasi OpenGL. • Fungsi display() Fungsi display berfungsi untuk menetukan grafik yang akan ditampilkan dalam window. Contoh 1.8 Program membuat sebuah kotak putih dengan latar layer kotak hitam. #include<GL/glut.h> void display(){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); glFlush(); } Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 70 dari 77 Buku Informasi Versi: 01-09-2007
  • 71. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 int main(int argc, char** argv){ glutInit(&argc, argv); glutCreateWindow(“simple”); glutDisplayFunc(display); glutMainLoop(); } 4.7.4 Proses Kompilasi Program OpenGL Proses kompilasi program OpenGl tergantung pada sistem operasi yang digunakan, karen pada pembahasan ini kita mengasumsikan menggunakan sistem operasi Linux Debian, maka contoh yang diberikan ini berdasarkan sistem operasi linux. gcc nama_file.c –o nama_file –lglut –lGLU –lGL –lX11 –lm Untuk penjelasan lebih lanjut mengenai fungsi – fungsi yang terkandung dalam program OpenGl, silahkan mencari dokumentasi atau tutorial tentang pemrograman OpenGL lebih lanjut. Pembahasan ini tidak dimaksudkan untuk mengupas program OpenGL dengan detail, namun lebih ditujukan untuk mengenalkan dasar – dasar pemrograman obyek 3D dan pengenalan dasar program OpenGL. 4.7.5 Algoritma Animasi Sederhana Animasi pada dasarnya adalah membuat objek seolah-olah bergerak sehingga terjadi pergerakan yang membuat mata kita memandangnya sebagai sebuah kesatuan utuh. Padahal dibalik itu, animasi dibuat berdasarkan pada bagian -bagian tertentu (terpisah) dan baru kemudian akan disatukan untuk mendapatkan pergerakan yang sempurna. Pada dasarnya animasi adalah proses sebuah obyek bergerak dari satu posis ke posii yang lain dalam hitungan Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 71 dari 77 Buku Informasi Versi: 01-09-2007
  • 72. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 interval waktu tertentu. Obyek yang digerakkan dapat berupa obyek 2D, obyek 3D atau bahkan sebuah tulisan sederhana. Dewasa ini telah banyak berkembang program – program atau tool yang digunakan untuk membuat program animasi antara lain : Macromedia Flash, Studio 3D Max, Maya, Adobe Image Ready atau bahkan menggunakan program OpenGl yang telah sedikit kita bahas diatas. Berikut akan diberikan contoh sederhana animasi obyek 2D menggunakan bahasa pemrograman C. Contoh 1.9 Program membuat tulisan dalam modus grafis bergerak ke kanan dengan interval waktu sebanyak 200 mili sekon, dan program akan terus bergerak hingga pengguna menekan tombol apapun dari keyboard. Ketika tulisan mencapai batas kanan dari layar maka tulisan akan kembali ke kordinat awal. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void){ /*auto detect */ int gdriver = DETECT, gmode, errorcode; int midx, midy; /* inisialisasi modus grafis*/ initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); // memeriksa apakah berhasil meload modus grafis. if (errorcode != grOk) { // apabila terjadi kegagalan. printf("Graphics error: %sn", grapherrormsg(errorcode)); printf("Press any key to halt:"); Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 72 dari 77 Buku Informasi Versi: 01-09-2007
  • 73. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 getch(); exit(1); } /* program di terminasi dengan ada kesalahan */ midx =50; midy = 50; while (!kbhit()){ // lakukan perulangna hingga ada penekanan keyboard. outtextxy(midx, midy, "Hello"); delay(200); // menahan selama 200 mili sekon sebelum melanjutkan ke instruksi selanjutnya outtextxy(midx, midy, " "); // menghapus tulisan yang lama. midx+=10; // menambah jumlah kordinat x sebanyak 10 titk. // jika sudah mencapai ujung dari layar. if (midx == (getmaxx() – 5)){ // karena tulisan hello panjangnya 5. midx = 50; // kembali ke posisi awal. } } // akhir tubuh perulangan. closegraph(); // kembali ke modus teks. return 0; /* program di terminasi tanpa ada kesalahan */ } Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 73 dari 77 Buku Informasi Versi: 01-09-2007
  • 74. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 BAB V SUMBER-SUMBER YANG DIPERLUKAN UNTUK PENCAPAIAN KOMPETENSI 5.1. Sumber Daya Manusia Pelatih Pelatih Anda dipilih karena dia telah berpengalaman. Peran Pelatih adalah untuk : a. Membantu Anda untuk merencanakan proses belajar. b. Membimbing Anda melalui tugas-tugas pelatihan yang dijelaskan dalam tahap belajar. c. Membantu Anda untuk memahami konsep dan praktik baru dan untuk menjawab pertanyaan Anda mengenai proses belajar Anda. d. Membantu Anda untuk menentukan dan mengakses sumber tambahan lain yang Anda perlukan untuk belajar Anda. e. Mengorganisir kegiatan belajar kelompok jika diperlukan. f. Merencanakan seorang ahli dari tempat kerja untuk membantu jika diperlukan. Penilai Penilai Anda melaksanakan program pelatihan terstruktur untuk penilaian di tempat kerja. Penilai akan : a. Melaksanakan penilaian apabila Anda telah siap dan merencanakan proses belajar dan penilaian selanjutnya dengan Anda. b. Menjelaskan kepada Anda mengenai bagian yang perlu untuk diperbaiki dan merundingkan rencana pelatihan selanjutnya dengan Anda. c. Mencatat pencapaian / perolehan Anda. Teman kerja/sesama peserta pelatihan Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 74 dari 77 Buku Informasi Versi: 01-09-2007
  • 75. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 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. Sumber-sumber Perpustakaan Pengertian sumber-sumber adalah material yang menjadi pendukung proses pembelajaran ketika peserta pelatihan sedang menggunakan Pedoman Belajar ini. Sumber-sumber tersebut dapat meliputi : 1. Buku referensi dari perusahan 2. Lembar kerja 3. Gambar 4. Contoh tugas kerja 5. Rekaman dalam bentuk kaset, video, film dan lain-lain. Ada beberapa sumber yang disebutkan dalam pedoman belajar ini untuk membantu peserta pelatihan mencapai unjuk kerja yang tercakup pada suatu unit kompetensi. Prinsip-prinsip dalam CBT mendorong kefleksibilitasan dari penggunaan sumber- sumber yang terbaik dalam suatu unit kompetensi tertentu, dengan mengijinkan peserta untuk menggunakan sumber-sumber alternative lain yang lebih baik atau jika ternyata sumber-sumber yang direkomendasikan dalam pedoman belajar ini tidak tersedia/tidak ada. Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 75 dari 77 Buku Informasi Versi: 01-09-2007
  • 76. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 5.3. Daftar Peralatan/Mesin dan Bahan 1. Judul/Nama Pelatihan : Algoritma dan Pemrograman Lanjut 2. Kode Program Pelatihan : TIK.PR02.002.01 UNIT DAFTAR DAFTAR NO KODE UNIT KETERANGAN KOMPETENSI PERALATAN BAHAN 1. Algoritma dan TIK.PR02.002.01 - Unit PC -Program - Pemrograman (Personal Borland C+ Lanjut Computer) + 3.1. dengan CD -Buku drive dan Hard informasi Disk. tentang - PC dengan Algoritma sistem operasi Pemrogram Windows XP an Lanjut, - Keyboard dan Pemrogram mouse an grafis. - RAM dengan ukuran yang sesuai dengan kebutuhan. - Program Borland C++ 3.1 Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 76 dari 77 Buku Informasi Versi: 01-09-2007
  • 77. Materi Pelatihan Berbasis Kompetensi Kode Modul Sektor Telematika Sub Sektor Programmer Komputer TIK.PR02.001.01 DAFTAR PUSTAKA • Website: • http://www.ilmukomputer.com • http://devnet.com • http://www.codeguru.com • http://id.wikipedia.org Judul Modul: Membuat Algoritma Pemrograman Lanjut Halaman: 77 dari 77 Buku Informasi Versi: 01-09-2007