Successfully reported this slideshow.
Upcoming SlideShare
×

# Modul junior gelombang i

5,077 views

Published on

Published in: Education
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

### Modul junior gelombang i

1. 1. DAFTAR ISI UNIT KOMPETENSI..............................................................Error! Bookmark not defined. ELEMEN KOMPETENSI........................................................Error! Bookmark not defined. GARIS-GARIS BESAR POKOK PENGAJARAN ........................Error! Bookmark not defined. DAFTAR ISI ...................................................................................................................... xxi BAB 1. MENJAGA ETIKA ............................................................................................1 1.1 Pendahuluan...........................................................................................................1 1.2 Ruang Lingkup Etika................................................................................................2 1.3 Perlindungan Privaci...............................................................................................2 1.3.1 Electronic Surveillance ................................................................................5 1. 3.2 Informasi Personal dalam Database............................................................5 1.3.3 Kode Dan Kebijakan Privasi .........................................................................6 1.3.4 Aspek Privasi Internasional .........................................................................7 1.3.5 Proteksi Intellectual Property......................................................................8 1.4 Profesi dan Profesionalisme...................................................................................9 1.4.1 Ciri khas profesi. .......................................................................................10 1.4.2 Tujuan Kode Etik Profesi............................................................................11 BAB 2. PEMROGRAMAN ALGORITMA DASAR .........................................................12 2.1 Pendahuluan.........................................................................................................12 2.2 Definisi Algoritma.................................................................................................13 2.3 Definisi Program...................................................................................................14 2.4 Variabel, Konstanta, Operator, dan Tipe Data.....................................................16 2.5 Pengulangan.........................................................................................................19 2.5.1 For..................................................................................................................21 2.5.2 While...............................................................................................................22 2.5.3 Repeat...........................................................................................................22 2.6 Percabangan.........................................................................................................23 2.6.1 Satu Kondisi ...............................................................................................25 2.6.2 Dua Kondisi................................................................................................25 2.6.3 If dalam if...................................................................................................27 2.6.4 Depend on (dua kondisi atau lebih) ..........................................................27 2.7 Array (Larik) ..........................................................................................................28 2.8 Sequential File ......................................................................................................31 BAB 3. PEMROGRAMAN ALGORITMA LANJUT.........................................................35
2. 2. Modul Pelatihan Junior Programming Page xxii 3.1 Array Multidimensi...............................................................................................35 3.2 Deklarasi Array Multidimensi...............................................................................35 3.3 Passing Array Multidimensi ke Fungsi..................................................................36 3.4 Cara mengisi matriks dan menampilkannya ........................................................36 3.5 Operasi Aritmatika pada Matrik Multidimensi ....................................................37 3.6 Prosedur ...............................................................................................................42 3.6.1 Deklarasi Prosedure.......................................................................................43 3.7 Fungsi....................................................................................................................45 3.8 Library Pemrograman Grafik................................................................................47 3.8.1 Konsep Dasar Grafik Komputer .....................................................................47 BAB 4. STRUKTUR DATA...........................................................................................51 4.1 Program dengan beberapa Tipe Data ..................................................................51 4.1.1 Penggunaan Record...................................................................................51 4.2 Pointer..................................................................................................................59 4.3 Pengurutan (Sorting)............................................................................................64 4.4 Link List.................................................................................................................71 4.5 Queue ...................................................................................................................78 4.5.1 Contoh Deklarasi Queue............................................................................78 4.5.2 Contoh Fungsi store...................................................................................79 4.5.3 Contoh Fungsi Retrieve .............................................................................79 4.5.4 Contoh Program queue.............................................................................79 4.6 Stack .....................................................................................................................81 4.6.1 Contoh Deklarasi stack..............................................................................81 4.6.2 Contoh Fungsi push().................................................................................81 4.6.3 Contoh Fungsi pop() ..................................................................................81 4.6.4 Contoh Program stack...............................................................................82 4.7 File ........................................................................................................................83 4.7.1 Variabel File...............................................................................................83 4.7.2 Membuka File............................................................................................84 BAB 5. MENULIS PROGRAM DASAR .........................................................................93 5.1 Alur Pembuatan Program.....................................................................................93 5.2 Pengenalan Bahasa JAVA .....................................................................................96 5.2.1 Sejarah Singkat ..........................................................................................96 5.2.2 Fitur Bahasa Java.......................................................................................98 5.2.2 Fase-fase Pemrograman Java....................................................................99 5.3 Lingkup Pemrograman Java................................................................................100
3. 3. Modul Pelatihan Junior Programming Page xxiii 5.3.1 Program pertama Java.............................................................................101 5.3.2 Menggunakan Text Editor .......................................................................101 5.4 Errors ..................................................................................................................104 5.4.1 Syntax Errors.................................................................................................104 5.4.2 Run-time Errors ............................................................................................104 BAB 6. DOKUMEN KODE PROGRAM.......................................................................105 6.1 Tentang Dokumentasi ........................................................................................105 6.2 Macam dokumentasi program..........................................................................105 6.2.1 Dokumentasi spesifikasi program ...........................................................106 6.2.2 Dokumentasi Teknis Program .................................................................106 6.2.3 Dokumentasi Penggunaan Program........................................................107 6.3 Tools ...................................................................................................................108 6.4 Membuat Dokumentasi Fungsi dan Prosedur pada Modul Program ................108 BAB 7 . MENGOPERASIKAN APLIKASI BASIS DATA...................................................113 7.1 Aplikasi Database pada Java...............................................................................113 7.2 Membuat Aplikasi Basis Data.............................................................................114 7.3 Membuat Aplikasi dan Modul Basis Data ..........................................................120 7.3.1 Membuat Database................................................................................120 7.3.2 Membuat New Project ............................................................................120 7.3.3 Membuat Koneksi MySQL .......................................................................121 7.3.4 Membuat Form Aplikasi ..........................................................................124 DAFTAR PUSTAKA..........................................................................................................128
4. 4. Modul Pelatihan Junior Programming 1 BAB 1. MENJAGA ETIKA 1.1 Pendahuluan Menurut Kamus Besar Bahasa Indonesia etika adalah: - Ilmu tentang apa yang baik dan yang buruk, tentang hak dan kewajiban moral, - Kumpulan asas atau nilai yang berkenaan dengan akhlak, - Nilai mengenai yang benar dan salah yang dianut masyarakat. Dari asal usul kata, Etika berasal dari bahasa Yunani “ethos” yang berarti adat istiadat atau kebiasaan yang baik. Perkembangan etika studi tentang kebiasaan manusia berdasarkan kesepakatan, menurut ruang dan waktu yang berbeda, yang menggambarkan perangai manusia dalam kehidupan pada umumnya. Etika merupakan suatu cabang filosofi yang berkaitan dengan apa saja yang dipertimbangkan baik dan salah. Ada beberapa definisi mengenai etika antara lain : - Kode moral dari suatu profesi tertentu - Standar penyelenggaraan suatu profesi tertentu - Persetujuan diantara manusia untuk melakukan yang benar dan menghindari yang salah. Salah satu yang harus dipahami adalah bahwa apa yang tidak etis tidak berarti illegal. Dalam lingkungan yang kompleks, definisi benar dan salah tidak selalu jelas. Juga perbedaan antara illegal dan tidak beretika tidak selalu jelas. Dengan semakin berkembangnya teknologi informasi telah menciptakan berbagai situasi etika yang baru. Misal isu sebuah perusahaan yang secara legal memonitor email pegawai merupakan hal yang kontroversial. Selain itu ada perbedaan antara etika di perusahaan dengan individu.
5. 5. Modul Pelatihan Junior Programming 2 1.2 Ruang Lingkup Etika Beberapa perusahaan dan organisasi profesi telah mengembangkan kode etik masing-masing. Kode etik merupakan sekumpulan prinsip yang harus diikuti sebagai petunjuk bagi karyawan perusahaan atau anggota profesi. Beragamnya penerapan teknologi informasi dan meningkatnya penggunaan teknologi telah menimbulkan berbagai variasi isu etika. Suatu usaha untuk mengatur isu tersebut kedalam suatu ruang lingkup dilakukan oleh R.O. Mason dan kawan-kawan, yang mengkategorikan isu etika menjadi empat jenis yaitu Privacy, Accuracy, Property, dan Accessibility. Tabel 1.1 Kategori isu etika Isu Privacy Koleksi, penyimpanan, diseminasi informasi individu Isu Accuracy Authenticity, fidelity, dan akurasi pengumpulan dan pengolahan informasi. Isu Property Kepemilikan dan nilai informasi (hak cipta intelektual) Isu Accessibility Hak untuk mengakses informasi dan pembayaran fee untuk akses informasi tersebut. 1.3 Perlindungan Privaci Secara umum, privasi adalah hak untuk sendiri dan hak untuk bebas terhadap gangguan orang yang tidak bertanggung jawab. Privasi informasi adalah hak untuk menentukan kapan, dan untuk apa diperluas terhadap informasi diri sendiri yang dapat dikomunikasikan dengan orang lain. Hak ini berlaku untuk individu, kelompok dan institusi. Ada 4 hal umum untuk identifikasi empat pernyataan privasi yaitu: Tabel 1.2 Indentifikasi pernyataan privasi 1 Solitude Pernyataan sendiri, keluar dari interferensi luar 2 Intimacy Pernyataan privasi seseorang yang ingin menikmati dari dunia luar 3 Anonimity Pernyataan bebas dari gangguan eksternal 4 Reserve Mampu untuk mengendalikan informasi mengenai diri sendiri
7. 7. Modul Pelatihan Junior Programming 4 Berdasar dua aturan tersebut terlihat mengapa dalam beberapa kasus menjadi sulit untuk menentukan dan memaksa regulasi privasi. Hak privasi dikenal sampai hari ini di seluruh Amerika Serikat dan oleh pemerintah Federal. Tabel 1.4 Representasi Privasi Legislasi Federal terhadap Privasi dan Teknologi Informasi Legislasi Pernyataan Freedom of Information Act, 1970 Mengijinkan individu untuk mengakses sebarang informasi mengenai diri sendiri yang disimpan oleh pemerintah federal. Privacy Act of 1974 Melarang pemerintah untuk mengumpulkan informasi secara rahasia. Informasi yang dikumpulkan harus dipergunakan hanya untuk keperluan tertentu. Informasi dapat digunakan untuk keperluan lainnya dengan ijin dari individu. Individu dapat mengakses dan memperbaiki informasi tersebut. Right to Financial Privacy Act of 1978 Jaminan keamanan data pada lembaga keuangan. Masyarakat harus diberi pengertian jika pemerintah akan mengakses data tersebut. Privacy protection Act of 1980 Memberikan proteksi privasi dalam bentuk komputerisasi dan dokumen lainnya. Cable Communication Act of 1984 Proteksi privasi di TV dan transmisi kabel. Electronics Communications Privacy Act of 1986 Melarang private citizens untuk mengakses komunikasi data tanpa otorisasi. Computer Security Act of 1987 Memerlukan keamanan informasi termasuk informasi individu. Computer Matching and Privacy Act of 1988 Regulasi untuk mencocokkan file komputer oleh pemerintah dan agen federal Video Privacy Protection Act of 1988 Proteksi privasi pada transmisi gambar Telephone Consumer Protection Act of 1992 Membatasi praktek telemarketer Consumer Internet Privacy Protection Act of 1997 Memerlukan prioritas yang tertulis sebelum suatu layanan komputer dapat memberikan informasi dari anggotanya Social Security Online Privacy Protection of 1997 Membatasi disclosure jumlah Social Security dan informasi yang berkaitan. Federal Internet Privacy Protection Act of 1997 Melarang agen federal terhadap disclosing data personil melalui internet. Communication Privacy and Consumer Empowernment Act of 1997 Proteksi hak privasi dalam perdagangan online. Data Privacy Act of 1997 Membatasi penggunaan secara personil informasi yang bisa diidentifikasi dan regulasi “spamming” Social Security Information Safeguards Act of 1997 Menghasilkan mekanisme keamanan secara online untuk data Social Security.
8. 8. Modul Pelatihan Junior Programming 5 1.3.1 Electronic Surveillance Menurut American Civil Liberties Union (ACLU). Memonitor pengguna komputer – electronic surveillance – merupakan sebuah problem utama. ACLU mengestimasi bahwa jutaan pengguna komputer dimonitor dan kebanyakan tanpa sepengetahuan pengguna tersebut. Kepegawaian telah melakukan pembatasan terhadap surveillance kepada pegawai. Meskipun beberapa hal yang berkaitan dengan legalitas masih diproses, hukum cenderung untuk mendukung hak pegawai untuk membaca surat elektronik dan dokumen elektronik lainnya. Surveillance juga berkaitan dengan privasi individu (misalkan melalui personal e-mail), perusahaan, pemerintahan maupun elemen kriminal. 1. 3.2 Informasi Personal dalam Database Informasi mengenai individu disimpan dalam beberapa database. Misal, pada saat anda meminta sambungan telpon baru anda diminta mengisi kuesioner sebanyak 2 halaman. Kuesioner tersebut kemudian dievaluasi dan disimpan dalam database. Ada beberapa lembaga yang akan menyimpan informasi semacam itu antara lain credit reporting agencies. Tempat lain yang menyimpan informasi personal antara lain : bank dan lembaga keuangan; TV Kabel, Telpon, perusahaan utilitas lainnya; kepegawaian; apartemen dan perusahaan sewa peralatan; rumah sakit; sekolah dan universitas; supermarket; penyelenggara retail dan mail-order house; instansi pemerintah (Biro Sensus, Layanan Pendapatan Daerah); perpustakaan dan perusahaan asuransi. Juga beberapa kuesioner yang diisi di internet (misal pada saat anda mencoba untuk memenangkan hadiah) biasanya akan tersimpan dalam database. Ada beberapa hal yang terkait dengan informasi yang tersimpan dalam lembaga penyimpan informasi tersebut.  Dalam situasi seperti apa data personal tersebut dapat diberikan?  Tahukah anda dimana data tersebut disimpan?  Apakah data tersebut akurat?
11. 11. Modul Pelatihan Junior Programming 8 di Inggris, hukum privasi negara mana yang mengontrol data dan kapan? Pertanyaan semacam ini akan menjadi semakin berkembang dan lebih kompleks. Organisasi kerjasama dan pengembangan ekonomi di Eropa telah memberikan sekumpulan petunjuk yang dikenal dengan baik untuk proteksi privasi individu pada era elektronik. Sebuah contoh prinsip yang berkaitan dengan koleksi data adalah sebagai berikut: Tabel 1.6 Prinsip-prinsip dalam koleksi data Collection Limitation Data sebaiknya diperoleh sesuai dengan hukum dan fair; beberapa data yang sangat sensitif sebaiknya tidak dikoleksi secara bersamaan. Data Quality Data sebaiknya relevan dengan tujuan, akurat, lengkap, dan terkini. Purpose Specification Tujuan penggunaan data sebaiknya diidentifikasi dan data sebaiknya dihapus jika data tersebut tidak mampu lagi memenuhi tujuan tersebut. Use Limitation Penggunaan data selain yang diperlukan dilarang, kecuali dengan persetujuan subyek data atau otoritas hukum. Security Safeguards Agensi sebaiknya membuat prosedur untuk membuat perlindungan terhadap kehilangan data, kerusakan data atau data yang sudah tidak berguna lagi. Openness Harus mampu untuk memberikan informasi mengenai koleksi, penyimpanan, dan penggunaan data personal. Individual Participation Subyek data mempunyai hak untuk mengakses dan mengubah data personal. 1.3.5 Proteksi Intellectual Property Isu privasi menerima banyak publikasi sebab privasi mempengaruhi kebanyakan sebarang individu. Sebaliknya isu proteksi intellectual property jarang didiskusikan karena hanya mempengaruhi beberapa individu dan perusahaan saja. Intellectual property merupakan intangible property yang diciptakan oleh individu maupun perusahaan yang diproteksi melalui hukum copyright, trade secret, dan paten. Copyright merupakan sebuah jaminan status yang memberikan pencipta karya intellektual dengan kepemilikan selama 28 tahun (melalui pembaruan ulang memungkinkan kepemilikan untuk periode yang lebih lama). Pemilik akan mendapat fee dari seseorang yang ingin mengcopy karyanya. U.S.Federal Computer Software
14. 14. Modul Pelatihan Junior Programming 11 1.4.2 Tujuan Kode Etik Profesi Prinsip-prinsip umum yang dirumuskan dalam suatu profesi akan berbeda satu dengan yang lainnya. Hal ini disebabkan perbedaan adat, kebiasaan, kebudayaan, dan peranan tenaga ahli profesi yang didefinisikan dalam suatu negara tidak sama. Adapun yang menjadi tujuan pokok dari rumusan etika yang dituangkan dalam kode etik (Code of conduct) profesi adalah: 1. Standar-standar etika menjelaskan dan menetapkan tanggung jawab terhadap klien, institusi, dan masyarakat pada umumnya. 2. Standar-standar etika membantu tenaga ahli profesi dalam menentukan apa yang harus mereka perbuat kalau mereka menghadapi dilema-dilema etika dalam pekerjaan. 3. Standar-standar etika membiarkan profesi menjaga reputasi atau nama dan fungsi-fungsi profesi dalam masyarakat melawan kelakuan-kelakuan yang jahat dari anggota-anggota tertentu. 4. Standar-standar etika mencerminkan / membayangkan pengharapan moral- moral dari komunitas, dengan demikian standar-standar etika menjamin bahwa para anggota profesi akan menaati kitab UU etika (kode etik) profesi dalam pelayanannya. 5. Standar-standar etika merupakan dasar untuk menjaga kelakuan dan integritas atau kejujuran dari tenaga ahli profesi. 6. Perlu diketahui bahwa kode etik profesi adalah tidak sama dengan hukum (atau undang-undang). Seorang ahli profesi yang melanggar kode etik profesi akan menerima sangsi atau denda dari induk organisasi profesinya.
15. 15. Modul Pelatihan Junior Programming 12 BAB 2. PEMROGRAMAN ALGORITMA DASAR 2.1 Pendahuluan Program/Pemrograman adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program). Tabel 2.1 Paradigma Pemrograman 1 Pemrograman Prosedural  Berdasarkan urutan-urutan, sekuensial  Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan  Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah. 2 Pemrograman Fungsional  Berdasarkan teori fungsi matematika  Fungsi merupakan dasar utama program. 3 Pemrograman Terstruktur  Secara berurutan dan terstrukrtur.  Program dapat dibagai-bagi menjadi prosedur dan fungsi.  Contoh: PASCAL dan C 4 Pemrograman Modular  Pemrograman ini membentuk banyak modul.  Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri  Sebuah program dapat merupakan kumpulan modul- modul.  Contoh: MODULA-2 atau ADA 5 Pemrograman Berorientasi Obyek  Pemrograman berdasarkan prinsip obyek dimana obyek memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi  Contoh: C++, Object Pascal, dan Java. 6 Pemrograman Berorientasi Fungsi  Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.  Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain. 7 Pemrograman Deklaratif  Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.  Contoh: PROLOG
18. 18. Modul Pelatihan Junior Programming 15 5. Uji hasil Program yang baik memiliki standar penilaian: 1. Standar Teknik Pemecahan Masalah a. Teknik Top-Down b. Teknik Bottom-Up 2. Standar Penyusunan Program a. Kebenaran logika dan penulisan b. Waktu minimum untuk penulisan program c. Kecepatan maksimum eksekusi program d. Ekspresi penggunaan memori e. Kemudahan merawat & mengembangkan program f. User friendly g. Portability h. Pemrograman Modular 3. Standar Perawatan Program a. Dokumentasi b. Penulisan Instruksi 4. Standar Prosedur Tahap-tahap Pemrograman : I. Fase Problem Solving II. Fase Implementation
19. 19. Modul Pelatihan Junior Programming 16 Fase I Fase II Gambar 2.2 Tahapan Pemrograman 2.4 Variabel, Konstanta, Operator, dan Tipe Data a. Variabel Variabel adalah sebuah identifier dimana nilainya dapat diubah-ubah dalam badan program. Variabel yang akan digunakan dalam program harus didefinisikan dulu dalam bagian deklarasi bersama tipe data yang akan mengisinya. Sintaksnya: Var nama_variabel : tipe_variabel; Ketentuan untuk penamaan variabel : 1. Nama identifier maksimal 63 karakter, tidak diperkenankan adanya blank (spasi). 2. Dapat terdiri atas huruf dan angka atau gabungan keduanya serta tanda garis bawah ('_'). Namun harus didahului oleh huruf. 3. Tidak membedakan antara huruf besar dan huruf kecil. 4. Bukan Reserved Word Identifier. 5. Tidak boleh mengandung karakter yang dipakai untuk operator, seperti : (,),+, -, *, /, <, >, : , ; dan lain-lain Analisa Problem Perancangan Algoritma Test Pembuatan Program Test Dokumentasi Dipakai
20. 20. Modul Pelatihan Junior Programming 17 b. Konstanta Adalah sebuah identifier yang memiliki nilai yang tetap (tidak dapat diubah- ubah) dalam satu program. Constanta harus didefinisikan terlebih dulu dalam bagian deklarasi. Penulisan untuk nilai konstanta yang bertipe teks atau string diapit dengan tanda petik tunggal (‘). Contoh : Const Gajiperjam = 5000; Maksimal = 100; c. Operator Dalam melaksanakan proses pengolahan data, Delphi menyediakan berbagai operator, yaitu : - Operator assignment ( :=) berfungsi untuk memasukkan suatu nilai data ke dalam sebuah variabel, dengan bentuk penulisan : Nama variabel := ekspresi; Contoh : Harga := 500; Jumlah:=20; Total:= harga * jumlah; 1. Operator Aritmatika Tabel 2.1 Operator Aritmatika Operator Fungsi Tipe yang diproses Tipe hasil proses * Perkalian Integer,real Integer,real / Pembagian real Integer,real Integer,real + Penjumlahan Integer,real Integer,real - Pengurangan Integer,real Integer,real Div Pembagian integer Integer Integer Mod Sisa hasil bagi Integer Integer 2. Operator Relasi Operator relasi, berfungsi untuk membandingkan suatu nilai (ekspresi) dengan nilai (ekspresi) lain yang akan menghasilkan suatu nilai logika (boolean) yaitu true dan false. Kedua data yang dibandingkan harus memiliki tipe data yang sama. Contoh : =, >,<,>=,<=,<> (tidak sama dengan). 3. Operator Logika Operator logika, dibagi dua:
21. 21. Modul Pelatihan Junior Programming 18 Tabel 2.3 Operator Bit Operator Keterangan Tipe Data Tipe Hasil And Dan Integer Boolean Or Atau Integer Boolean Not Tidak Integer Boolean Xor Exclusive or Integer Boolean Shl Geser ke kiri Integer Boolean Shr Geser ke kanan Integer Boolean Tabel 2.3 Operator Boolean Operator Keterangan Tipe Data Tipe Hasil And Dan Boolean Boolean Or Atau Boolean Boolean Not Tidak Boolean Boolean Xor Exclusive or Boolean Boolean *Operator boolean selalu memberikan hasil true atau false, sedangkan operator bit berhubungan dengan pergeseran atau pembandingan pada level bit (pada nilai integer). d. Tipe data Tipe data adalah pengelompokan data berdasarkan isi dan sifatnya. Dalam logika kita tipe data adalah jenis dari sesuatu yang dapat dimasukkan ke dalam kotak kosong yang hanya khusus dibuat untuk jenis benda dengan jenis tertentu. Tipe data yang biasa digunakan dalam sebuah algoritma dan pemrograman adalah: 1. String Biasa digunakan untuk masukan data string ( String merupakan gabungan beberapa character ). 2. Integer Merupakan bilangan asli ( 1, 2, 3, 4, ...). 3. Real Bilangan bulat (berupa pecahan dan integer). 4. Boolean Digunakan untuk data logika yang berisi true atau false. 5. Character Digunakan untuk menyatakan karakter satu huruf. 6. Byte Besar dari type ini hanya 8 bit.
22. 22. Modul Pelatihan Junior Programming 19 7. Word Besar bilangan ini 16 bit. 8. Date and time Type waktu dan tanggal yang disediakan Delphi 9. Array Variabel tunggal yang digunakan untuk menyimpan sekumpulan data yang sejenis. Contoh : Var x : array[1..8] of longint; Tabel 2.4 Ragam Tipe Data Name Description Size* Range* char Character or small integer. 1byte signed: -128 to 127 unsigned: 0 to 255 short int (short) Short Integer. 2bytes signed: -32768 to 32767 unsigned: 0 to 65535 int Integer. 4bytes signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 long int (long) Long integer. 4bytes signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 bool Boolean value. It can take one of two values: true or false. 1byte true or false float Floating point number. 4bytes 3.4e +/- 38 (7 digits) double Double precision floating point number. 8bytes 1.7e +/- 308 (15 digits) long double Long double precision floating point number. 8bytes 1.7e +/- 308 (15 digits) wchar_t Wide character. 2bytes 1 wide character 2.5 Pengulangan Salah satu kemampuan komputer yang dapat dimanfaatkan adalah mengulang suatu instruksi, bahkan aksi, secara berulang-ulang dengan peformansi yang sama. Berbeda dengan manusia yang cenderung melakukan kesalahan jika melakukan hal yang sama (karena lelah atau bosan), komputer akan melakukan pengulangan dengan setia sesuai dengan perintah yang diberikan. Pengulangan terdiri dari dua bagian yaitu: a. kondisi yang mengakibatkan pengulangan suatu saat berhenti, yang dinyatakan oleh sebuah ekspresi logik baik secara eksplisit maupun implisit, b. badan pengulangan, yaitu aksi yang harus diulang selama kondisi yang ditentukan untuk pengulangan masih dipenuhi.
24. 24. Modul Pelatihan Junior Programming 21 pengulangan yang menambahkan bilangan 1 sampai sepuluh dengan menggunakan pengulangan yang dijalankan 10 kali, baru kemudian hasilnya dibagi dengan banyaknya bilangan, misalkan membuat sebuah variabel yang menyimpan nilai awal 0 kemudian setiap dijalankan blok pengulangan dirinya ditambahkan dengan nilai berapa kali pengulangan telah dijalankan, secara logika pada akhir pengulangan variabel ini akan bernilai 1 + 2 + 3 + ..... + 10 baru kemudian dicari rata-ratanya for i=1 to 10 do hasil <- hasil + i {end for} hasil <- has il / 10 2.5.1 For Pengulangan menggunakan for biasanya digunakan untuk pengulangan yang sudah jelas perlu dilakukan berapa kali, dengan kata lain jumlah pengulangan yang dibutuhkan sudah diketahui oleh pembuat program. Deklarasi penggunaan pengulangan for adalah sebagai berikut: Tabel 2.6 Deklarasi For untuk pengulangan Bahasa Algoritmik Bahasa Pascal Bahasa C {pengulangan for positif} for nama_variabel <- nilai_awal to nilai_berhenti do {proses} ............. {end for} /* pengulangan for positif */ for nama_variabel:=nilai_awal to nilai_berhenti do begin // proses .................. end; /* pengulangan for positif */ for(nama_variabel=nilai_ awal;nama_variabel operator_relasi;nama_var iabel++){ // proses ................... } {pengulangan for positif} for i <- 1 to 10 do {proses} .............. {end for} /* pengulangan for positif */ for i:=1 to 10 do begin // proses ................. end; /* pengulangan for positif */ for(i=1; i <= 10; i++){ //proses ................. } {pengulangan for negatif} for nama_variabel <- nilai_awal downto nilai_berhenti do {proses} ............... {end for} /* pengulangan for negatif */ for nama_variabel:=nilai_awal downto nilai_berhenti do begin // proses ................. end; /* pengulangan for negatif */ for(nama_variabel=nilai_ awal; nama_variabel operator nilai_berhenti; nama_variabel --){ relasi // proses ................. } {pengulangan for negatif} for i <- 10 downto 1 /* pengulangan for negatif */ for i:=10 downto 1 do begin // proses /* pengulangan for negatif */ for(i=10; i >= 1; i--){
25. 25. Modul Pelatihan Junior Programming 22 do {proses} ............... {end for} ................. end; //proses ................. } 2.5.2 While Pengulangan while biasa digunakan jika jumlah pengulangan tidak diketahui. Pengulangan while akan melakukan pengulangan selama kondisi pengulangan terpenuhi. Deklarasi pengulangan while adalah sebagai berikut: Tabel 2.7 Deklarasi While untuk pengulangan Bahasa Algoritmik Bahasa Pascal Bahasa C {inisialisasi} ........... while kondisi_pengulangan do {proses} . ......... {iterasi} {end while} // inisialisasi ................. while kondisi_pengulangan do begin // proses ............. // iterasi end; // inisialisasi ................. while(kondisi_pengulanga n){ // proses ............. // iterasi } i : integer {inisialisasi} i <- 1 while i ≤ 9 do {proses} ............. {iterasi} i <- i + 1 {end while} var i : integer; begin // inisialisasi i := 1; while i <= 9 do begin // proses ............. // iterasi i := i + 1; end; end. int i; // inisialisasi i = 1; while(i <= 9){ // proses ............. // iterasi i = i + 1; } 2.5.3 Repeat Pengulangan repeat biasa digunakan jika jumlah pengulangan tidak diketahui, namun berbeda dengan while karena kondisi pengulangan ada di bagian bawah blok pengulangan. Pengulangan repeat minimal selalu dilakukan sekali karena kondisi pengulangan ada di bagian bawah, berbeda dengan pengulangan while yang saat pertama kali masuk blok pengulangan dilakukan pengecekan kondisi pengulangan. Hal tersebut dapat dianalogikan dengan pada repeat letak dari "pos satpam" yang
27. 27. Modul Pelatihan Junior Programming 24 aksi tidak akan dijalankan. Percabangan if biasa digunakan untuk mengerjakan aksi yang memiliki syarat tertentu untuk menjalankannya. Tabel 2.8 Deklarasi If untuk percabangan Logika Pemikiran Manusia Bahasa Algoritmik Misal ada sebuah rumah yang hanya mau menerima kotak yang berisi nilai A, B, dan C untuk menyimpulkan bahwa nilai itu merupakan nilai lulus. nilai : char input(nilai) if nilai = 'A' or nilai = 'B' or nilai = 'C' then output("lulus") {end if} Percabangan merupakan salah satu inti dari analisis kasus pada pembuatan algoritma, sebuah kasus harus dipikirkan penyelesaiannya dengan pemikiran ada sebuah syarat dan proses atau aksi yang harus dikerjakan jika syarat tidak terpenuhi dan jika syarat terpenuhi, misalkan membuat sebuah penyelesaian kasus menyatakan apakah sebuah bilangan ganjil atau genap, maka dapat dibuat sebuah penyelesaian sebagai berikut: Tabel 2.9 Deklarasi If dalam bahasa algoritmik Bahasa Manusia Bahasa Algoritmik jika sebuah bilangan dibagi dengan 2 (dua) masih sisa 1 (satu) maka merupakan bilangan ganjil if (bilangan mod 2) = 1 then output("bilangan ganjil") {end if} jika sebuah bilangan dibagi dengan 2 (dua) sisanya adalah 0 (nol) maka merupakan bilangan genap if (bilangan mod 2) = 0 then output("bilangan genap") {end if} Jika sebuah bilangan dibagi dengan 2 (dua) masih sisa 1 (satu) maka merupakan bilangan ganjil, tapi jika syarat tidak dipenuhi maka merupakan bilangan genap if (bilangan mod 2) = 1 then output("bilangan ganjil") {end if} else output("bilangan genap") {end else} Jika Nilai A atau B atau C maka boleh masuk rumah
28. 28. Modul Pelatihan Junior Programming 25 2.6.1 Satu Kondisi Blok program if untuk satu kondisi berarti hanya ada sebuah blok aksi yang akan dikerjakan jika syarat kondisi terpenuhi. Deklarasi percabangan if satu kondisi adalah sebagai berikut: Tabel 2.10 Deklarasi If untuk kondisi Bahasa Algoritmik Bahasa Pascal Bahasa C if kondisi_percabangan then {proses} ............ {end if} if kondisi_percabangan then begin { proses } ............. end; if(kondisi_percabangan){ // proses ............. } ketemu : boolean ketemu <- true if ketemu = true then {proses} output("nilai variabel ketemu : ", ketemu) {end if} var ketemu : boolean; begin ketemu := true; if ketemu = true then begin {proses} write('nilai variabel ketemu : truen'); end; end. int ketemu = 1; if(ketemu == 1){ // proses printf("nilai variabel ketemu : truen"); } Deklarasi percabangan berikut : if ketemu = true then {proses} output("nilai variabel ketemu : ", ketemu) {end if} berarti ketika eksekusi program sampai pada blok percabangan akan dilakukan pengecekan nilai variabel ketemu, jika variabel ketemu bernilai true maka aksi menuliskan nilai variabel ketemu ke layar akan dikerjakan, tapi jika nilai ketemu adalah false maka aksi menuliskan nilai variabel ketemu ke layar tidak dikerjakan. 2.6.2 Dua Kondisi
29. 29. Modul Pelatihan Junior Programming 26 Blok program if-else dipergunakan untuk menyatakan percabangan dua kondisi dimana ada dua blok aksi yang dipilih untuk dikerjakan jika syarat kondisi aksi terpenuhi. Saat pembacaan program sampai pada blok if- else maka akan dilakukan pengecekan terhadap syarat kondisi percabangan yang ada pada deklarasi if, jika syarat dipenuhi maka yang akan dijalankan adalah aksi yang ada di dalam blok if, tapi jika syarat tidak dipenuhi maka aksi yang dikerjakan adalah yang ada di dalam blok else. Deklarasi percabangan if-else adalah sebagai berikut : Tabel 2.11 Deklarasi Percabangan If-else Bahasa Algoritmik Bahasa Pascal Bahasa C if kondisi_percabangan then {proses} ............ {end if} else {proses} ............ {end else} if kondisi_percabangan then begin { proses } ............. end else{ begin { proses } ............. end; if(kondisi_percabangan){ // proses ............. } else{ // proses ............. } ketemu : boolean ketemu <- false if ketemu = true then {proses} output("(if) nilai variabel ketemu : ", ketemu) {end if} else {proses} output("(else) nilai variabel ketemu : ", ketemu) {end else} var ketemu : boolean; begin ketemu = false; if ketemu = true then begin { proses } write('(if) nilai variabel ketemu : true'); end else begin { proses } write('(else) nilai variabel ketemu : false'); end; end. int ketemu; ketemu = 0; if(ketemu == 1){ // proses printf("(if) nilai variabel ketemu : truen"); } else{ // proses printf("(else) nilai variabel ketemu : falsen"); }
30. 30. Modul Pelatihan Junior Programming 27 2.6.3 If dalam if Sebuah program mengijinkan blok percabangan if di dalam blok percabangan lainnya, dan tidak membatasi jenis percabangan apa yang boleh berada di dalam percabangan lainnya misalnya dalam bahasa algoritmik berikut: if kondisi_percabangan_1 then { proses jika kondisi percabangan 1 terpenuhi } if kondisi_percabangan_1_1 then { proses jika kondisi percabangan 1_1 terpenuhi } {end if} if kondisi_percabangan_1_2 then { proses jika kondisi percabangan 1_1 terpenuhi atau tidak terpenuhi dan kondisi percabangan 1_2 terpenuhi } {end if} {end if} else { proses jika kondisi percabangan 1 tidak terpenuhi } {end else} 2.6.4 Depend on (dua kondisi atau lebih) Percabangan depend on biasa digunakan untuk dua kondisi atau lebih bergantung pada nilai sebuah variabel, syarat kondisi pada percabangan depend on biasanya hanya sebuah nilai. Deklarasi percabangan depend on adalah sebagai berikut: Tabel 2.12 Deklarasi Depend on Bahasa Algoritmik Bahasa Pascal Bahasa C depend on (nama_variabel) nilai_variabel_1 : aksi_1 break nilai_variabel_2 : aksi_2 break ................... nilai_variabel_n : aksi_n case nama_variabel of nilai_variabel_1 : begin aksi_1 end; nilai_variabel_2 : begin aksi_2 end; ................. nilai_variabel_n : begin aksi_n switch(nama_variabel){ case nilai_variabel_1 : aksi_1 break; case nilai_variabel_2 : aksi_2 break; ................. case nilai_variabel_n :
32. 32. Modul Pelatihan Junior Programming 29 indeks tersebut) . Array biasanya disebut juga sebagai tabel, vektor atau larik. Nama suatu array diasosiasikan dengan banyak nilai elemennya yang disimpan dalam nama tersebut. Struktur data ini dipakai untuk merepresentasikan sekumpulan informasi yang bertype sama, dan disimpan dengan urutan yang sesuai dengan definisi indeks secara kontigu dalam memori komputer . Karena itu indeks harus suatu type yang mempunyai keterurutan (ada suksesor dan predesesor), misalnya type integer, karakter. Jika indeksnya adalah integer, maka keterurutan indeks sesuai dengan urutan integer (suksesor adalah plus satu, predesesor adalah minus satu) Jika indeksnya ditentukan sesuai dengan enumerasi (misalnya bertype pada karakter), maka keterurutan indeks ditentukan sesuai dengan urutan enumerasi. Contoh deklarasi Array adalah: KAMUS TabNamaHari: array [1..7] of string TabJumlahHari : array [1..12] of integer type Point : <x:integer, y:integer > type Indeks : integer [1..10] TabTitikSurvey : array [Indeks] of Point TabFREK : array ['A'..'Z'] of integer Domain :  Domain array sesuai dengan pendefinisian indeks  Domain isi array sesuai dengan jenis array Konstanta :  Konstanta untuk seluruh array tidak terdefinisi,  Konstanta hanya terdefinisi jika indeks dari array terdefinisi Cara mengacu sebuah elemen: melalui indeks TabNamaHarii, jika i terdefinisi TabNamaHari7 TabJumlahHari3 Contoh Pemakaian Array Kasus-1 : NAMA HARI
33. 33. Modul Pelatihan Junior Programming 30 Nama hari dalam minggu akan direpresentasi sebagai array sebagai berikut, dan harus dituliskan sebuah algoritma yang membaca hari ke berapa [1..7], kemudian menuliskan nama harinya. Contoh: Input : 1 Output “Senin” Input : 6 Output “Sabtu” Program NamaHari { Mengisi TabelNamaHari yang akan memungkinkan untuk menuliskan nama hari : tabulasi eksplisit nama hari berdasarkan indeks HariKe... } Kamus : TabelNamaHari : array [1..7] of string procedure IsiTabHari { mengisi tabel nama hari } HariKe : integer [1..7] {nomor dari hari} Algoritma : IsiTabHari { Contoh pemanfaatan setelah Tabel TabNamaHari terdefinisi isinya } Input (HariKe) Output ( TabelNamaHariHariKe) procedure IsiTabHari { mengisi tabel nama hari } { I.S : TabNamaHari tak terdefinisi } { F.S. : TabNamaHari siap dipakai, semua elemennya [1..7] sudah diisi } Kamus lokal : Algoritma : TabelNamaHari 1 ← “Senin” TabelNamaHari 2 ← “Selasa” TabelNamaHari 3 ← “Rabu” TabelNamaHari 4 ← “Kamis” TabelNamaHari 5 ← “Jumat” TabelNamaHari 6 ← “Sabtu” TabelNamaHari 7 ← “Minggu” Kasus-2 : TABEL KATA Didefinisikan bahwa kata adalah sebuah type yang menyimpan kata dan panjang katanya. Panjang maksimum sebuah kata adalah 50. Maka dibuat kamus sebagai berikut : KAMUS constant MaxKata : integer = 50 type Kata : <TabKata: array [1..MaxKata] of character {definisi kata} Length : integer > {panjang kata }
34. 34. Modul Pelatihan Junior Programming 31 Berikut ini adalah prosedur untuk membaca sebuah kata dari keyboard, dan menuliskan kata yang dibaca serta panjangnya ke layar dengan menggunakan kamus umum di atas: Procedure BacaTulisKata {I.S. sembarang; F.S : sebuah kata dibaca dan dituliskan kembali di layar. Jika karakter yang diketikkan melebihi panjang kata maksimum, pembacaan dihentikan dan pada akhir proses dituliskan pesan. Jika program terus menerus membaca tanpa menghentikan pembacaan ketika ukuran array dilampaui, program akan “abort”. Maka jika pengguna mengetikkan sejumlah karakter yang melebihi kapasitas pendefinisian tabel TabKata, pembacaan dihentikan. } Kamus lokal : K : Kata cc : character i : integer Algoritma : { Baca kata huruf demi huruf, pembacaan diakhiri dengan huruf „@‟} { skema pemrosesan sekuensial dengan mark, dengan kasus kosong } input (cc ) {First-Elmt} K.Length ← 0 {Inisialisasi, harus di sini spy kata “kosong” terdefinisi} if (cc ≠ „@‟)then output (“tidak ada kata yang dibaca”) {Proses-Kasus-Kosong} else repeat K.Length ← K.Length + 1 K.TabKatai ← cc {Proses-Current-Elmt } input (cc ) {Next-Elmt } until (cc = „@‟ or K.Length = Maxkata) {Terminasi } depend on TabKatai : cc ≠ „@‟ : output (“Pembacaan kata dihentikan”) cc = „@‟ : output (“Kata yang dibaca adalah : “) { Penulisan kata } i traversal [1..K.Length] output (K.TabKatai) output (“Panjang kata : “, K.Length) 2.8 Sequential File Sequential file (Arsip sekuensial) adalah sekumpulan rekaman yang disimpan dalam media penyimpanan sekunder komputer, yang dapat diakses secara sekuensial mulai dari rekaman pertama sampai dengan rekaman yang terakhir, rekaman per rekaman secara searah. Rekaman terakhir adalah rekaman fiktif, yang menandai akhir dari arsip. Pada beberapa implementasi, rekaman fiktif ini disebut sebagai EOF (End Of File). Arsip sekuensial berasal dari hasil perekaman (penulisan) yang juga dilakukan rekaman per rekaman. Setiap rekaman boleh berisi type dasar ataupun type terstruktur yang telah didefinisikan, setiap rekaman strukturnya sama. Elemen dari rekaman disebut sebagai
35. 35. Modul Pelatihan Junior Programming 32 "field", ada field (atau juga sekumpulan field) rekaman yang disebut sebagai "key" karena kekhususannya dalam proses. Jika key dari setiap rekaman tidak ada yang sama (unik), maka key menjadi identitas rekaman, dan disebut "primary key". Setiap rekaman dapat diakses dan dikonsultasi (dibaca) menurut urutannya dengan pemanggilan primitif akses yang tersedia. Perekaman dapat dilakukan melalui primitif penulisan. Perhatikan bahwa suatu arsip sekuensial hanya dapat disiapkan hanya pada salah satu modus operasi: diakses/dibaca, atau ditulis. Dalam definisi arsip sekuensial, tidak pernah sebuah arsip diproses untuk kedua modus: dibaca dan sekaligus ditulis. Primitif-primitif tersebut, akan didefinisikan kemudian. Cara Pendefinisian: type rekaman : <.........> sebuah type terdefinisi untuk setiap rekaman NamaArsip : SEQFILE of (*) <nama_rek>: rekaman ( 1) <mark> Dengan catatan bahwa (*) mungkin kosong, 1 rekaman atau lebih. Domain setiap rekaman : sesuai dengan domain masing-masing rekaman Konstanta : sebuah rekaman Primitif akses untuk arsip sekuensial: procedure ASSIGN (Input NamaArsip, NamaFisik) { Arsip sekuensial yang namamnya dikenal di dalam program sebagai NamaArsip, secara fisik diberi nama NamaFisik I.S. : sembarang F.S : Arsip dengan NamaArsip pada program siap dipakai } Catatan: Pada beberapa pemroses bahasa, primitif ASSIGN diberikan dalam teks algoritma, dan dalam beberapa pemroses bahasa pemrograman yang lain diberikan di luar program (pada Job Control Language). Pada teks algoritma di buku ini, perintah ASSIGN tidak diberikan di dalam teks algoritma. MARK Rekaman Terakhir Rekaman Kedua Rekaman Pertama Urutan Akses (satu per satu)
37. 37. Modul Pelatihan Junior Programming 34 WRITE(ArsipMhs, <7473002,'Davy Rindt',96>) { konstanta } WRITE(ArsipMhs, Rek1) { Rek1 bertype rekaman } Cara mengisi akhir rekaman : WRITE (ArsipMhs, <9999999,'',0>) {Mark} Pemrosesan sebuah arsip sekuensial Jika setiap rekaman harus diproses dengan cara yang sama, pemrosesan arsip sekuensial dapat dilakukan dengan memakai skema pemrosesan sekuensial dengan mark. Contoh : Dibaca sebuah arsip sekuensial bernama type rekaman : < NIM : integer, ,nilai:integer [0..100] > ArsipMhs: SEQFILE of (*) RekMhs : rekaman (1) <9999999, 99> Analisis : pemrosesan sekuensial dari elemen arsip sekuensial Model tanpa MARK, jika i adalah deret yang diproses, i bernilai 1,2,3..N EOP adalah NIM=9999999 First_Elmt : OPEN(ArsipMhs, RekMhs ) Next_Elmt : READ(ArsipMhs, RekMhs) Proses : membaca arsip sambil menghitung nilai rata-rata mahasiswa Program NILAIRATA_RATA {model proses sekuensial dengan mark, dengan penanganan kasus kosong}: Kamus: type rekaman : < NIM : integer, nilai:integer [0..100] > ArsipMhs : SEQFILE of (*) RekMhs : rekaman { setiap mahasiswa punya 1 rekaman } (1) <9999999, 99> SumNil : integer { jumlah nilai} JumMhs: integer { jumlah mahasiswa } Algoritma : OPEN(ArsipMhs, RekMhs) {First_Elmt} if (RekMhs.NIM =9999999) then output ('Arsip kosong') else SumNil ← 0 ; JumMhs ← 0 { Inisialisasi } repeat SumNil ← Sumnil + RekMhs.nilai; JumMhs ← JumMhs+1 {Proses} READ(ArsipMhs,RekMhs) {Next_Elmt} until (RekMhs.NIM=9999999) {EOP} Output (Sum/JumMhs) {Terminasi} CLOSE (ArsipMhs)
38. 38. Modul Pelatihan Junior Programming 35 BAB 3. PEMROGRAMAN ALGORITMA LANJUT 3.1 Array Multidimensi Sering kali digambarkan/dianalogikan sebagai sebuah matriks. Jika array berdimensi satu hanya terdiri dari 1 baris dan banyak kolom, array berdimensi dua terdiri dari banyak baris dan banyak kolom yang bertipe sama. Contoh struktur matriks adalah: Contoh bentuk matriks dengan 3 baris 4 kolom: Index 0 1 2 3 0 5 20 1 11 1 4 7 67 9 2 9 0 45 3 3.2 Deklarasi Array Multidimensi tipe_data nama_var_array[batas_baris][batas_kolom]; Contoh: int matriks[3][4]; int matriks2[3][4] = { {5,20,1,11}, {4,7,67,-9}, {9,0,45,3} }; #include <stdio.h> #include <conio.h> int main () { int x(3) (3) = ((1,2,3), (4,5,6), (7,8,9)), b,k; printf(“BENTUK BIASAn”); for (b=0; b<3; k++) for (k=0; k<3; k++) printf(“x(%d) - %dn”,b,k,x(b) (k));
39. 39. Modul Pelatihan Junior Programming 36 printf (“nnBENTUK MATRIKSn”); for (b=0; b<3; b++) { for (k=0; k<3; k++) { printf(“%d “,x(b) (k)); } printf(“n”); } getch(); } 3.3 Passing Array Multidimensi ke Fungsi Jika array digunakan sebagai parameter dalam suatu fungsi, maka passing parameter adalah sebagai berikut: int A[][3] atau int (*A)[3] Contoh: #include <conio.h> #include <iostream.h> void cetak_array(int xi, int xj, int A() (3)) { cout << “Arr[“ <<xi <<”) (“<<xj <<”)= “<< A[xi] {xj]<< “n”; } int main() { int Arr() (3) = ((1,2,3), (4,5,6)); cetak_arry (1,2,Arr); getch(); } 3.4 Cara mengisi matriks dan menampilkannya Pengisian matrik sama dengan proses pengisian array satu dimensi, yang berbeda adalah cara penentuan indeks, yaitu menggunakan nested looping. Untuk pengisian matrik dapat digunakan fungsi berikut: Untuk proses menampilkan matrik dapat digunakan fungsi berikut: void isi_matriks(int MatX[][MATSIZE],int bar, int kol) { int i,j; for(i=0;i<bar;i++) for(j=0;j<kol;j++){ cout << "Elemen Matriks [“<<i<<”,”<<j; cin >> MatX[i][j]); } }
40. 40. Modul Pelatihan Junior Programming 37 3.5 Operasi Aritmatika pada Matrik Multidimensi Deklarasi Array 1 Dimensi tipe nama_var[max_data]; Contoh: int a[5]; float x[100]; char nama[25]; ... Cara mengakses data bertipe array nama_variabel[alamat] Misal : Array a 27 23 35 46 87  data yang tersimpan di array 0 1 2 3 4  alamat array (dimulai dari 0) a[0] = 27 a[1] = 23 . . a[4] = 87 Menginputkan data ke array Data dapat diinputkan untuk setiap emelen array. Tetapi jika jumlah elemen array banyak, tentunya cara ini tidak efisien. Oleh karena itu dapat digunakan bantuan instruksi perulangan untuk input datanya. Contoh 1: #include <iostream.h> #include <conio.h> void cetak_matriks(int MatX[][MATSIZE],int bar,int kol) { int i,j; for(i=0;i<bar;i++){ for(j=0;j<kol;j++) cout << MatX[i][j]); cout << endl; } }
41. 41. Modul Pelatihan Junior Programming 38 main() { int a[5]; cout<<"Data ke 0 = ";cin>>a[0]; cout<<"Data ke 1 = ";cin>>a[1]; cout<<"Data ke 2 = ";cin>>a[2]; cout<<"Data ke 3 = ";cin>>a[3]; cout<<"Data ke 4 = ";cin>>a[4]; int jumlah; jumlah=a[0]+a[1]+a[2]+a[3]+a[4]; cout<<"nnJumlahnya = "<<jumlah; getch(); } Contoh 2: #include <iostream.h> #include <conio.h> main() { int a[5]; int jumlah=0; for(int i=0;i<5;i++) { cout<<"Data ke "<<i<<" = ";cin>>a[i]; jumlah+=a[i]; } cout<<"nnJumlahnya = "<<jumlah; getch(); } Tipe array juga dapat digabungkan dengan pointer. Untuk itu kita akan melakukan perubahan pada contoh 3 menjadi sebagai berikut: Contoh 3: #include <iostream.h> #include <conio.h> main() { int *a=new int[5]; int jumlah=0; for(int i=0;i<5;i++) { cout<<"Data ke "<<i<<" = ";cin>>a[i]; jumlah+=a[i]; } cout<<"nnJumlahnya = "<<jumlah; getch(); } Perhatikan contoh 3 diatas pada pengaksesan datanya. Jika array dideklarasikan sebagai pointer, maka untuk pengaksesan datanya cukup dituliskan sebagai array. Tetapi kita tetap bisa menuliskannya sebagai pointer tanpa harus menyertakan alamat arraynya. Jika demikian maka data akan diambilkan dari data pertama, atau data pada alamat ke 0. Sehingga misalkan pada akhir program contoh 3 diatas kita tambahkan instruksi:
42. 42. Modul Pelatihan Junior Programming 39 cout<<"nData = "<<*a; atau instuksi : cout<<"nData = "<<a[0]; akan mempunyai arti yang sama, data akan diambil dari data pertama (alamat 0). Selain itu untuk input data dan proses penjumlahan, dapat juga dibuat dalam bentuk fungsi seperti pada contoh 4. Perhatikan pada saat tipe array menjadi parameter fungsi, jumlah data yang tersimpan dalam array boleh ditulis boleh tidak (optional). Sehingga bisa ditulis dengan : b[] saja Contoh 4 : #include <iostream.h> #include <conio.h> void input_array(int b[],int n) { for(int i=0;i<n;i++) { cout<<"Data ke "<<i<<" = ";cin>>b[i]; } } int jumlah(int b[],int n) { int hasil=0; for(int i=0;i<n;i++) hasil+=b[i]; return hasil; } main() { int a[100]; int bd; cout<<"Masukkan banyaknya data = ";cin>>bd; input_array(a,bd); cout<<"nnJumlahnya = "<<jumlah(a,bd); getch(); } Penggunaan array 1D untuk sorting data Pada proses berikut ingin akan diurutkan n data yang tersimpan di array dengan metode Bubble Sort. Contoh 5: #include <iostream.h> #include <conio.h> void masukan(int a[],int n) { for(int i=0;i<n;i++) { cout<<"Data ke "<<i<<" = "; cin>>a[i];
43. 43. Modul Pelatihan Junior Programming 40 } } void urutkan(int a[], int n) { int temp; for(int i=0;i<n;i++) for(int j=0;j<(n-i);j++) if (a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } void tampil(int a[], int n) { for(int i=0;i<n;i++) cout<<a[i]<<" "; } main() { int a[100]; int jml; cout<<"Banyak data = ";cin>>jml; masukan(a,jml); urutkan(a,jml); cout<<"nnSetelah diurutkan "; tampil(a,jml); getch(); } Pada contoh program diatas ada tiga fungsi, fungsi pertama digunakan untuk menginputkan data ke dalam array, fungsi kedua untuk mengurutkan arraynya, dan fungsi ketiga untuk menampilkan data yang tersimpan di array ke layar. Array 2 Dimensi Contoh deklarasi : int a[4][5]; 0 1 2 3 0 25 40 26 12 1 6 8 12 5 2 1 3 8 9 3 15 22 13 19 4 0 5 7 15 Mengakses data : a[0][0] = 25 a[0][1] = 40 . . …
44. 44. Modul Pelatihan Junior Programming 41 Penggunaan array 2D untuk menjumlahkan dua matrik Matrik asal adalah a dan b, dijumlahkan dan hasilnya disimpan di matrik c. Syarat agar matrik dapat dijumlahkan adalah keduanya mempunyai ukuran yang sama. Baris matrik 1 = Baris matrik 2 Kolom matrik 1 = Kolom matrik 2 Contoh 6: #include <iostream.h> #include <conio.h> void masukan(int a[10][10],int b,int k) { for(int i=0;i<b;i++) for(int j=0;j<k;j++) {cout<<"Data ke "<<i<<j<<" = ";cin>>a[i][j]; } } void jumlah(int a1[][10],int a2[][10],int a3[][10],int b1,int k1) { for(int i=0;i<b1;i++) for(int j=0;j<k1;j++) a3[i][j]=a1[i][j]+a2[i][j]; } void tampilkan(int a[10][10],int b,int k) { for(int i=0;i<b;i++) { for(int j=0;j<k;j++) cout<<a[i][j]<<" "; cout<<"n"; } } main() { int dt1[10][10],dt2[10][10],dt3[10][10]; int b1,k1; cout<<"Jumlah baris matrik = ";cin>>b1; cout<<"Jumlah kolom matrik = ";cin>>k1; cout<<"nMatrik pertaman"; masukan(dt1,b1,k1); cout<<"nMatrik keduan"; masukan(dt2,b1,k1); jumlah(dt1,dt2,dt3,b1,k1); clrscr(); cout<<"nMatrik pertaman"; tampilkan(dt1,b1,k1); cout<<"nMatrik keduan"; tampilkan(dt2,b1,k1); cout<<"nMatrik hasil penjumlahann"; tampilkan(dt3,b1,k1); getch(); } Perhatikan pada saat array 2D menjadi parameter fungsi, jumlah baris boleh ditulis boleh tidak, tetapi jumlah kolom harus ditulis. Tipe array dapat dikembangkan menjadi array multidimensi. Misal 3D, 4D, dan sebagainya.
45. 45. Modul Pelatihan Junior Programming 42 3.6 Prosedur Prosedur adalah sebuah blok program tersendiri yang merupakan bagian dari program lain yang lebih besar. Prosedur dapat dipanggil oleh program utamanya ataupun oleh prosedur lain yang juga merupakan bagian dari program utamanya (masih dalam satu kode program). Sebuah program yang memiliki prosedur biasanya terdiri dari satu atau lebih prosedur dan satu program utama. Gambar 3.1 Ilustrasi Prosedur pada Kode Program Orang yang pertama kali belajar memprogram sering kali berpikir kenapa diperlukan prosedur, kenapa tidak hanya satu program utama saja. Prosedur memiliki beberapa keuntungan sebagai berikut : 1. Memecah-mecah program menjadi lebih sederhana, misalnya jika diperlukan proses pencarian berkali-kali jika hanya terdiri dari satu program utama tanpa prosedur, maka kode program pencarian akan beberapa kali ditulis ulang dan hasilnya dapat memperbesar ukuran file. Untuk lebih jelasnya dapat dilihat pada gambar 3.2. Kode Program Prosedur Prosedur Program Utama
46. 46. Modul Pelatihan Junior Programming 43 Gambar 3.2 Perbedaan Penggunaan Prosedur 2. Blok program yang digunakan jelas jika akan digunakan pada program lain, cukup dengan mengkopi satu prosedur dan meletakkannya pada program lain yang membutuhkannya dan program lain tersebut tinggal memanggil prosedur tersebut. 3.6.1 Deklarasi Prosedure Berikut adalah cara mendeklarasikan sebuah prosedur: Tabel 3.1 Deklarasi Prosedur Bahasa Algoritmik Bahasa Pascal Bahasa C procedure nama_prosedur(input: variabel_input1 : tipe_data; ......; variabel_inputn : tipe_data) {proses} .................. {end procedure} procedure nama_prosedur(variabel_i nput1 : tipe_data; .......; variabel_inputn : tipe_data); var {variabel} begin { proses } ...................... end; void nama_prosedur(tipe_data variabel_input1, ......., tipe_data variabel_inputn){ // proses .................... } procedure cariNama(input: nama : string) procedure cariNama(nama : string); var {variabel} void cariNama(char nama[]){ Kode Program Prosedur Pencarian Program Utama Panggil Prosedur Pencarian Panggil Prosedur Pencarian Panggil Prosedur Pencarian Kode Program Program Utama Tulis Kode Pencarian Tulis Kode Pencarian Tulis Kode Pencarian
47. 47. Modul Pelatihan Junior Programming 44 {proses} ................... {end procedure} begin { proses } ...................... end; // proses ...................... } Sedangkan cara memanggil prosedur adalah sebagai berikut: Tabel 3.2 Memanggil Prosedur Bahasa Algoritmik Bahasa Pascal Bahasa C nama_prosedur(variabe l_ masukan) nama_prosedur(variabel _m asukan); nama_prosedur(variabel _m asukan); cariNama(nama) cariNama(nama); cariNama(nama); Untuk bahasa algoritmik, pendeklarasian prosedur ada beberapa macam sebagai berikut : Tabel 3.3 Bahasa Algoritmik pemanggilan prosedur Bahasa Algoritmik Keterangan procedure nama_procedure(input : nama_variabel : tipe_data) merupakan prosedur yang hanya memiliki variabel sebagai masukan sehingga setelah prosedur dijalankan tidak ada nilai variabel masukan manapun yang berubah, misalnya : procedure tampil(input : a : Integer) write("nilai a adalah : ", a) {end procedure} selesai prosedur dijalankan, nilai a tidak mengalami perubahan procedure nama_procedure(output : nama_variabel : tipe_data) merupakan prosedur yang memiliki variabel masukan, tapi nilai dari variabel masukan mengalami perubahan setelah keluar dari prosedur karena proses dalam prosedur setelah prosedur dijalankan tanpa menggunakan nilai dari variabel masukan, misalnya : procedure hasil(output : a : integer) a <- 2 + 3 {end procedure} selesai prosedur dijalankan, nilai a mengalami perubahan menjadi 5 hasil dari 2 + 3 procedure nama_procedure(input: nama_variabel : tipe_data, output : nama_variabel : tipe_data) merupakan prosedur yang memiliki variabel masukan yang tidak berubah nilainya dan
48. 48. Modul Pelatihan Junior Programming 45 yang berubah nilainya setelah prosedur dijalankan, misalnya: procedure hasil(input : a : integer, output : b : integer) b <- a + 3 {end procedure} selesai prosedur dijalankan, nilai a tidak mengalami perubahan sedangkan nilai b mengalami perubahan procedure nama_procedure(input/output : nama_variabel : tipe_data) merupakan prosedur yang memiliki variabel masukan, tapi nilai dari variabel masukan mengalami perubahan karena proses dalam prosedur setelah prosedur dijalankan dengan menggunakan nilai dari variabel masukan, misalnya : procedure hasil(input/output : a : integer) a <- a + 3 {end procedure} selesai prosedur dijalankan, nilai a mengalami perubahan 3.7 Fungsi Fungsi adalah sebuah blok program tersendiri yang merupakan bagian dari program lain yang lebih besar sama halnya dengan prosedur hanya saja fungsi memiliki hasil keluaran sedangkan prosedur hanya berisi proses. Fungsi dapat dipanggil oleh program utamanya ataupun oleh prosedur atau fungsi lain yang juga merupakan bagian dari program utamanya (masih dalam satu kode program). Sebuah program bisa terdiri dari satu atau lebih prosedur, satu atau lebih fungsi, dan satu program utama. Fungsi juga memiliki keuntungan- keuntungan seperti halnya prosedur, hal paling mendasar yang membedakan prosedur dan fungsi adalah fungsi menghasilkan sebuah keluaran sedangkan prosedur tidak. Pada gambar xxx, prosedur melakukan proses dan melakukan perubahan nilai di dalam proses yang dilakukan di dalam prosedur, keluaran atau output yang ada pada deklarasi prosedur berarti nilai variabel itu akan berubah bergitu prosedur dijalankan sedangkan fungsi melakukan proses dan perubahan nilai dengan proses di dalam fungsi namun fungsi menghasilkan nilai keluaran yang dapat ditangkap oleh sebuah variabel.
49. 49. Modul Pelatihan Junior Programming 46 Gambar 3.3 Ilustrasi Perbedaan Prosedur dan Fungsi Berikut adalah cara mendeklarasikan sebuah fungsi pada bahasa Algoritkmik, bahasa Pemrograman Pascal dan C: Tabel 3.4 Deklarasi Fungsi Bahasa Algoritmik Bahasa Pascal Bahasa C function nama_fungsi(nama_vari abel_ masukan : tipe_data) -> tipe_data_keluaran {proses} ..................... ... -> variabel_keluaran {end function} function nama_fungsi(nama_varia bel_ masukan : tipe_data) : tipe_data_keluaran; var begin { proses } ...................... ..... nama_fungsi := variabel_keluaran; end; tipe_data_keluaran nama_fungsi(tipe_d ata nama_variabel_masu kan){ // proses ...................... ..... return variabel_keluaran; } function nilaiTerbesar(a : integer; b : integer, c : integer) -> integer {proses} integer hasil ..................... .... -> hasil {end function function nilaiTerbesar(a : integer; b : integer; c : integer) : integer; var hasil : integer; begin { proses } ...................... .. nilaiTerbesar := hasil; end; int nilaiTerbesar(int a, int b, int c){ // proses int hasil; ...................... .. return hasil; }
50. 50. Modul Pelatihan Junior Programming 47 Sedangkan cara memanggil fungsi adalah sebagai berikut: Tabel 3.5 Deklarasi memanggil Fungsi Bahasa Algoritmik Bahasa Pascal Bahasa C nama_variabel <- nama_fungsi (variabel_masukan) nama_variabel := nama_fungsi(variabel_mas ukan); nama_variabel = nama_fungsi(variabel_ma sukan); maksimum <- nilaiTerbesar(a, b, c) maksimum := nilaiTerbesar(a, b, c); maksimum = nilaiTerbesar(a, b, c); Berikut adalah sebuah fungsi yang menghasilkan hasil perkalian dari tiga buah parameter masukan: Tabel 3.6 Deklarasi memanggil Fungsi Bahasa Manusia Bahasa Algoritmik Mendeklarasikan fungsi hasilKali yang menghasilkan nilai hasil perkalian dari tiga buah variabel masukan function hasilKali(a : integer; b : integer; c : integer)-> integer hasil : integer hasil <- a * b * c Mendeklarasikan variabel hasil yang nilainya merupakan nilai keluaran fungsi -> hasil Mendeklarasikan program utama, mendeklarasikan tiga variabel masukan dan variabel hasil, memanggil fungsi hasilKali serta menampilkannya ke layar {algoritma utama} a : integer b : integer hasil : integer a <- 1 b <- 2 c <- 3 hasil <- hasilKali(a, b, c) output("hasil perkalian : ", hasil) {end algoritma utama} 3.8 Library Pemrograman Grafik 3.8.1 Konsep Dasar Grafik Komputer Grafik Komputer adalah ilmu yang mempelajari rancang bangun berorientasi geometri yang diaplikasikan pada komputer, biasanya data yang digunakan berbentuk 3 dimensi. Grafik komputer saat ini digunakan untuk virtual reality, animasi & kartun 2D, games, dll. 3.8.2 Sistem koordinat Pada umunya sistem koordinat yang digunakan dalam dunia nyata (matematika, fisika, etc) menggunakan sistem koordinat cartesius untuk