KATA PENGANTAR
Puji syukur kami panjatkan kepada Tuhan yang Maha Esa atas tersusunnya buku teks ini, dengan harapan dapat digunakan sebagai buku teks untuk siswa Sekolah Menengah Kejuruan (SMK) Program Keahlian Teknik Komputer Jaringan, idang StudiTeknik Komputer dan !n"ormatika, Pemrograman #asar Penerapan kurikulum $%&' mengau pada paradigma belajar kurikulum abad $& menyebabkan terjadinya perubahan, yakni dari pengajaran ( teaching) menjadi belajar ( learning), dari pembelajaran yang berpusat kepada guru ( teachers-centered) menjadi pembelajaran yang berpusat kepada peserta didik (student-centered), dari pembelajaran pasi" ( pasive learning) ke ara belajar peserta didik akti" (active learning) atau Student Active Learning. uku teks Pemrograman #asar ini disusun berdasarkan tuntutan paradigma pengajaran dan pembelajaran kurikulum $%&' diselaraskan berdasarkan pendekatan model pembelajaran yang sesuai dengan kebutuhan belajar kurikulum abad $&, yaitu pendekatan model pembelajaran berbasis peningkatan keterampilan proses sains* uku Teks +Pemrograman #asar ini digunakan untuk kelas semester !-!! dan untuk kelas ! Semester !-!! Penyajian buku teks untuk Mata Pelajaran Pemrograman #asar ini disusun dengan tujuan agar supaya peserta didik dapat melakukan proses penarian pengetahuan berkenaan dengan materi pelajaran melalui berbagai akti.itas proses sains sebagaimana dilakukan oleh para ilmuwan dalam melakukan eksperimen ilmiah (penerapan sienti"ik), dengan demikian peserta didik diarahkan untuk menemukan sendiri berbagai "akta, membangun konsep, dan nilai/nilai baru seara mandiri* Penyusun, 0ahyu Sumantri Sutiar, S*T
#12T13 !S!
GLOSARIUM Algoritma adalah suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan seara matematis, yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer* Variabel adalah suatu pengenal (identi"ier) yang digunakan untukmewakili suatu nilai tertentu di dalam proses program* erbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu .ariable bisa diubah/ubahsesuai kebutuhan* Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh omputer* Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung*
Konstanta nilainya selalu tetap* Operator artinya memberikan nilai 4 ke dalam .ariable a* Sebelah kiri tanda 5 dalam pernyataan di atas, dikenal dengan lvale !le"t vale# dan di sebelah kanan tanda 5 dikenal dengan r.alue (right .alue)* l.alue harus selalu berupa .ariable, sedangkan r.alue dapat berupa .ariable, nilai, konstanta, hasil operasi ataupun kombinasinya* Psedo$ode adalah deskripsi dari algoritma pemrograman omputer yang menggunakan struktur sederhana dari beberapa bahasa pemograman tetapi bahasa tersebut hanya ditujukan agar dapat dibaa manusia* %lo&$'art adalah gambaran dalam bentuk diagram alir dari algoritma/algoritma dalam suatu program, yang menyatakan arah alur program tersebut* Sor$e (ode adalah kumpulan dari beberapa kode bahasa pemrograman tertentu yang membentuk sebuah deklarasi - perintah yang dapat dibaa oleh komputer dan untuk menjalankan soure ode tersebut membutuhkan sebuah penterjemah dalam hal ini adalah so"tware tertentu seperti 6Turbo Pasal6 untuk dieksekusi - dikompile*
PETA KE)U)UKAN *A+AN A,AR Peta kedudukan bahan ajar merupakan suatu diagram yang menjelaskan struktur mata pelajaran dan keterkaitan antar mata pelajaran dalam satu kelompok bidang studi keakhlian* 7ambar & menjelaskan peta kedudukan bahan ajar untuk program studi keahlian Teknik Komputer dan Jarin gan* Kelompok 8& merupakan kelom pok mata pelajaran wajib dasa r bidang stud i keahlian* 8$ merupakan kelompok mata pelajaran wajib dasar program keahlian dan 8' merupakan kelompok mata pelajaran wajib paket keahlian*
7ambar &* Peta Kedudukan ahan 1jar Kelompok 8$ Mata Pelajaran Pemrograman #asar
Jaringan Dasar
Perakitan Komputer
*A* -. PEN)A+ULUAN
A.
)is/ripsi. Pemrograman #asar adalah salah satu mata pelajaran wajib dasar program keahlian Teknik Komputer dan !n"ormatika (TK!)* erdasarkan struktur kurikulum mata pelajaran Pemrograman #asar disampaikan di kelas semester &-$ dan di kelas ! semeseter &-$ masing/masing $ jam pelajaran* 9ntuk semester & topik materi pembelajaran menekankan pada Konsep dasar tentang pemrogram dasar yakni 1lgoritma Pemrograman, 1lgoritma Perabangan, 1lgoritma Perulangan* Sedangkan untuk semester $ topik materi pembelajaran menekankan pada ahasa pemrograman, Tipe #ata, :ariable, ;perator dan Ekspresi, Struktur Kontrol Penabangan, Struktur Kontrol Perulangan, dan Pengembangan 1lgoritma 1plikasi* Pembelajaran Pemrograman #asar ini menggunakan metode pendekatan scientifik. #alam pendekatan ini praktikum atau eksperimen berbasis sains merupakan bidang pendekatan ilmiah
dengan tujuan dan aturan khusus, dimana tujuan utamanya adalah untuk memberikan bekal ketrampilan yang kuat dengan disertai landasan teori yang realistis mengenai "enomena yang akan kita amati* Ketika suatu permasalahan yang hendak diamati memunulkan pertanyaan/pertanyaan yang tidak bisa terjawab, maka metode eksperimen ilmiah hendaknya dapat memberikan jawaban melalui proses yang logis* Proses/proses dalam pendekatan sienti"ik meliputi beberapa tahapan (gambar ') yaitu< mengamati, hipotesis atau menanya, mengasosiasikan atau eksperimen, mengumpulkan atau analisa data dan mengkomunikasikan* Proses belajar pendekatan eksperimen pada hakekatnya merupakan proses ber"ikir ilmiah untuk membuktikan hipotesis dengan logika ber"ikir*
7ambar '* #iagram Proses Metode Sienti"ik/Eksperimen !lmiah *.
Pras0arat. erdasarkan peta kedudukan bahan ajar, mata pelajaran Pemrogram an #asar ini berdiri sendiri dan bersama sam a satu kelompok dengan mata pelaj aran pemrograman web, system operasi, perakitan omputer dan simulasi digital* Pemrograman #asar merupakan tahapan untuk menyiapkan bagaimana memeahkan permasalahan dalam suatu pemrograman sehingga menghasilkan program yang baik* 9ntuk memahami Pemrograman yang benar, dibutuhkan pemahaman terhadap algoritma* (.
Petn1/ Penggnaan.
uku pedoman siswa ini disusun berdasarkan kurikulum $%&' yang mempunyai iri khas penggunaan metode sienti"ik* uku ini terdiri dari dua bab yaitu bab & pendahuluan dan bab $ pembelajaran* #alam bab pendahuluan beberapa yang harus dipelajari peserta didik adalah diskripsi mata pelajaran yang berisi in"ormasi umum, rasionalisasi dan penggunaan metode sienti"ik* Selanjutnya pengetahuan tentang persyaratan, tujuan yang diharapkan, kompetensi inti dan dasar yang akan diapai serta test kemampuan awal* ab $ menuntun peserta didik untuk memahami diskripsi umum tentang topik yang akan dipelajari dan rinian kegiatan belajar sesuai dengan kompetensi dan tujuan yang akan diapai* Setiap kegiatan belajar terdiri dari tujuan dan uraian materi topik pembelajaran, tugas serta test "ormati"* 9raian pembelajaran berisi tentang diskripsi pemahaman topik materi untuk memenuhi kompetensi pengetahuan* 9raian pembelajaran juga menjelaskan diskripsi unjuk kerja atau langkah/langkah logis untuk memenuhi kompetensi skill* Tugas yang harus dikerjakan oleh peserta didik dapat berupa tugas praktek, eksperimen atau pendalaman materi pembelajaran* Setiap tugas yang dilakukan melalui beberapa tahapan sienti"ik yaitu < &) melakukan pengamatan setiap tahapan unjuk kerja $) melakukan praktek sesuai dengan unjuk kerja ') mengumpulkan data yang dihasilkan setiap tahapan =) menganalisa hasil data menggunakan analisa diskripti" 4) mengasosiasikan beberapa pengetahuan dalam uraian materi
pembelajaran untuk membentuk suatu kesimpulan 4) mengkomunikasikan hasil dengan membuat laporan porto"olio* >aporan tersebut merupakan tagihan yang akan dijadikan sebagai salah satu re"erensi penilaaian* ).
T1an A/'ir. Setelah mempelajari uraian materi dalam bab pembelajaran dan kegiatan belajar diharapkan peserta didik dapat memiliki kompetensi sikap, pengetahuan dan ketrampilan yang berkaitan dengan materi< Konsep algoritma sebagai pemeahan masalah Pemeahan masalah seara algoritma menggunakan konsep deskripti" atau "lowhart Menerapkan bahasa pemrograman Penerapan algoritma kedalam bentuk pemrograman Membangun 1plikasi 1lgoritma E.
Kompetensi Inti )an Kompetensi )asar
1. Kompetensi Inti - 2 Menghayati dan mengamalkan ajaran agama yang dianutnya* Kompetensi )asar 2 &*&* Memahami nilai/nilai keimanan dengan menyadari hubungan keteraturan dan kompleksitas alam dan jagad raya terhadap kebesaran Tuhan yang meniptakannya &*$* Mendeskripsikan kebesaran Tuhan yang meniptakan berbagai sumber energi di alam &*'* Mengamalkan nilai/nilai keimanan sesuai dengan ajaran agama dalam kehidupan sehari/ hari* 2. Kompetensi Inti 32 Menghayati dan Mengamalkan perilaku jujur, disiplin, tanggung jawab, peduli (gotong royong, kerjasama, toleran, damai), santun, responsi" dan proakti" dan menunjukan sikap sebagai bagian dari solusi atas berbagai permasalahan dalam berinteraksi seara e"ekti" dengan lingkungan sosial dan alam serta dalam menempatkan diri sebagai erminan bangsa dalam menempatkan diri sebagai erminan bangsa dalam pergaulan dunia* Kompetensi )asar2 $*&* Menunjukkan perilaku ilmiah (memiliki rasa ingin tahu? objekti"? jujur? teliti? ermat? tekun? hati/hati? bertanggung jawab? terbuka? kritis? kreati"? ino.ati" dan peduli lingkungan) dalam akti.itas sehari/hari sebagai wujud implementasi sikap dalam
melakukan perobaan dan berdiskusi $*$* Menghargai kerja indi.idu dan kelompok dalam akti.itas sehari/hari sebagai wujud implementasi melaksanakan perobaan dan melaporkan hasil perobaan 3. Kompetensi Inti 42 Memahami, menerapkan dan menganalisis pengetahuan "aktual, konseptual, dan prosedural berdasarkan rasa ingin tahunya tentang ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam wawasan kemanusiaan, kebangsaan , kenegaraan, dan peradaban terkait penyebab "enomena dan kejadian dalam bidang kerja yang spesi"ik untuk memeahkan masalah* Kompetensi )asar2 '*& Memahami penggunaan data dalam algoritma dan konsep algoritma pemrograman '*$ Memahami struktur algoritma serta menganalisis data dalam suatu algoritma perabangan '*' Memahami Struktur algoritma serta menganalisa data dalam suatu algoritma perulangan '*= Menerapkan bahasa pemrograman '*4 Menerapakan penggunaan tipe data, .ariabel, konstanta, operator dan ekspresi '*@ Menerapkan struktur kontrol penabangan dalam bahasa pemrograman '*A Menerapkan struktur kontrol perulangan dalam bahasa pemrograman '*B Menerapkan Keseluruhan konsep algoritma dalam penyelesaian masalah kompleks 5. Kompetensi Inti 52 Mengolah, menalar, dan menyaji dalam ranah konkret dan ranah abstrak terkait dengan pengembangan dari yang dipelajarinya di sekolah seara mandiri, dan mampu melaksanakan tugas spesi"ik dibawah pengawasan langsung* Kompetensi )asar2 =*& Menggukan algoritma pemrograman untuk memeahkan permasalahan =*$ Menggunakan algoritma perabangan untuk memeahkan permasalahan =*' Memeahkan permasalahan dengan algoritma perulangan =*=* Mengolah algoritma ke dalam bentuk kode program komputer =*4 Mengolah data menggunakan knsep tipe data, .ariable, konstanta, operator, dan ekspresi* =*@ Memeahkan masalah menggunakan struktur ontrol perabangan =*A Memeahkan masalah menggunakan struktur ontrol perulangan =*B Menganalisa kesalahan dalam program %. (e/ Kemampan A&al. &* Jelaskan apa yang dimaksud algoritma $* Jelaskan apa yang dimaksud dengan "lowhart '* Jelaskan apa yang dimaksud dengan tipe data, .ariable dan konstanta
=* Sebutkan aplikasi/aplikasi pemrograman terstruktur
*A* II PEM*ELA,ARAN A. )is/ripsi Pemrograman #asar merupakan matapelajaran yang membahas mulai dari 1lgoritma Pemrograman, 1lgoritma Penabangan, 1lgoritma Perulangan, ahasa Pemrograman, Tipe #ata, :ariabel, operator dan Ekspresi, Struktur Kontrol Penabangan, Struktur Kontrol Perulangan, dan Pengembangan 1lgoritma 1plikasi* *. Kegiatan *ela1ar Kegiatan belajar menjelaskan tentang akti"itas pembelajaran yang dilakukan siswa, meliputi mempelajari uraian materi, meng erjakan test "ormati" dan tugas atau eksperimen dari proses mengamati sampai menyusun laporan (. ALGORITMA PEMROGRAMAN T1an Pembela1aran Setelah mengikuti kegiatan belajar & ini siswa diharapkan dapat < &) Memahami 1lgoritma $) Menerapkan algoritma sebagai pemeahan masalah ') Menganalisis permasalahan dengan menggunakan algoritma Uraian Materi -. Perteman - 2 Mengenal Konsep Algoritma a. Masala' Manusia hidup dengan segala masalah yang melingkupinya* Cidup pada dasarnya adalah serangkaian akti.itas menyelesaikan masalah* #alam ahasa !ndonesia, istilah lain yang sepandan pengertiannya dengan kata +masalahD adalah +persoalanD (problem)* Masalah adalah pertanyaan atau tugas yang kita ari jawabannya* 8ontoh beberapa masalah dalam kehidupan sehari/hari misalnya< &) #iberikan setu mpuk kartu pasien di sebuah tempat prekt ek dokter yang tersusun aak* Setiap kartu mempunyai nomor registrasi pasien* agaimana mengurutkan kartu/kartu tadi berdasarkan nomor urut pasien sehingga tersusun dengan nomor keil di atas dan nomor besar di bawah* $) #iberikan sebuah da"tar yang berisi nama/nama siswa baru yang diterima pada di sebuah SMK* #a"tar tersebut hanya berisi nomor peserta ujian yang diterima* 8arilah apakah seorang alon siswa baru yang nomor peserta ujiannya diketahui terdapat di dalam da"tar tersebut Jawaban dari masalah ini adalah +yaD jika nomor tersebut ditemukan di dalam da"tar, atau +tidakD jika tidak terdapat di dalamnya* ') #iberikan da"tar nama pejabat baru beserta jumlah kekayaannya* Tentukan pejabat mana yang mempunyai kekayaan paling besar Jawaban dari masalah ini adalah nama pejabat yang mempunyai kekayaan paling besar* b.
Algoritma 9ntuk masalah dengan instansiasi yang keil, kita dapat menemukan solusinya dengan mudah dan epat* agaimana kalau instansiasi masalah berukuran besar Misalnya pada masalah pengurutan, jika n 5 &%%% jelas tidak mudah mengurutkan data sebanyak itu* ;leh karena itu, kita perlu menuliskan prosedur yang berisi langkah/langkah pengurutan sehingga prosedur tersebut dapat +dijalan kanD oleh sebuah pemroses (komputer, manusia, robot, dan sebagainya) untuk menghasilkan solusi setiap instansiasi masalah pengurutan* Kita katakana langkah/langkah pengurutan itu untuk memeahkan masalah* Kita katakana langkah/langkah pengurutan itu untuk
memeahkan masalah* Prosedur yang berisi langkah/langkah penyelesaian masalah disebut algoritma* Algoritma adalah urutan langkah/langkah untuk memeahkan masalah*
Terdapat beberapa de"inisi lain dari algoritma F tetapi prinsipnya senada dengan de"inisi yang diungkapkan di atas F yang kita kutip berbagai literature, antara lain< Algoritma adalah deretan langkah/langkah komputasi yang mentrans"ormasikan data masukan menjadi keluaran G8;3H$I* Algoritma adalah deretan instruksi yang jelas untuk memeahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatasG>E:%'I* Algoritma adalah prosedur komputasi yang terdi"inisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran* Jadi,
algoritma adalah deretan langkah komputasi yang mentrans"ormasikan masukan menjadi keluaran G8;3BHI* Perhatikan ontoh algoritma sederhana berikut < Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah< &) Menyiapkan Peralatan Tulis $) Menulis surat ') Surat dimasukkan ke dalam amplop tertutup =) 1mplop ditempeli perangko seukupnya* 4) Pergi ke Kantor Pos terdekat untuk mengirimkannya 1lgoritma menghitung luas persegi panjang< &) Masukkan panjang (P) $) Masukkan lebar (>) ') >uas P > =) Tulis >uas $.
Se1ara' A lgoritma #itinjau dari asal/usul katanya, kata 1lgoritma sendiri mempunyai sejarah yang aneh* ;rang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab* 1nda dikatakan algorist jika 1nda menghitung menggunakan angka arab* Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan* 1khirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu 1bu Ja "ar Muhammad !bnu Musa 1l/Khuwarimi* 1l/Khuwarimi dibaa orang barat menjadi 1lgorism* 1l/Khuwarimi menulis buku yang berjudul Kitab 1l Jabar 0al/MuLabala yang artinya uku pemugaran dan pengurangan (The book o" restoration and redution)* #ari judul buku itu kita juga memperoleh akar kata 1ljabar (1lgebr a)* Perubahan kata dari algorism menjadi algorithm munul karena kata algorism sering dikelirukan dengan arithmeti, sehingga akhiran sm berubah menjadi thm* Karena perhitungan dengan angka 1rab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur/angsur dipakai sebagai metode perhitungan (komputasi) seara umum, sehingga kehilangan makna kata aslinya* #alam bahasa !ndonesia, kata algorithm diserap menjadi algoritma*
7ambar &* (penemu algoritma) d.
)e"inisi Program 6 Pemrograman Pemrograman adalah kumpulan instruksi/instruksi tersendiri yang biasanya disebut soure ode yang dibuat oleh programmer (pembuat program) Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan* (Menurut P* !nsap Santosa) ahasa Pemrograman adalah alat untuk membuat program 8ontoh< C, C++, C#, Pascal, Basic, Perl, PHP, ASP, HP, ava, dll. Seara garis besar, unsur/unsur pemrograman adalah !nput Proses ;utput*
Input
Proses Pengolahan Data
Memory
Output
7ambar $* 9nsur Pemrograman &) !nput agian ini merupakan proses untuk memasukkan data ke komputer melalui de.ie yang ada misalnya keyboard, mouse, sanner dll* Program melakukan proses membaa data yang akan diolah dari de.ie tersebut* $) ;utput agian ini merupakan proses untuk menampilkan data yang telah diolah, melaporkan hasil pegolahan data melalui de.ie seperti monitor, printer dll* Program melakukan proses menetak data ke de.ie tersebut* ') Proses agian ini merupakan proses mengolah data yang diinputkan dengan nenerapkan metode/ metode, teknik/teknik, algoritma/algoritma yang ada* Proses ini menghasilkan data output yang akan dioutputkan kepada pengguna program* eda 1lgoritma dan Program Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma* Program ditulis dengan menggunakan bahasa pemrograman* Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman* eberapa pakar memberi "ormula bahwa< Program 7 Algoritma 8 *a'asa !Str/tr )ata# Pener1ema' *a'asa Pemrograman 9ntuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan C!"piler dan interpreter* C!"piler adalah suatu program yang menterjemahkan bahasa program (Soure ode) ke dalam bahasa obyek (objet ode) seara keseluruhan program* nterpreter berbeda dengan C!"piler, interpretermenganalisis dan mengeksekusi setiap baris dari program seara keseluruhan* Keuntungan dari interpreter adalah dalam eksekusi yang bisa dilakukan dengan segera* Tanpa melalui tahap kompilasi, untuk alas an ini interpreter digunakan pada saat pembuatan program berskala besar* Paradigma Pemrograman 2 &) Pemrograman Prosedural a) erdasarkan urutan/urutan, sekuensial b) Program adalah suatu rangkaian prosedur untuk memanipulasi data* Prosedur merupakan kumpulan instruksi yang dikerjakan seara berurutan* ) Carus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah* $) Pemrograman 2ungsional a) erdasarkan teori "ungsi matematika b) 2ungsi merupakan dasar utama program* ') Pemrograman Terstruktur a) Seara berurutan dan terstrukrtur* b) Program dapat dibagai/bagi menjadi prosedur dan "ungsi* ) 8ontoh< PASCAL dan C =) Pemrograman Modular a) Pemrograman ini membentuk banyak modul* b) Modul merupakan kumpulan dari prosedur dan "ungsi yang berdiri sendiri ) Sebuah program dapat merupakan kumpulan modul/modul*
d) 8ontoh< M;#9>1/$ atau 1#1 4) Pemrograman erorientasi ;byek a) Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data-.ariabel-property dan method-e.ent-prosedur yang dapat dimanipulasi b) 8ontoh< C++, $%&ect Pascal, dan ava* @) Pemrograman erorientasi 2ungsi a) Pemrograman ini ber"ok us pada suatu "ungsi terte ntu saja* Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini* b) 8ontoh< S'L (Structured 'uer Language), H*L, Ldan lain/lain* A) Pemrograman #eklarati" a) Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memeahkan masalah dengan implementasi algoritma* b) 8ontoh< P$L$ e.
*ela1ar Memprogram dan *ela1ar *a'asa Pemrograman
elajar memprogram tidak sama dengan belajar bahasa pemrograman* elajar memprogram adalah belajar tentang metodologi pemeahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaa dan dipahami* Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan/aturan tata bahasanya, pernyataan/pernyataannya, tata ara pengoperasian ompiler/nya, dan meman"aatkan pernyataan/pernyataan tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja* Sampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa rakitan (asse"%l), /!rtran, C!%!l, Ada, PL0, Alg!l, Pascal, C, C++, Basic, Pr!l!g, LSP, P, bahasa/ bahasa simulasi seperti CSP, Si"script, PSS, 1ina"!* erdasarkan Terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar< &) *a'asa pemrograman bert1an /'ss * ang termasuk kelompok ini adalah 8obol (untuk terapan bisnis dan administrasi)* 2ortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan keerdasan buatan), bahasa/bahasa simulasi, dan sebagainya* $) *a'asa pemrograman bert1an mm9 yang dapat digunakan untuk berbagai aplikasi* ang termasuk kelompok ini adalah %ahasa Pascal, Basic dan C * Tentu saja pembagian ini tidak kaku* ahasa/bahasa bertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain* 8obol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas* ang jelas, bahasa/bahasa pemrograman yang berbeda dikembangkan untuk bermaam/maam terapan yang berbeda pula* erdasarkan pada apakah notasi bahasa pemrograman lebih dekat ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua maam< &) *a'asa ting/at renda'. ahasa jenis ini diranang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator)* 8ontohnya adalah bahasa mesin* 8P9 mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya* ahasa tingkat rendah bersi"at primiti", sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia* Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin* $) *a'asa ting/at tinggi9 yang membuat pemrograman lebih mudah dipahami, lebih manusiawi , dan berorientasi ke bahasa manusia (bahasa !nggris)*Canya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer* !a perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau ompiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh 8P9* 8ontoh bahasa tingkat tinggi adalah Pasal, P>-!, 1da, 8obol, asi, 2ortran, 8, PCP, 8NN, dan sebagainya* Test %ormati" &* uatlah 1lgoritma Penerimaan Siswa aru $* uatlah 1lgoritma Mengitung >uas Segitiga '* uatlah 1lgoritma menjahit pakaian =* uatlah 1lgoritma membuat nasi goreng 4* Jelaskan perbedaan 1lgoritma dan pemrograman @* Sebutkan Keuntungan Pembuatan algoritma A* erdasarkan pada notasi bahasa pemrog raman lebih dekat ke mesin atau ke bahasa manusia, maka bahasa pemrograman dapat dikelompokkan menjadi, Sebutkan O Jelaskan B* erdasarkan pada notasi bahasa pemrog raman lebih dekat ke mesin atau ke bahasa manusia, maka bahasa pemrograman dapat dikelompokkan menjadi Sebutkan O Jelaskan
H* Sebutkan dan Jelaskan paradigma pemrograman 3. Perteman 3 2 Str/tr Algoritma a. Pern0ataan Sebuah algoritma merupakan deskripsi langkah/langkah pelaksanaan suatu proses* Setiap langkah di dalam algoritma dinyatakan dalam sebuah pern0ataan (statement) atau istilah lainnya instr/si. Sebuah pernyataan berisi aksi (ation) yang dilakukan* ila sebuah pernyataan dieksekusi oleh pemroses, maka aksi yang bersesuaian dengan pernyataan itu dikerjakan*
Sebagai ontoh, misalkan di dalam algoritma ada pernyataan berikut< Tulis DCello 0orldD Maka pernyataan tersebut menggambarkan aksi menulis pesan DCallo 0orldD* Pernyataan Kalikan a dengan $ Menggambarkan aksi mengalikan a dengan $ dan hasil perkalian disimpan di dalam peubah a lagi*
b.
Kontr/si )asar 1lgoritma berisi langkah/langkah penyelesaian suatu masalah* >angkah/langkah tersebut dapat berupa runtunan aksi, pemilihan aksi, pengulangan aksi* Ketiga jenis langkah tersebut membentuk kontruks i suatu algoritma* Jadi, sebuah algoritma dapat dibangun dari tiga buah kontruksi atau struktur dasar, yaitu rntnan (seLuene), pemili'an (seletion), dan penglangan (repetition)* &) 3untunan Sebuah runtunan terdiri dari satu atau lebih pernyataan, setiap pernyataan dtulis dalam satu baris atau dipisahkan dengan tanda titik koma* Tiap pernyataan dikerjakan seara berurutan (sekuensial) sesuai dengan urutannya didalam teks algoritma, yaitu sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan* 9rutan intruksi menentukan keadaan akhir algoritma* ila urutannya diubah, maka hasil akhirnya mungkin juga berubah* 3untunan satu atau lebih pernyataan dinamakan pern0ataan:gabngan (ompound statements)*
8ontoh runtunan* s&, s$, s', s=, s4 mula/mula proses melaksanakan pernyataan s&, pernyataan s$ dilaksanakan setelah pernyataan s& selesai* Selanjutnya, pernyataan s' dilaksanakan setelah pernyataan s$ selesai* #emikian seterusnya sampai pernyataan terakhir s4 dilaksanakan* Setelah pernyataan s4 selesai dilaksanakan, algoritma berhenti* $) Pemilihan 1dakalnya sebuah intruksi dikerjakan jika kondisi tertentu dipenuhi* Ekspresi pernyataan pemilihan !" k!ndisi then Aksi #alam bahasa indonesia, i" berarti DjikaD dan then artinya DmakaD? Kondisi adalah persyaratan yang dapat bernilai benar atau salah? aksi sesudah kata then hanya dilaksanakan apabila kondisi bernilai benar* Sebaliknya, jika kondisi salah, maka aksi tidak dilaksanakan* 8ontoh < !" air di dalam ketel mendidih then Matikan api kompor !" habis dibagi $ then Tulis bahwa bilangan genap Struktur pemilihan i"/then hanya memberikan satu pilihan aksi bila kondisi (persayaratan) dipenuhi (bernilai benar), dan tidak memberi pilihan aksi lain bila kondisi bernilaii salah* entuk pemilihan yang lebih umum ialah memilih satu ari dua buah aksi bergantung pada nilai kondisinya< !" kondisi then 1ksi & Else 1ksi $ Else artinya Dkalau tidakD* ila kondisi terpenuhi, aksi & akan dikerjakan, tetapi kalau tidak (yaitu kondisi salah), aksi $ yang akan dikerjakan* Misalnya pada pernyataan berikut< !" lampu a nyala then Tekan tombol merah Else Tekan tombol biru !" habis dibagi $ then Tulis DgenapD Else Tulis DganjilD ') Pengulangan Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa kenal lelah* !ni berbeda dengan manusia yang epat lelah bila mengerjakan pekerjaan yang sama berulang/ulang* Tidak hanya lelah, tetapi juga epat bosan* 8ontoh< menuliskan sebuah kalimat Dsaya berjanji tidak akan nakal dan malas lagiD yang sama sebanyak &%% kali
Menggna/an perinta' repeat 3epeat 2 time
aksi 1lgoritma tulis kalimat &%% kali 3epeat &%% times Tulis Dsaya berjanji tidak akan nakal dan malasD Menggna/an perinta' %or 2or pencacah pengulangan dari 3sa"pai 2 do 1ksi
1lgoritma tulis kalimat &%% kali 2or i dari & sampai &%% do Tulis Dsaya berjanji tidak akan nakal dan malasD Menggna/an Repat Until 3epeat
Aksi 9ntil 4!ndisi 1lgoritma tulis kalimat &%% kali 3epeat Tulis Dsaya berjanji tidak akan nakal dan malasD 9ntil sudah &%% kali Test "ormati" &* Sebutkan tiga struktur dasar algoritma $* uat algoritma seara deskripti" menggunakan perintah pemilihan tentang sikap yang harus dilakukan bila menemui pengatur lalu lintas di jalan raya* '* uat algoritma seara deskripti" menggunakan perintah %or...do untuk menuliskan kalimat DCallo 0orldD sebanyak &% kali =* uat algoritma seara deskripti" menggunakan perintah ;'ile...)o untuk menuliskan kalimat DCallo 0orldD sebanyak &% kali 4* uat algoritma seara deskripti" menggunakan perintah Repeat...Until untuk menuliskan kalimat DCallo 0orldD sebanyak &% kali
4. Perteman 4 2 Pengenalan Variabel9 T0pe )ata9 Operator a. Peba' !Variable# Peubah (:ariabel) adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan memanggil kembali apabila dibutuhkan* Setiap .ariabel akan mempunyai nama (identi"ier) dan nilai* :ariable digunakan untuk menyimpan data* #engan demikian tanpa .ariabel, sebuah rogram tidak
akan dapat melakukan apa/apa* pendeklarasian .ariable bersi"at opsional, maksudnya 1nda bisa mendeklarasikannya atau tidak* ila 1nda memberi nilai pada suatu .ariable, 1nda telah mendeklarasikan .ariable tersebut* Sebagai ontoh < 5 4%? -- bernilai 4% 1turan/aturan tersebut yaitu< a) Qama .ariabel harus diawali dengan huru"* b) Tidak boleh menggunakan spasi pada satu nama .ariabel* Spasi bisa diganti dengan karakter undersore (R)* ) Qama .ariabel tidak boleh mengandung karakter/karakter khusus, seperti < *,N, /, , -, , , O, (, ) dan lain/lain* d) Qama .ariabel tidak boleh menggunakan kata/kata kuni d bahasa Pemrograman
b.
T0pe )ata Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam pemrograman komputer*
$.
Konstanta Konstanta adalah .ariabel yang nilai datanya bersi"at tetap dan tidak bisa diubah* Campir sama dengan .ariabel, konstanta juga digunakan untuk penyimpanan nilaisementara* Qamun perbedaan konstanta dengan .ariabel adalah pada konstanta tidak dapat mengubah nilainya jika sudah dideklarasikan* 8ara pendeklarasiannya pun berbeda dengan .ariabel* Pada konstanta digunakan keyword +onstD untuk mendeklarasikan .ariable*
Sebagai 8ontoh 8onst phi5'*&= 8onst y5Uhallo worldU d.
Operator ;perator adalah simbol yang digunakan dalam program untuk melakukan suatu operasi* ;perator berguna untuk melakukan suatu operasi pada suatu nilai* ;perator pada Pasal sangatlah umum sehingga mudah untuk dipahami* #isini kita akan membahas operator yang sering digunakan*
,enisOperator
1ritmatika
Perbandingan
>ogika
Operator V )( N /
5 5 5 1nd ;r or
(onto' 4V$ $N(4/=) &$ $-$ $N$ $/&
15$ 1$ 1$ 15$ 15$ 1$ 1and 1or 1 or
Keterangan 1kar Kurung Perkalian Pembagian Penjumlahan Pengurangan
Samadengan >ebih keil >ebihbesar >ebihkeilsamadengan >ebihbesarsamadengan Tidaksamadengan Truejikaadanbtrue Truejikaaorbtrue True jika a dan b true, tapi tidak keduanya
Test "ormati" &* Tentukan salah atau benar pada nama/nama .ariabel berikut ini* Jika salah obalah berikan alasan* a* nama*guru b* Qama7uru * $
d* harga-buku e* hargaPeruku $* Tentukan tipe data yang ook untuk hal/hal berik ut ini (perhatik an ini bukan nama .ariabel) dan jelaskan alasannya* a* Jumlah murid b* erat badan * Tinggi badan d* Qama siswa e* Tempat lahir "* Tanggal lahir 5.
Perteman 5 2 Psedo$ode Qotasi 1lgoritmik yang baik adalah notasi yang mudah dibaa dan mudah pula ditransalasikan
ke dalam notasi bahasa pemrograman* Qotasi algoritmik berupa pseudo/ode mempunyai korespondensi dengan notasi bahasa pemrograman sehingga proses penerjemahan dari pseudo/ode ke kode program menjadi lebih mudah* 8ontoh sebuah pernyataan dalam notasi deskripti" Tulis nilai dan y maka pseudo/ode nya dalam notasi algoritmik mungkin ditulis sebagai< 0rite (,y) notasi write berarti nilai dietak ke piranti keluaran* 1lgoritmik< 0rite (,y) ahasa pasal 0rite (,y) 8ontoh sebuah pernyataan dalam notasi deskripti" !sikan nilai ke dalam min Maka notasi pseudo/ode nya dalam notasi algoritmik menjadi< minW 1lgoritmik minW
ahasa Pasal Min<5? 8ontoh sebuah pernyataan dalam notasi deskripti" 3ekam nilai ke dalam min Maka notasi pseudo/ode nya dalam notasi algoritmik menjadi< 0rite (UMasukan nila < U) 3ead (min) 1lgoritmik 3ead (min) ahasa Pasal 0rite (Umasukan nila < U)? 3ead (min)? 8ontoh < Algoritmi/ Xprogram penjumlahanY #eklarasi 1
*a'asa pas$al Program penjumlahan? 9ses rt? :ar 1,,8
write(8) Lati'an pra/te/2 Pada suatu penginapan memiliki perhitungan pembayaran nginap sebagai berikut < Jumlah bayar dihitung dari lama menginap dikali dengan harga kamar per hari*
Program nginap #eklarasi >m < integer Ck < real 1lgoritma 0rite (Z>ama menginap < Z) 3ead (lm) 0rite (ZCarga kamar per hari < Z) 3ead (hk) jmlWlmhk write (ZJumlah bayar < Z,jml) Terjemahkan algoritma diatas kedalam bahasa pemrograman Turbo Pasal Test "ormati" Proses program yang dikehendaki<
Masukan / anyaknya barang yang dibeli (nama .ariable Lty) / Carga satuan barang (nama .ariable hrgbrg) 3umus Jumlah bayar (nama .ariable jmlbyr) dihitung dari banyaknya barang yang dibeli dikali harga satuan barang Keluaran /
Jumlah bayar
Tampilan dila0ar
anyaknya barang < Carga satuan < Jumlah bayar < Terjemahkanlah studi kasus tersebut kedalam bentuk algoritma dan kedalam bahasa pemrograman pasal 8atatan < data banyak barang, harga satuan diinput sedangkan jumlah bayar otomatis <.
Perteman < 2 %lo&$'art6Penggnaan tool "lo&$'art 2lowhart adalah gambaran dalam bentuk diagram alir dari algoritma/algoritma dalam suatu program, yang menyatakan arah alur program tersebut*
erikut adalah beberapa simbol yang digunakan dalam menggambar suatu "lowhart < SIM*OL
NAMA
%UNGSI
TERMINATOR
Permulaan-akhir program
GARIS ALIR !%LO; LINE#
1rah aliran program
PREPARATION
Proses inisialisasi-pemberian harga awal
PROSES
Proses perhitungan-proses pengolahan data
INPUT6OUTPUT )ATA
Proses input-output data, parameter, in"ormasi
PRE)E%INE) PRO(ESS !SU* PROGRAM#
Permulaan sub program-proses menjalankan sub program
)E(ISION
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya
ON PAGE (ONNE(TOR
Penghubung bagian/bagian "lowhart yang berada pada satu halaman
O%% PAGE (ONNE(TOR
Penghubung bagian/bagian "lowhart yang berada pada halaman berbeda
#ari ontoh algoritma di atas tentang menentukan apakah suatu bilangan adalah bilangan ganjil atau bilangan genap, "lowhart dari program adalah sebagai berikut <
Start
Input Bilanga n Hitung sisa agi antara ilangan !engan 2
"
"pa#a h Sisa $ % Y &eta# 'enap
T
&eta# 'an(il
n! "
Test %ormati" &* uat "lowhart atau langkah/langkah mematikan komputer yang benar $* uat "lowhart diagnosis komputer yang mengalami kerusakan '* uat "lowhart pengetesan jaringan komputer ). Algoritma Per$abangan T1an Pembela1aran Setelah mengikuti kegiatan belajar $ ini siswa diharapkan dapat < 1) Memahami struktur algoritma 2) Menganalisis data dalam suatu algoritma perabangan Uraian Materi -. Perteman -2 per$abangan - /ondisi Qotasi algoritmik untuk analisis dengan satu kasus adalah dengan menggunakan kontruksi !2 TCEQ (jika F maka) dalam bentuk pernyataan<
X#alam bentuk notasi algoritmikY
Qotasi 2lowhart
!" k!ndisi then aksi endi"
Pernyataan diatas berarti bahwa aksi hanya dilaksanakan bila kondisi bernilai benar (true)* ila kondisi salah ("alse), tidak ada aksi apa pun yang dikerjakan* Kata endi" sengaja kita tambahkan untuk mempertegas awal dan akhir !2/TCEQ*
8ontoh Studi kasus<
X#alambentuknotasialgoritmikY
Qotasi2lowhart
Program genap #eklarasi < integer 1lgoritma 3ead () !" mod $ 5 % then 0rite (ZgenapU) endi"
Lati'an pra/te/2 Pada suatu hotel memiliki perhitungan tentang pembayaran menginap yaitu< Jumlah bayar dihitung dari lama menginap dikali dengan harga kamar-hari* Jika jumlah bayar diatas sama dengan &%%%%%, maka mendapat potongan &%[, jika tidak potongan tidak dapat* Total akhir bayar dihitung dari jumlah bayar dikurangi potongan*
Program nginap #eklarasi >m
ama menginap< Z) 3ead (lm) 0rite (ZCarga kamar per hari< Z) 3ead (hk) JmlWlmhk !" jml &%%%%% then yrakhWjml F (jml%*&) Else byrakhWjml endi" write (ZJumlah bayar < Z,jml) 0rite (ZTotal bayar akhir < Z,byrakh) uat "lowhart untuk algoritma di atas dan terjemahkan kedalam bahasa pemrograman pasal Test "ormati"= Proses program yang dikehendaki<
Masukan / /
Qama siswa (nana .ariable namasis) Qilai (nama .ariable nilai)
3umus Keterangan nilai (nama .ariable KETQ!>) ditentukan dari nilai ujian 8, jika nilai 8 diatas sama dengan 4@, maka .ariable KETQ!> berisi +lulusD, jika tidak .ariable KETQ!> berisi +gagalD Keluaran / Keterangan nilai Tampilan di la0ar
Qama siswa < Qilai < Keterampilan nilai < Terjemahkanlah studi kasus tersebut kedalam bentuk algoritma, "lowhart dan kedalam bahasa pemrograman pasal 8atatan < nama siswa dan nilai di input sedangkan keterangan otomatis 3.
Perteman 32 per$abangan 3 /ondisi Kontruksi !2/TCEQ hanya menyediakan satu alternati" aksi jika suatu persyaratan (kondisi) dipenuhi* Kadang/kadang kita perlu memilih melakukan aksi alternati.e jika suatu kondisi tidak memenuhi* Jadi, ada dua kasus, tetapi hanya salah satu dari keduanya yang harus dipilih satu untuk
dikerjakan* Qotasi algoritmik untuk masalah dengan dua buah kasus adalah dengan menggunakan kontruksi !2/TCEQ/E>SE (jika/maka/kalau tidak)
X#alam bentuk notasi algoritmikY
Qotasi 2lowhart
!" k!ndisi then Aksi3 else aksi$ endi"
8ontoh Studi kasus<
X#alam bentuk notasi algoritmikY
Qotasi 2lowhart
Program genap #eklarasi < integer 1lgoritma 3ead () !" mod $ 5 % then 0rite (ZgenapU) Else 0rite (ZganjilU) endi"
Lati'an pra/te/2 Pada suatu hotel memiliki perhitungan tentang pembayaran menginap yaitu< Jumlah bayar dihitung dari lama menginap dikali dengan harga kamar-hari* Jika jumlah bayar diatas sama dengan $%%%%%, maka mendapat potongan $%[ dan keterangan +#apat #isountD, jika tidak maka keterangan +Tida k #apat #isountD* Total akhir bayar dihitung dari jumlah bayar dikurangi potongan*
Program nginap #eklarasi >m
yrakhama menginap < Z) 3ead (lm) 0rite (ZCarga kamar per hari < Z) 3ead (hk) JmlWlmhk !" jml $%%%%% then yrakhWjml F (jml%*$) KetW Z#apat disountU Else byrakhWjml KetW ZTidak dapat disountU Endi" 0rite (ZJumlah bayar < Z,jml) 0rite (ZKeterangan < Z,ket) 0rite (ZTotal bayar akhir < Z,byrakh) uat "lowhart untuk algoritma di atas Test "ormati" Proses program yang dikehendaki<
Masukan / Qama karyawan (nama .ariable namakry) / 7aji pokok (nama .ariable gapok) / Jumlah jam kerja (nama .ariable jmljamk) 3umus 7aji pokok (nama .ariable gator) dihitung dari gaji pokok dikali jumlah jam kerja* Jika gaji kotor diatas sama dengan 4%%%%% dikenakan pajak (nama .ariable ta) 4[ dan pada .ariable keterangan (nama .ariable ket) diisi +pajakD, sebaliknya jika gaji kotor dibawah 4%%%%%, tidak dikenakan pajak dan .ariable keterangan diisi +ebas PajakD, gaji bersih yang diterima (nama .ariablenya gjterima) dihitung dari gaji kotor yang diterima (nama .ariable gjterima) dihitung dari gaji kotor dikurangi pajak Keluaran / Jumlah bayar Tampilan di la0ar
Qama karyawan < 7aji pokok < Jumlah jam kerja < 7aji kotor < Pajak < 7aji bersih < Keterangan < Terjemahkanlah studi kasus tersebut kedalam bentuk algoritma, "lowhart dan kedalam bahasa pemrograman pasal 8atatan < nama karyawan, gaji pokok dan jumlah jam kerja di input sedangkan gaji kotor, pajak, gaji bersih dan keterangan otomatis*
4.
Perteman 42 Per$abangan lebi' dari 3 /ondisi Masalah yang mempunyai tiga buah kasus atau lebih dapat dianalisis dengan intruksi !2/ TCEQ/E>SE bertingkat/tingkat*
X#alam bentuk notasi algoritmikY
!" k!ndisi3 then Aksi3
Qotasi 2lowhart
Else !" k!ndisi5 then Aksi5 Else !" k!ndisi6 then Aksi5 Endi" Endi" Endi"
8ontoh Studi kasus<
X#alam bentuk notasi algoritmikY
Qotasi 2lowhart
Program genap #eklarasi < integer 1lgoritma 3ead () !" % then 0rite (Znegati"U) Else !" % then 0rite (Zpositi"U) Else !" 5 % then 0rite (ZnolU) Endi" endi" endi"
Lati'an pra/te/ 2 Pada suatu hotel memiliki perhitungan tentang pembayaran menginap yaitu< Jumlah bayar dihitung dari lama menginap dikali dengan harga kamar-hari* Ketentuan disount dapat dilihat pada tabel dibawah ini*
Jumlahbayar Jml'%%%%% $%%%%% jml '%%%%% &%%%%% jml $%%%%% &%%%%% jml Program nginap #eklarasi >m
#isount '%[ $%[ &%[ %
JmlWlmhk !" jml '%%%%% then yrakhWjml F (jml%*$) Else !" jml 5 $%%%%% then byrakhWjml KetW ZTidak dapat disountU Endi" 0rite (ZJumlah bayar < Z,jml) 0rite (ZKeterangan < Z,ket) 0rite (ZTotal bayar akhir < Z,byrakh) uat "lowhart untuk algoritma di atas Test "ormati" 2 Proses program yang dikehendaki
Masukan / Qomor induk mahasiswa (nama .ariable nim) / Qama siswa (nama .ariable namasis) / Qilai 8 (nama .ariable nilaiR) 3umus Qilai mutu huru" (nama .ariable inde) ditentukan dari tabel di bawah ini Qilai Qilai 8 5 B4 A% 5 nilaiR B4 44 5 nilaiR A% =% 5 nilaiR 44 'H5nilaiR
Mutu Curu" 1 8 # E
Keterangan nilai (nama .ariable KETQ!>) ditentukan dari nilai ujian 8, jika nila 8 diatas sama dengan 4@, maka .ariable KETQ!> berisi +>9>9SD, jika tidak .ariable KETQ!> berisi +7171>D Keluaran Mutu huru" dan Keterangan Qilai Tampilan dilayar Qomor induk Mahasiswa < Qama siswa < Qilia 8 < Mutu huru" < Keterangan nilai < Terjemahkanlah studi kasus tersebut kedalam bentuk algoritma, "lowhart dan kedalam bahasa pemrograman pasal 8atatan < nomor induk mahasiswa, nama siswa dan nilai 8 diinput sedangkan mutu huru", keterangan otomatis 5.
Perteman 52 Per$abangan bersarang 9ntuk masalah dengan dua kasus atau lebih, kontruksi ase dengan menyederhanakan penulisan !2/TCEQ/E>SE yang bertingkat/tingkat sebagaimana pada ontoh/ontoh sebelumnya ini* Kontruksi 81SE sebagai berikut<
X#alam bentuk notasi algoritmikY Program genap #eklarasi < integer 1lgoritma 3ead () 8ase mod $
Qotasi 2lowhart
% < write (ZgenapU) & < write (ZganjilU) Endase
8ontoh Studi kasus<
X#alam bentuk notasi algoritmikY
Qotasi 2lowhart
Program genap #eklarasi < integer 1lgoritma 3ead () !" % then 0rite (Znegati"U) Else !" % then 0rite (Zpositi"U) Else !" 5 % then 0rite (ZnolU) Endi" endi" endi"
8ontoh Studi kasus<
X#alam bentuk notasi algoritmikY Program empatpersegipanjang #eklarasi Qomormenuuas,keliling,diagonal
Qotasi 2lowhart
8ase nomormenu &< read (panjang, lebar) luasWpanjanglebar write (luas) $< read (panjang, lebar) kelilingW$panjangN$lebar write (keliling) '< 3ead (panjang, lebar) diagonalWsLrt(panjangpanjangNlebarlebar) write (diagonal) =< write (Zkeluar program\ sampai jumpaU) endase
Lati'an pra/te/ 2 Program nginap #eklarasi >m < integer < har Ck < real Jml < real yrakh < real 1lgoritma 0rite (Zlama menginap < Z) 3ead (lm) 0rite (Zharga kamar per hari < Z) 3ead (hk)
jmlWlmhk while true do write (Zjumlah beli < Z,jml) write (Z Pilihan U) write (Z&* '%%%%% F keatasU) write (Z$* $%%%%% jml 5 '%%%%%U) write (Z'* &%%%%% jml 5 $%%%%%U) write (Z=* Kebawah F &%%%%%U) write (Z=* SelesaiU) write (ZPilihan anda< Z) read () depend on () 5 Z&U< byrakhWjml/(jml%*') 5 Z$U< byrakhWjml/(jml%*$) 5 Z'U< byrakhWjml/(jml%*&) 5 Z=U< byrakhWjml enddepend write (ZTotal bayar akhir < Z,byrakh) endwhile uat "lowhart untuk algoritma di atas Test "ormati" Proses program yang dikehendaki
Masukan / anyaknya barang yang dibeli (nama .ariable Lty) / Carga satuan barang (nama .ariable hrgbrg) 3umus Jumlah bayar (nama .ariable jmlbyr) dihitung dari banyakn ya barang yang dibeli dikali dengan harga satuan barang* Jika jumlah bayar diatas @%%%%% dapat diseount $%[, jika
jumlah barang di atas =%%%%% dapat disount &4[, jika jumlah bayar diatas $%%%%% diapat disount &%[* Total bayar akhir (nama .ariable byrakh) dihitung dari jumlah bayar dikurangi disount Keluaran Total bayar akhir Tampilan di layar anyaknya barang < Carga satuan < Jumlah bayar < Menu &* @%%%%% F ke atas $* =%%%%% jml 5 @%%%%% '* &%%%%% jml 5 $%%%%% =* Kebawah F &%%%%% Pilihan anda < Total bayar akhir < Terjemahkanlah studi kasus tersebut kedalam bentuk algoritma, "lowhart dan kedalam bahasa pemrograman pasal 8atatan < nomor induk mahasiswa, nama siswa dan nilai 8 diinput sedangkan mutu huru", keterangan otomatis
Test "ormati" 3 &* uat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan prima atau bukan, kemudian buat "lowhart untuk program tersebut ] $* uat algoritma untuk menetak Q buah bilangan prima yang pertama, kemudian buat "lowhart untuk program tersebut ] '* uat algoritma untuk menentukan jenis akar dar i suatu persamaan kuadrat, kemudian buat "lowhart untuk program tersebut ] =* uat algoritma untuk menghitung jumlah Q suku dari deret aritmatika berikut < Sn 5 ' N A N && N \\ N (=n/&) 4* uat algoritma untuk menghitung nilai "aktorial dari suatu bilangan, kemudian buat "lowhart untuk program tersebut ] *. uat "lowhart untuk menetak pasangan nilai dan dimana hubungan antara dan memenuhi persamaan 5 ' F $ N& dan nilai berubah dari F&% sampai &% ]
E. Algoritma Per langan T1an Pembela1aran Setelah mengikuti kegiatan belajar ' ini siswa diharapkan dapat < &) Memahami struktur algoritma 2) Menganalisis data dalam suatu algoritma perulangan Uraian Materi Struktur pengulangan seara umum terdiri atas dua bagian< &* Kondisi pengulangan, yaitu ekspr esi oole an yang harus dipenuhi untuk melaksanakan pengulangan* Kondisi ini ada yang dinyatakan seara eksplisit oleh pemrograman atau dikelola sendiri oleh komputer (implisit)* 2. adan (%!d) pengulangan, yaitu bagian algoritma yang di ulang
#isamping itu, struktur pengulangan biasanya disertai dengan bagian< &* !sinisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali $* Terminasi, yaitu aksi yang dilak ukan setelah pengulangan selesai dilaksanakan !nisialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisialisasi umumnya diperlukan* Struktur pengulangan seara umum inisialisasi
1wal pengulangan adan pengulangan 1khir pengulangan ter"inasi -.
Perteman -2 Perlangan dengan /ondisi di a&al !;'ile>)o# entuk umum pernyataan 0C!>E adalah
0hile kondisi do 1ksi Endwhile 1ksi dilaksananakan berulangkali selama kondisi bernilai true* Jika kondisi bernilai "alse, badan pengulangan tidak akan dimasuki, yang berarti pengulangan selesai* Menetak pesan +Callo worldD sebanyak &% kali Program menetakbanyakRhalloworld #eklarasi ! < integer 1lgoritma iW& while ! &% do Xulangi sebanyak &% kaliY write (Zhello worldU) iWiN& X l!!p variantY endwhile
Lati'an pra/te/ -2 Menetak angka dari angka & s*d &% Program etaksampai&% #eklarasi K < integer 1lgoritma iW& while ! &% do write (i)
iWiN& endwhile Lati'an pra/te/ 32 Menetak angka angka & sampai Q Program etak&sampaiQ #eklarasi Q
Qotasi 2lowhart
Lati'an pra/te/ 42 Menghitung &N$N'N\NQ (Q%) Program penjumlahanderet #eklarasi Q < integer ! < integer Jumlah < integer 1lgoritma 3ead(Q) jumlahW% iW& while i Q do jumlahWjumlahNi iWiN&
endwhile write (jumlah) Lati'an pra/te/ 52 Menghitung rata/rata Program hitungrataRrata #eklarasi Q < integer < integer ! < integer Jumlah < integer 3atarata < real 1lgoritma 3ead(Q) iW& while i Q do read () jumlahWjumlah iWiN& endwhile ratarataWjumlah-n write (ratarata) Lati'an pra/te/ <2 Program melunurkanroket #eklarasi ! < integer 1lgoritma iW&%% while i % do write (i) iWi/& endwhile write (Z7o\*U) Test "ormati" 2 3ubah algoritma pada latihan praktek & s*d 4 kedalam bentuk "lowhart dan terjemahkan kedalam bahasa pemrograman pasal
3.
Perteman 32 Perlangan dengan /ondisi di a/'ir !Repeat>Until# entuk umum pernyataan 3EPE1T adalah
3epeat 1ksi 9ntil k!ndisi Qotasi ini mendasarkan pengulangan pada kondisi oolean* 1ksi di dalam badan kalang diulang/ulang sampai kondisi bernilai true* #engan kata lain, jika kondisi masih "alse, proses pengulangan masih terus dilakukan * karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada pernyataan yang mengubah nilai peubah kondisi*
Menetak pesan +Callo worldD sebanyak &% kali Program menetakbanyakRhalloworld #eklarasi ! < integer 1lgoritma iW& repeat write (Zhello worldU) iWiN& X l!!p variantY until ! &%
Lati'an pra/te/ -2 Menetak angka dari angka & s*d &% Program etaksampai&% #eklarasi K < integer 1lgoritma iW& 3epeat write (i) iWiN&
until i &% Lati'an pra/te/ 32 Menetak angka angka & sampai Q Program etak&sampaiQ #eklarasi Q
Qotasi 2lowhart
Program hitungrataRrata #eklarasi Q < integer < integer ! < integer Jumlah < integer 3atarata < real 1lgoritma 3ead(Q) iW& repeat read () jumlahWjumlah iWiN& until ! n ratarataWjumlah-n write (ratarata) Lati'an <2 Program melunurkanroket Program pelunuranroket #eklarasi ! < integer 1lgoritma iW&%% repeat write (i) iWi/& until ! % write (Z7o\*U) Test "ormati" 2 3ubah algoritma pada latihan praktek & s*d 4 kedalam bentuk "lowhart dan terjemahkan kedalam bahasa pemrograman pasal
4.
Perteman 42 Perlangan sebagai pen$a$a' nai/ !ntruksi "or digunakan untu menghasilkan pengulangan sejumlah kali yang telah dispesi"ikasikan* Jumlah pengulangan diketahui atau dpat ditentukan sebelum eksekusi* 9ntu menaah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah ( varia%le) penaah (c!unter)* Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan* Jika aah pengulangan sudah menapai jumlah yang dispesi"ikasikan, maka proses pengulangan berhenti*
entuk umum pernyataan 2;3 adalah 2or penaahWnilaiRawal to nilaiRakhir do 1ksi end"or Qotasi ini mendasarkan pengulangan pada kondisi oolean* 1ksi di dalam badan kalang diulang/ulang sampai kondisi bernilai true* #engan kata lain, jika kondisi masih "alse, proses pengulangan masih terus dilakukan * karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada pernyataan yang mengubah nilai peubah kondisi* Menetak pesan +Callo worldD sebanyak &% kali Program menetakbanyakRhalloworld #eklarasi ! < integer 1lgoritma 2or iW& to &% do 0rite (ZCallo 0orldU) End"or Lati'an pra/te/ -2 Menetak angka dari angka & s*d &%
Program etaksampai&% #eklarasi i < integer 1lgoritma 2or iW& to &% do write (i) end"or Lati'an pra/te/ 32 Menetak angka angka & sampai Q Program etak&sampaiQ #eklarasi Q
1lgoritma 3ead(Q) 2or iW& to Q do write (i) end"or Lati'an pra/te/ 42 Menghitung &N$N'N\NQ Program penjumlahanderet #eklarasi Q < integer ! < integer Jumlah < integer 1lgoritma 3ead(Q) jumlahW% 2or iW& to Q do jumlahWjumlahNi End"or write (jumlah) Lati'an pra/te/ 52 Menghitung rata/rata Program hitungrataRrata #eklarasi Q < integer < integer ! < integer Jumlah < integer 3atarata < real 1lgoritma 3ead(Q) 2or iW& to &% do read () jumlahWjumlah N
end"or ratarataWjumlah-n write (ratarata) Test "ormati" 2 3ubah algoritma pada latihan praktek & s*d = kedalam bentuk "lowhart dan terjemahkan kedalam bahasa pemrograman pasal
5.
Perteman 52 Perlangan sebagai pen$a$a' trn !ntruksi "or digunakan untu menghasilkan pengulangan sejumlah kali yang telah dispesi"ikasikan* Jumlah pengulangan diketahui atau dpat ditentukan sebelum eksekusi* 9ntu menaah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah ( varia%le) penaah (c!unter)* Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan* Jika aah pengulangan sudah menapai jumlah yang dispesi"ikasikan, maka proses pengulangan berhenti*
entuk umum pernyataan 2;3 adalah 2or penaahWnilaiRakhir downto nilaiRawal do 1ksi end"or Qotasi ini mendasarkan pengulangan pada kondisi oolean* 1ksi di dalam badan kalang diulang/ulang sampai kondisi bernilai true* #engan kata lain, jika kondisi masih "alse, proses pengulangan masih terus dilakukan * karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada pernyataan yang mengubah nilai peubah kondisi* Menetak pesan +Callo worldD sebanyak &% kali Program menetakbanyakRhalloworld #eklarasi ! < integer 1lgoritma 2or iW&% downto & do 0rite (i) End"or 0rite (Zgo\*U)
Test %ormati" &* uatlah algoritma untuk menghitung jumlah Q buah bilangan ganjil pertama (yaitu &N'N4N****) atatan* Q adalah bilangan bulat tidak negati" $* uatlah algoritma untuk menghitung jumlah bilangan ganjil dari & sampai Q (yaitu &N'N4N***NQ)* (perhatikan perbedaan soal latihan ini dengan soal nomor &)
%. *a'asa Pemrograman T1an Pembela1aran Setelah mengikuti kegiatan belajar = ini siswa diharapkan dapat < &) Menerapkan bahasa pemrograman $) Mengolah algoritma ke dalam be ntuk kode program komputer Uraian Materi -. Perteman -2 Pengenalan ba'asa pemrograman !*a'asa Pas$al# ahasa Pasal merupakan bahasa yang sangat populer di dunia, terlebih karena digunakan sebagai bahasa untuk mengajarkan pemrograman terstruktur bagi para siswa-mahasiswa di pelbagai sekolah SMK-perguruan tinggi, baik di !ndonesia maupun negara lainnya* Sebagai bahasa pemrograman yang terstruktur, bahasa ini menyediakan sejumlah kontrol (berupa 3EPE1T, 0C!>E dan 2;3) serta mendukung pembuatan program yang tersusun atas sejumlah blokblok keil (yang dikenal dengan sebutan rutin pada berbagai bahasa pemrograman)* lok/blok keil ini dapat dipakai untuk membentuk blok yang lebih besar, dan seara keseluruhan membentuk program kerja* Keuntungan dari pemrograman terstruktur, program mudah dibuat, dipahami dan dikembangkan* Penipta bahasa Pasal adalah Qiklaus 0irth (Eidgen;ssishe Tehnishe Cohshule, ^urih, Swiss)* Qama Pasal sendiri diambil untuk mengenang dan mengabadikan seorang matematikawan Peranis bernama laise Pasal (&@$'/&@@$), penemu mesin penjumlah mekanis yang pertama kali*
ahasa Pasal lahir sebagai hasil pengembangan dari bahasa 1>7;>/@%* :ersi pertama Pasal munul pada tahun &HA% dan laporan pertama mengenai bahasa ini baru dipublikasikan pada tahun &HA&* Pada tahun &HA=, buku berjudul Pascal 7ser anual and ep!rt dipublikasikan* uku ini ditulis oleh Qiklaus 0irth dan Kathleen Jensen* Kepopuleran Pasal berkembang seiring dengan berkembangnya P8* Pada plat"orm ini terdapat sejumlah kompiler Pasal* Salah satunya Turbo Pasal, yang dikeluarkan oleh B!rland nternati!nal* Turbo Pasal telah mengalami perubahan semenjak .ersinya yang pertama* Teratat pada tahun &HH$, Turbo Pasal .ersi A*% telah dirilis* ang menarik, Turbo Pasal bukanlah sekedar kompiler* Turbo Pasal menyediakan suatu lingkungan terpadu (dikenal dengan sebuta n !#E, ntegrated 1evel!p"ent 8nvir!n"ent), yang diantaranya berisi < &) Kompiler (untuk mengkompilasi program menjadi suatu objek yang dipahami oleh komputer) $) #ebugger (untuk menari kesalahan program) ') >inker (untuk menggabungkan "ile objek dan "ile pustaka serta membentuk "ile e9ecuta%le) =) Editor (untuk menulis program sumber) Kompiler (N>inker) yang tersedia dapat dipakai untuk mengkompilasi program menjadi "ile yang e9ecuta%le (dapat dieksekusi seara langsung dari prompt #;S)* Qamun demikian pemrogram juga
dapat memilih agar kompilasi dilakukan ke memori, sehingga pembuatan dan pengujian program dapat dilakukan dengan epat* Cal ini sangat berman"aat pada masa pembuatan-pemodi"ikasian program* Sebagai perluasan dari pengembangan program seara modular (tersusun atas sejumlah modul), Turbo Pasal juga memungkinkan pemrogram untuk membuat suatu pustaka yang berisi sejumlah prosedur, "ungsi ataupun elemen/elemen yang lain, yang dikompilasi seara terpisah* Kemudian pustaka/pustaka tersebut dapat dipergunakan oleh suatu program, tanpa perlu melibatkan kode-program sumbernya* Modul seperti ini biasa disebut unit* Semenjak .ersi 4*4, Turbo Pasal menyediakan kemampuan pemrograman (P;)* Pemrograman berorientasi objek yang terkenal dengan sebutan ;;P ($%&ect-$riented Pr!gra""ing) merupakan suatu metode pemrograman yang akhir/akhir ini sangat populer* ;;P atau P; mengkombinasikan data dan "ungsi atau prosedur yang mengaksesdata menjadi suatu wadah yang disebut objek* Metode pemrograman ini dirasakan dapat mengatasi kesulitan yang timbul pada pemrograman yang besar dan kompleks, sehingga dapat meningkatkan produkti.itas pemrogram* Turbo Pasal merupakan bahasa pemrograman yang serbaguna* 1nda dapat menggunakannya untuk tujuan komputasi, pembuatan permainan (ga"e) ataupun masalah masalah Struktur ahasa Pasal Judul Program judulnya? 9ses unitnya? agian #eklarasi >abel namalabelnya? 8onst nama5nilai onstantanya? Type namatypeisting Programnya 9ses 8rt? egin 0rite>n( ZSayaU )? 0rite( ZelajarU )? 0rite>n( ZTurboU )? 0rite( ZPasalU )? 0rite( Z:ersi A*%U )? End* Tekan 8trl 2H untuk ekseskusi program Tekan 24 untuk melihat hasilnya Casilnya < Saya elajar Turbo Pasal :ersi A*% Tugas< uatlah Program etak dilayar iodata diri anda 3.
Perteman 32 Pengenalan Tools6%rame&or/ pengembangan program
ah, kurang lebih seperti itulah tampilan awal Trbo Pas$al, dari gambar diatas kita bisa lihat di Turbo Pasal memiliki A buah menu utama yang terdiri dari < %ile9 Edit9 Rn9 (ompile9 Options9 )ebg9 dan *rea/ 6 ;at$'. 9ntuk memilih salah satu dari menu itu anda bisa menekan tombol 1lt N 2 (untuk memanggil menu "ile), atau menekan 1lt N Ghuru" pertama dari menuI* Jika anda ingin kembali ke menu utama anda bisa saja menekan tombol %-?, untuk pindah dari menu satu ke menu yang lain anda juga bisa menekan panah kanan ( ) atau panah kiri ( )* 8ontohnya ketika anda berada di menu %ile maka untuk pindah ke menu (ompile anda ukup menggunakan tombol panah kanan () atau panah kiri ( ), dan anda juga bisa langsung menekan huru" (* 9ntuk menutup menu anda bisa menggunak an tombol Es$. Sebetulnya akan lebh mudah jika memanggil sebuah menu dengan menggunakan hotkey, table dibawah ini adalah hotkey yang digunakan dalam turbo pasal < Kn$i
%ngsi
E/ivalenmen
2&
Mengakti"kan jendela pertolongan*
2$
Menyimpan berkas yang ada pada editor*
2ile - Sa.e
2'
Memanggil program kedalam editor*
2ile - >oad
2=
Mengeksekusi program sampai posisi kursor*
3un - 7o to ursor
24
Memperbesar atau memperkeil jendela yang akti"*
2@
Mengganti jendela yang akti"*
2A
Melaak kedalam subrutin*
2B
Melompati pemanggil subrutin*
2H
Mengakti"kan perintah ZMakeU*
2&%
erpindah dari menu/menu ke jendela yang akti"*
1lt N 2& 1lt N 2' 1lt N 24 1lt N 2@ 1lt N 2H 1lt N 1lt N 8 1lt N # 1lt N E 1lt N 2 1lt N ; 1lt N 3 1lt N 8trl N 2& 8trl N 2$ 8trl N 2' 8trl N 2= 8trl N 2A 8trl N 2B 8trl N 2H 8trl N 2&%
Memanggil jendela pertolongan yang terakhir dibaa* Memilih berkas untuk dimuat*
3un - Trae into
8ompile - Make
2ile - Pik 2ile - user sreen
Memperlihatkan hasil eksekusi* Mengganti isi jendela yang akti"*
8ompile
Mengkompilasi program* Mengakti"kan menu reak - 0ath* Mengakti"kan menu ompile* Mengakti"kan menu debug* Mengakti"kan editor* Mengakakti"kan menu "ile* Mengakti"kan menu option* Mengakti"kan menu run* Keluar dari Turbo Pasal dan kembali ke #;S* Menampilkan menu pertolongan bahasa* Menghentikan pembetulan* Menampilkan isi tumpukan* Melakukan penghitungan atau mengubah nilai peubah* Menambahkan ungkapan pada jendela wath* Toggles reakpoint*
3un - Program reset #ebug - 8all Stak #ebug - E.aluate - 1dd 0ath - Toggle breakpoint 3un - 3un
Menjalankan program* Menampilkan .ersi layar monitor
Qah, itu tadi menu adalahdibeberapa hotkey mempelajari Turbo Pasal ini*yang ada pada Turbo Pasal, sekarang kita langsung aja yah Men %ile #idalam menu 2ile banyak submenu yang bisa dipilih misalkan saja perintah >oad - 2' yang ber"ungsi untuk memanggil berkas yang sudah tersimpan, dan banyak lainnya* Sbmen Load Pilihan ini digunakan untuk memanggil program dari suatu "older atau diretory ke dalam editor* #idalam submenu ini anda juga bisa memilih submenu yang lain dengan hanya menekan tombol huru" depan dari submenu yang dituju, ontohnya anda mau ke submenu New, maka anda tinggal menekan huru" N. Sbmen Pi$/ Pilihan yang satu ini digunakan untuk mengambil salah satu dari beberapa buah program yang sebelumnya telah dimuat ke dalam jendela Edit. Cal ini ditujukan agar kita tidak perlu repot/repot lagi menarinya di submenu load*
Sbmen Ne& Program yang ada di editor akan dihapus dan program yang akan anda tulis dianggap sebagai program yang baru dengan nama Q;Q1ME*P1S, nama ini bisa anda rubah ketika anda mau menyimpannya* Sbmen Save @%3 Pilihan ini digunakan untuk menyimpan suatu program yang sudah di edit ke dalam akram atau "older, jika nama program itu masih Q;Q1ME*P1S maka Turbo Pasal akan menanyakan pada anda, nama apa yang akan anda berikan pada program yang akan disimpan tersebut* 1tau anda juga bisa menekan tombol 2$* Sbmen ;rite to pilihan ini digunakan untuk menggantikan program lama dengan program yang baru (istilah
kerennya $ver:rite\☺)* Jika nama program anda sudah ada pada akram atau "older maka ada .eri"ikasi dari Turbo Pasal untuk penggantian nama* Sbmen )ire$tor0 pilihan ini digunakan untuk menampilkan direktori dan nama/nama "ile yang anda inginkan* 1nda juga bisa menggunakan pilihan Load. Sbmen ('ange )ir Pilihan yang satu ini digunakan untuk menampilkan direktori yang sedang digunakan dan juga bisa digunakan untuk mengganti nama direktori yang baru* Sbmen OS s'ell Perintah ini digunakan bagi anda yang ingin ke tampilan #;S tetapi tanpa mematikan Turbo Pasalnya, untuk kembali lagi ke Turbo Pasal, anda tinggal mengetikan +eitD, tetapi biasanya ketika anda sedang membuat suatu program atau mengedit suatu program perintah ini tidak dapat dijalankan karena kurangnya kapasitas memory* Sbmen Bit @Alt 8 C #ari namanya sudah jelas, perintah ini digunakan untuk keluar dari Turbo Pasal dan kembali ke prompt #;S* Men Edit Perintah edit ini digunakan untuk mengakti"kan editor Turbo Pasal* Men Rn @(trl 8 %D Perintah ini digunakan untuk mengeksekusi program yang sudah anda buat* 1nda juga bisa menekan 8trl N 2H untuk mengeksekusi program anda* Sbmen Program Reset @(trl 8 %3 Pilihan ini digunakan untuk memberitahukan Turbo Pasal bahwa anda selesai dengan pembetulan/ pembetulan dan menginisialisasi debugger untuk operasi yang lain* Pilihan ini sekaligus membebaskan pengingat yang telah dialokasikan dan menutup semua berkas, tetapi tidak merubah nilai/nilai perubah* Pilihan ini sangat berguna jika anda ingin menjalankan pilihan %ile 6 OS s'ell. Sbmen Go to (rsor @%5
Pilihan ini digunakan untuk memulai - melanjutkan eksekusi program dimulai dari posisi saat eksekusi dimulai sampai tempat kursor berada* Jika kursor berada pada statement yang bersi"at eeutable, seperti spasi atau baris komentar, maka eksekusi akan dilanjutkan sampai statement yang bersi"at eeutable* Sbmen Tra$e Into @% Perintah ini digunakan untuk mengeksekusi baris berikutnya, jika ada pemanggilan ke suatu subrutin, maka pelaakan akan dimulai dari statement pertama dari subrutin tersebut* Sekaligus juga akan memuat berkas/berkas atau unit In$lde jika dimungkinkan* Sbmen Step Over Step o.er ini memiliki ara kerja yang hampir sama dengan Trae !nto, hanya saja jika statement adalah sebuah prosedur atau "ungsi, maka keseluruhan subrutin akan dikerjakan sekaligus dan debugger akan berhenti pada statement sesudah pemanggilan ke subrutin* Sbmen User s$reen @Alt 8 %<
Pada umumnya perintah ini digunakan untuk melihat hasil dari program yang telah ompile dan kita run* Pada tampilan ini !#E G!ntegrated #ebugger En.ironmentI berpindah/pindah pada saat anda menjalankan dan mendebug program* Perintah ini juga digunakan oleh 2ile - ;S shell*
Tampilan User S$reen Men (ompile @Alt 8 %D Perintah ini digunakan untuk mengkompile program atau bisa juga kita bilang kalau program yang telah kita buat tadi dengan bahasa pasal di terjemahkan kedalam bahasa komputer agar si komputer ini mengerti apa/apa saja perintah kita* Sbmen Ma/e Pilihan ini digunakan untuk mengakti"kan perintah make, jika "ile yang primer telah diberi nama, maka "ile ini akan dikompilasi, jika tidak maka "ile yang terakhir yang sedang dimuat di editor akan dikompilasi** Pilihan ini sangat berguna jika terdapat beberapa program yang seara "isik terpisah tetapi seara logikanya merupakan suatu kesatuan* Sbmen *ild Perintah ini mirip dengan perintah make, hanya saja perintah build ini si"atnya bebas, sedangkan perintah make hanya akan mengkompilasi "ile/"ile selain "ile yang digunakan*
Sbmen )estination @Memor0 Perintah ini seara umumnya hanya ber"ungsi untuk memilih apakah hasil kompilasi akan disimpan dalam akram atau "older sebagai "ile yang bertipe *EE atau hanya di pengingat utama yang akan hilang pada saat anda keluar dari Turbo Pasal* Sbmen %ind Error #ari namanya anda pasti sudah tahu, yah perintah ini digunakan untuk menentukan lokasi
kesalahan pada misalnya saat program dijalankan Grun time errorI*ke >okasi kesalahan dinyatakan dengan "ormat seg
Sbmen (ompiler Pilihan ini didalamnya pun masih banyak perintah yang lainnya seperti pengeekan batas, pengeekan tumpukan dll, seperti yang anda lihat pada gambar di atas* ontohnya pengeekan batas G3ange hekingI adalah sama dengan X`3Y* sekarang saya akan oba jelaskan satu persatu agar lebih jelas dari masing/masing penggunaan ini*
ange checking ;$ff<= Perintah ini digunakan untuk menghidupkan atau mematikan pengeekan batas* Jika dihidupkan, kompiler akan membangkitkan kode yang akan menek batas inde pada array dan string dan juga nilai yang dihasilkan dalam suatu statement pemberian* Pilihan ini sama dengan petunjuk kompiler X`3Y* Stack checking ;$n<= #igunakan untuk menghidupkan atau mematikan pengeekan kesalahan operasi !-;* Jika dihidupkan pada saat terjadi kesalahan operasi !-; proses akan langsung dihentikan* Jika dimatikan, kode kesalahan akan tersimpan dalam "ungsi !; 3esult* Pilihan ini sama dengan penunjuk kompiler X`!Y*
/!rce far calls ;$ff<= #igunakan untuk memilih model pemanggilan terhadap prosedur atau "ungsi yang telah dikompilasi* Model pemanggilan bisa seara "ar atau near* Pilihan ini sama dengan penunjuk kompiler X`2Y* Allign 1ata ;>!rd< = #igunakan untuk mengatur ara penyimpanan perubah dan konstanta bertipe dari byte ke word atau sebaliknya* Pilihan ini sama dengan penunjuk kompiler X`1Y* $verla All!:ed ;$ff< = Mengakti"kan atau menonakti"kan pembakitan kode ;.erlay* Pilihan ini sama dengan penunjuk kompiler X`;Y* ?ar string checking ;Strict< = #igunakan untuk mengendalikan ara pengeekan data string yang digunakan sebagai parameter berubah* Pilihan sama dengan penunjuk kompiler X`:Y*
B!!lean 8valuati!n ;Sh!rt Circuit< = #igunakan untuk memilih pembangkitan kode pada saat operasi logika Goperasi ooleanI dijalankan* Pilihan ini sama dengan penunjuk kompiler X`Y* 2u"eric Pr!cessing ;S!ft:are< = #igunakan untuk memilih pembangkitn kode operasi titik mengambang G"loating pointI yang didukung oleh Turbo Pasal* Pilihan ini juga sama dengan penunjuk kompiler X`QY 8"ulati!n ;$n< = Mengakti"kan atau menonakti"kan linking dengan run F time yang mengemulasikan ke prosessor numeri B%BA* pilihan ini sama dengan penunjuk kompiler X`EY 1e%ug nf!r"ati!n ;$n< = #igunakan untuk membangkitkan atau tidak membangkitkan in"ormasi pada saat didalam program terjadi kesalahan* Pilihan ini sama dengan penunjuk kompiler X`#Y* L!cal S"%!l ;$n< = #igunakan untuk mengakti"kan atau menonakti"kan symbol in"ormasi loal* C!nditi!nal defines= #igunakan untuk menyatakan penunjuk kompiler berkondisi* e"!r si@es= #igunakan untuk mengkon"igurasi peta pengingat* #engan penunjuk kompilerX`MY* Stack Si@e= ukuran segmen tumpukan maksimum @= K dengan standart &@ K* L!: Heap li"it= ukuran heap minimum standart adalah % K*
High Heap li"it= ukuran heap maksimum adalah @44'@% byte* Sbmen Lin/er Pilihan ini digunakan untuk mengatur kon"igurasi built in linker*
ap /ile ;$ff< = Menentukan berapa banyak in"ormasi dalam berkas peta map yang akan dihasilkan* erkas peta akan ditempatkan dalam direktori *EE dengan akhiran *M1P Seg"ent = !n"ormasi segment GQama, 9kuran, 1wal dan 1khir segment dan kelasnyaI* Pu%lic = !n"ormasi segment, semua nama/nama symbol dan alamatnya dan titik masukkan program* 1etailed = segement, in"ormasi symbol dan titik masukkan program dan nomor barisnya dan tabel/ tabel modul* Sbmen Environment Pilihan ini digunakan untuk memberitahukan Turbo Pasal dimana bisa ditemukan berkas yang akan dikompilasi, di link dengan dilengkapi dengan menu/menu pertolongan*
C!nfig Aut! Save ;$ff< = #igunakan untuk menegah kehilangan setting kom"igurasi yang telah anda lakukan* 8dit Aut! Save ;$ff< = #igunakan untuk menegah kehilangan berkas yang disebabkan oleh penyimpanan otomatis pada saat anda menggunakan 3un - Step ;.er atau 3un - 3un*
Backup /iles ;$n< = Seara standard, turbo pasal akan membangkitkan berkas bakup pada saat anda menyimpan berkas* ang biasa kita lihat dengan *1K *a% Si@e ;5< = #igunakan untuk mengatur ukuran Tab pada editor* 9kuran yang diperbolehkan adalah $ sampai &@ dengan de"aultnya B* !!" >ind!:s ;$ff< = Jika di ;n kan maka, Jendela Edit, 0ath, dan ;utput akan diperluas sampai satu layar penuh* Screen Si@e ;5 line< = #igunakan untuk memilih ukuran layar* #engan standard $4 baris, =' baris GE71I atau 4% baris G:71I* Pilihan ini hanya bisa diakti"kan jika perangkat kerasnya mendukung* Sbmen )ire$tories Pilihan menu ini digunakan untuk menunjukkan kepada Turbo Pasal lokasi setiap direktori yang diperlukan*
*ur%! direct!r = #igunakan untuk menemukan berkas kon"igurasi G*TPI dan berkas pertolongan GTurbo*C>PI* 88 *P7 direct!r = #igunakan untuk menyimpan berkas *EE dan *TP9* nclude 1irect!ries = #igunakan untuk menentukan direktori yang berisi !nlude 2ile* 7nit 1irect!ries = #igunakan untuk memberitahu TP dimana berkas/berkas unit berada*
$%&ect 1irect!ries = #igunakan untuk menentukan direktori yang berisi berkas G*;JI* Pick file na"e = #igunakan untuk menentukan nama dan lokasi pik "ile* Current pick file = #igunakan untuk menunjukkan nama dan lokasi pik "ile, jika ada* Sbmen Parameters #igunakan untuk memberikan parameter baris perintah G8ommand >ine parametersI pada program/program yang akan dijalankan* Sbmen Save Option #igunakan untuk menyimpan semua pengaturan dalam menu 8ompiler, En.ironment, dan #iretories dalam berkas kon"igurasi Gstandardnya adalah T93;*TPI Sbmen Retrieve Options #igunakan untuk memuat berkas kon"igurasi yang sebelumnya disimpan dengan pilihan sa.e* Men )ebg Pilihan/pilihan yang ada dalam menu ini terutama digunakan untuk melaak nilai/nilai perubah, menari letak suatu "ungsi atau prosedur dan lain/lain*
Su%"enu 8valuate ;Ctrl + /D< = #engan pilihan ini anda akan dibawa ke suatu jendela dengan ' kotak yang memungkinkan anda untuk menuliskan sembarang nama perubah - ungkapan, menunjukan nilai perubah ungkapan saat itu an memungkinkan anda untuk memberikan nilai yang baru untuk sembarang perubah* Su%"enu Call Stack ;Ctrl + /6< = Pada saat anda melakukan debugging, suatu jendela yang menunjukan da"tar pemanggil prosedur dan "ungsi akan terlihat* Su%"enu /ind Pr!cedure = Memungkinkan anda untuk menuliskan nama prosedur dan "ungsi dan kemudian menari dalam program yang sedang anda akti"kan* Su%"enu ntegrated 1e%ugging ;$n< Jika dipilih ;n, debugging dilakukan menggunakan !#E* Su%"enu Stand Al!ne 1e%ugging ;$ff< Jika diset ;"", dan ompile - destination dipilih ke )is/ debug in"ormation akan ditambahkan ke dalam berkas *EE untuk digunakan oleh Turbo #ebugger* Su%"enu 1ispla S:apping ;S"art< Penampilan pada layar bisa dipilih salah satu dari ' pilihan, Smart, 1lways atau Qe.er* Smart < debugger akan melihat kode yang sedang dieksekusi untuk melihat apakah perlu menampilkan hasilnya ke layar* Al&a0s < pilihan ini akan menyebabkan layar dipindah setiap kali suatu statement dieksekusi* Never < pilihan ini akan memberitahukan debugger untuk tidak melakukan pemindahan layar*
Su%"enu efresh 1ispla = Pilihan ini digunakan untuk memanggil kembali layar !#E* Cal ini perlu, terutama jika program anda merusak tampilan yang sudah ada dalam layar* Men *rea/ 6 ;at$'
Su%"enu Add >atch ;Ctrl + /E< = #igunakan untuk menambahkan rini data, perubah atau ungkapan kedalam jendela wath* Su%"enu 1elete >atch = 9ntuk menghapus ungkapan dalam jendela 0ath pada saat jendela ini terlihat*
Su%"enu 8dit >atch = Pilihan ini akan membawa posisi wath ke kotak input sehingga anda bisa mengubahnya* Su%"enu e"!ve All >atches = Menghapus semua rini dalam jendela wath sekaligus memperkeil ukurannya sampai minimum* Su%"enu *!ggle Breakp!ints ;Ctrl + /F<= mengatur suatu baris sebagai breakpoint* #alam editor breakpoint ditunjukkan dengan highlight tet* Su%"enu Clear All Breakp!ints= Menghapus semua breakpoint yang telah diset* Su%"enu ?ie: 2e9t Breakp!int = #igunakan untuk menggerakkan kursor ke posisi breakpoint berikutnya*
Perinta' )asar nt/ Menggera//an Krsor Tombol
%ngsi
8trl N S atau panah kiri
ergerak ke kiri satu karakter
8trl N # atau panah kanan
ergerak ke kanan satu karakter
8trl N 1 atau 8trl N panah kiri 8trl N 2 atau 8trl N panah kanan
ergerak ke kiri satu kata ergerak ke kanan satu kata
8trl N E atau panah naik
ergerak ke atas satu baris
8trl N atau panah turun
ergerak ke baah satu baris
8trl N 0
Memutar layar ke atas
8trl N ^
Memutar layar kebawah
8trl N 3 atau Pg9p
Kehalaman sebelumnya
8trl N 8 atau Pg#own
Kehalaman berikutnya
Perinta' Krsor Tamba'an Tombol
%ngsi
8trl N 9
Membatalkan kegiatan
8trl N ; N ! atau 8trl N _ N !
Meng F ;n atau meng F ;"" kan autoindent
8trl N P
1wal karakter kendali
8trl N K N # atau 8trl N K N _
Keluar dari editor tanpa menyimpan
8trl N _ N 2
Menari kata
8trl N _ N 1
Menari kata dan menggantinya
8trl N _n
Menari penanda tempat
8trl N _ N 0
Menuju ke posisi kesalahan
8trl N ; N ;
Menyisipkan penunjuk kompiler
2&%
Mengakti"kan menu utama
8trl N 2&
Pertolongan bahasa
2'
Memuat berkas
8trl N ; N 2
Mengisi ;n - ;"" seara optimal
8trl N _ N G
Pasangan tanda kurung kedepan
8trl N _ N I
Pasangan tanda kurung kebelakang
8trl N >
Mengulang penarian terakhir
8trl N _ N >
Menyimpan kembali baris
8trl N K N S atau 2$
Menyimpan dan meneruskan
8trl N Kn
Mengatur penanda tempat
8trl N ! atau Tab
Tab
8trl N ; N T atau 8trl N _ N T
Mode Tab
8trl N ; N 9
9nindent ;n - ;""
Tombol:Tombol Kendali Operasi *lo/ Tombol
%ngsi
8trl N K N
Menghapus blok
8trl N K N :
Memindah blok ke tempat lain
8trl N K N 8
Membuat duplikat blok
8trl N K N 0
Meyimpan blok ke dalam akram
8trl N K N C
Menyembunyikan atau menampilkan blok
8trl N K N 3
Membaa blok dari akram untuk digabung di merge
8trl N K N T
Menandai satu kata
8trl N K N P
Menetak satu blok
8trl N K N !
Mengident blok
8trl N K N 9
Mengunident blok
9ntuk lebih jelasnya tentang pengoperasian blok diatas, lebih baik kita langsung saja praktekan, disini saya akan memberikan ontoh yang paling mudah yaitu mengkopi blok
Tampilan sebelm sat blo/ dipili'
Proedure 2>9*7E31K samapai end GB barisI akan dipilih sebagai blok* Maka kita letakkan kursor kita di huru" p di kata pr!cedure dan kita tekan 8trl N K N * kemudian kursor dipindahkan ke tempat di sebelah kanan d dari kata end dan kita tekan 8trl N K N K* maka tampilan akan berubah menjadi tampilan yang dibawah ini*
Tampilan setela' diblo/
9ntuk mengkopi blok, tempatkanlah kursor dimana blok tersebut akan dikopi* Kemudian tekanlah 8trl N K N 8 maka blok akan dikopi* egitu juga dengan perintah blok yang lain, aranya sama dengan teknik pengkopian diatas\
4.
Perteman 42 Instlasi Tools ba'asa pemrograman
Trbo Pas$al adalah sebuah sistem pengembangan perangkat lunak yang terdiri atas kompiler dan lingkungan pengembangan terintegrasi (dalam bahasa inggris< ntegrated 1evel!p"ent 8nvir!n"ent - 18) atas bahasa pemrograman pasal untuk sistem operasi 8P-M,8P-M/B@ dan MS/#;S, yang dikembangkan oleh orland pada masa kepemimpinan Philippe Kahn* Qama *orland Pas$al umumnya digunakan untuk paket perangkat lunak tingkat lanjut (dengan kepustakaan yang lebih banyak dan pustaka kode sumber standar) sementara .ersi yang lebih murah dan paling luas digunakan dinamakan sebagai Trbo Pas$al* Qama orland Pasal juga digunakan sebagai dialek spesi"ik Pasal buatan orland* orland telah menembangkan tiga .ersi lama dari Turbo Pasal seara gratis disebabkan karena sejarahnya yang panjang khusus untuk .ersi &*%, '*%$, dan 4*4 yang berjalan pada sistem operasi MS/#;S*
erikut Ta 'ap -langkah/langkah penginstalan Turbo Pasal yang dilakukan untuk windows A* &* Pastikan kalian telah memliki aplikasi #os o* #os o yang dipakai adalah .ersi %*A= yang merupakan .ersi terbaru* $* uat sebuah "older di #ri.e 8 bernama TPA, setelah itu opy seluruh isi "older turbo pasal A*% ke "older TPA itu* '* !nstall aplikasi #os o %*A= =* Setelah selesai di install, bukalah aplikasi #os bo 4* >alu ketik mount <TPA, lalu enter @* Setelah mounting selesai ketik <, lalu enter A* Terakhir ketik bintp*ee, lalu en ter* Ta'ap 3 Jika program Turbo Pasal sudah dijalankan, ketik seperti berikut ini* &* program oba? , lal enter $* uses rt? , enter '* .ar nama< string? , enter =* egin enter 4* Lal tab se/ali. write(6masukan nama anda<6)? readln (nama)? enter @* lrsr? enter A* write (6C!6,nama, 6apa kabar6)? enter B* +aps tab n0a, Terakhir ketik End* H* >alu tekan altN", lalu sa.e as ( nama program harus huru" kapital, ontoh P3;731M ) &%* Tekan ompile untuk mengubah program tersebut menjadi .eCe &&* 9ntuk menoba program tekan altNrun, lalu run &$* Jika sudah berhasil ketik apa saja untuk kembali &'* Kemudian 8lose #os o nya Ta'ap 4 9ntuk menjalankan program tersebut, buka kembali #os o nya* >alu lakukan langkah berikut* &* Ketik mount <TPA $* Setelah berhasil di mount ketik < '* Ketik nama program yang kalian sa.e, sebagai ontoh P3;731M*ee =* >alu akan munul pertanyaan c Masu kan nama anda c 4* Ketiklah nama anda @* Terakhir akan munul tulisan c hai***** apa kabar c
Jika sudah sampai pada tahap terakhir, berarti kalian sudah berhasil menggunakan progrma turbo pasal tersebut* Tetapi jika tidak sampai tahap terakhir, maka kalian melakukan kesalahan pada tahap kedua karena tahap $ sama sekali tidak boleh ada kesalahan dalam hal pengetikkan kode di/atas* 5.
Perteman 52 Str/tr ba'asa pemrograman9 standar otpt dalam ba'asa pemrograman9 standar inpt dalam ba'asa pemrograman9 /ompilasi dan e/se/si program dan perbai/an /esala'an
Men1alan/an Program Pas$al Setelah selesai, ek lebih dahulu apakah Program Pasal sudah terinstal* 8aranya < Pilih Start, 1ll Program, periksa da"tar Program apakah Program Pasal sudah ada* Jika ada, klik Turbo Pasal A, kemudian munul menu pilihan* Pilih Turbo Pasal A*% Jika berhasil, maka window Pasal akan tampak di layar seperti gambar di bawah ini*
Sebelum bekerja, tentukan lebih dahulu tempat Program anda akan disimpan* Seara de"ault, Pasal menyimpan program di "older <Program 2ilesTP0ork* Kita dapat membuat "older lain sebagai tempat menyimpan program agar lebih mudah bagi kita untuk mengetahuinya* uat 2older lebih dahulu mis di dri.e # dengan nama P1S81>* Jika "older P1S81> sudah selesai, akti"kan "older tersebut dengan ara < Pilih menu 2ile, 8hange #ir\ , kemudian hapus 8<P3;731&TP0;3K ** Ketik "older seperti berikut < #<P1S81> kemudian tekan Enter 2older P1S81> sudah akti" sehingga program yang dibuat akan tersimpan di "older P1S81>* 4. Mengeti/ Kode Program >angkah berikutnya adalah memulai mengetik Program* uka layar edit dengan ara < Pilih menu 2ile, Qew
1nda langsung mulai mengetik teks program anda* Men0impan Program Teks program yang sudah diketik harus disimpan dengan ara < Pilih Menu 2ile, Sa.e* Ketik nama "ile Program* Qama "ile maksimum B karakter* Jika anda mengetik lebih dari B karakter, maka akan dipotong oleh program* Qama 2ile Program Pas al seara otomatis akan diberi eks tensi P1S, misalnya kita memberi nama 8;QT;C, maka pasal akan menyimpan dengan nama 8;QT;C*P1S* 8ara epat untuk menyimpan "ile program anda dengan menekan tombol 2$* Setiap ada perubahan edit dalam program, simpan lebih dahulu (Tekan 2$) sebelum dijalankan* Jika "ile program yang sedang dibuka, anda ingin menyimpan dengan nama yang lain, maka simpan dengan ara < Pilih menu 2ile, Sa.e 1s* Kemudian ketik nama "ilenya* Men1alan/an Program Pas$al Program Paal yang suda h anda ketik dan sudah disimpan dengan nama "ile, maka langkah selanjutnya menguji apakah program anda sudah benar atau belum* Jalankan program dengan ara < Pilih me nu 3un, 3un* 1tau gunakan ara epat dena ar a < Tekan tombol 8trl dan 2H seara bersamaan* Jika benar, maka program akan berjalan dengan baik teta pi jika masih ada kesal ahan, maka program akan menampilkan in"ormasi dari kesalahan program anda* Perhatikan in"ormasi kesalahan yang ada di layar* Posisi kursor, menunjukkan lokasi dimana terletak kesalahan dalam program anda*
Kesalahan pada gamba r di atas menyatakan bahwa +ada kesalahan tand a ? (titik koma ) ditemukanD* >okasi kesalahan terletak di posisi kursor* Setelah diperiksa, maka kesalahan terletak pada baris sebelumnya (di atas posisi kursor) dimana pada pernyataan readlan(b) tidak ada tanda ? perbaiki dengan menambahkan tanda titik koma, kemudian simpan (2$) dan jalankan kembali* Memb/a %ile Program
Jika program anda sudah tersimpan dan akan dibuka kembali , maka buka program dengan ara < Pilih Menu 2ile, ;pen* Kemudian pilih "ile program anda yang akan dibuka* Mentp ;indo& Kita dapat membuka beberapa "ile pada saat bekerja* Setiap 2ile ditampilkan dalam window masing/masing namun bertupuk sehingga hanya "ile yang paling depan yang tampak di layar* 8ara melihat "ile yang akti" < Pilih menu 0indow, 8asade* Klik "ile yang ingin ditampilkan di layar*
8ara untuk menutup 0indow < Menutup window yang tampak di layar < Pilih menu 0indow, 8lose (1ltN2') Menutup semua window < Pilih menu 0indow, 8lose 1ll Kelar dari Program Jika anda sudah selesai membuat program, maka anda dapat keluar dari Program dengan ara < Pilih Menu 2ile, Eit Men$op0 Kode Program
9ntuk memperepat pengetikan kode program, maka kode program yang sama dapat diopy dengan ara >etakkan kursor di awal teks yang akan di blok* Tekan tombol Shi"t dan tahan, tekan tombol End untuk memblok satu baris* Tekan tombol Shi"t dan tahan, tekan tombol panah ke bawah untuk memblok lebih dari satu baris* 8opy teks yang diblok dengan ara < Pilih menu Edit, 8opy Pindahkan kursor ke posisi tempat meletakkan hasil opy/an* Pilih menu Edit, Paste* Meng'aps Kode Program Capus kode program dengan ara < lok kode program yang akan dihapus Pilih menu Edit, 8ut
G. Tipe )ata9 Variabel9 Operator dan E/spresi T1an Pembela1aran Setelah mengikuti kegiatan belajar 4 ini siswa diharapkan dapat < &) Memahami penggunaan tipe data, .ariable, konstanta, operator dan ekspresi 2) Mengolah data menggunakan konsep tipe data, .ariable, konstanta, operator dan ekspresi Uraian Materi -. Perteman -2 Tipe data9 Variabel dan Konstanta
TIPE Data Tipe data yang dikenal dalam bahasa pasal antara lain < • Tipe data seder'ana - Jenis data yang standar (#asar) &* !nteger $* 3eal
•
•
•
'* Karakter =* oolean Tipe data non standar (user de"ined) &* Enumerated $* Sub/range Tipe data berst/tr &* 1rray $* 3eord '* Set =* 2ile Jenis data Pointer
Integer Jenis data ini merupakan nilai bilangan bulat, yang terdiri atas integer positi", integer negati" dan nol* Pada T93; P1S81> jenis data ini di bagi atas beberapa bagian*
Tipe TE SC;3T!QT !QTE7E3 0;3# >;Q7!QT
9kuranmemori (dalam byte) & & $ $ =
Jangkauan nilai %**$44 /&$B**&$A /'$A@B**'$A@A %**@44'4 /$&=A=B'@=B**$&=A=B'@=A
Operator !nteger terdiri atas < N , / , , #!: dan M;#
:ar Jumlah < byte? egin Jumlah <5 $%%? 0rite>n(ZQilai J9M>1C 5 Z,Jumlah)? End* Casilnya bila dijalankan < Qilai J9M>1C 5 $%%
Real Penulisan untuk jenis data ini selalu menggunakan titik desimal* Qilai konstanta numerik real berkisar dari &E/'B sampai dengan &EN'B dengan mantissa yang signi"ikan sampai dengan && digit* E menunjukkan nilai &% pangkat* Qilai konstanta numerik real menempati memori sebesar @ byte*
8ontoh < &$'*=4 &$'=4* → salah, titik desimal tidak boleh dibelakang &$E4 &$EN4 /&$*'= *&$'= → salah, titik desimal tidak boleh dimuka
Pada T93; P1S81>, jenis data ini dibedakan Tipe
9kuran memori (dalam byte) = B &% B
S!Q7>E #;9>E ETEQ#E# 8;MP
Jangkauan nilai &*4&%E/=4**'*=&%E'B 4*%&%E/'$=**&*A&%E'%B &*H&%E/=H4&**&*&&%E=H'$ /$EN@'N& $EN@'/& **
#igit signi"ikan A/B &4/&@ &H/$% &H/
%$Operator untuk jenis data ini terdiri atas < N , / , dan Kara/ter ang dimaksud dengan jenis data ini adalah karakter tunggal atau sebuah karakter yang ditulis diantara tanda petik tunggal, seperti misalnya Z1U, UaU, U]U, U4U dsb*
#asarnya adalah 1S8!! 8C1318TE3 SET* Misalnya < %'$ pada tabel 1S8!! 8C1318TE3 SET menunjukkan karakter* lank* %'' %=B %A@
] % > dst
String Qilai data string merupakan urut/urutan dari karakter yang terletak di antara tanda petik tunggal* Qilai data string akan menenpati memori sebesar banyaknya karakter stringnya ditambah dengan & byte* ila panjang dari suatu string di dalam deklarasi .ariabel tidak disebutkan, maka dianggap panjangnya adalah $44 karakter*
8ontoh < :ar Kampus < stringG&%I? egin Kampus <5 Z7unadarmaU? 0rite(Kampus)? End*
*oolean Jenis data ini mempunyai nilai T39E atau 21>SE*
;perator untuk jenis data ini adalah < &* >ogial ;perator, yaitu < Q;T, 1Q# dan ;3 $* 3elational ;perator, yaitu < , , 5, 5, dan 5
,enis )ata Non:Standard !User )e"ined# Enmerated. Jenis data ini terdiri atas barisan identi"ier yang terurut dimana setiap identi"ier tersebut dianggap sebagai suatu indi.idual data item (elemen data yang berdiri sendiri)* Pada saat mendeklarasikan jenis data ini kita harus menuliskan semua elemen/elemennya* entuk umum deklarasinya adalah < TFPE nama 7 !dataitem-9 dataitem39 >>.9 dataitemn#=
8ontoh < TPE hari 5 (sen,sel,rab,kam,jum,sab,ming)? TPE warna 5 (red,blue,green,yellow,blak,white)? Setelah jenis data ini dideklarasikan, maka selanjutnya kita dapat mendeklarasikan suatu .ariabel yang berjenis data sama dengan jenis data ini*
Misalnya < TPE namaRhari 5 (sen,sel,rab,kam,jum,sab,ming)? :13 libur < namaRhari? 2ungsi standar yang dapat digunakan pada jenis data ini adalah < P3E#, S988 dan ;3# Misalnya < P3E# (sel) 5 sen S988 (sen) 5 sel ;3# (sen) 5 % ;3# (sel) 5 & dsb Sb:Range. Jenis data ini berupa range dari suatu kumpulan data yang mempunyai urutan** entuk umum deklarasinya adalah <
TPE nama 5 dataRitemRpertama ** dataRitemRterakhir? 8ontoh < TPE jamRkuliah 5 & ** &%? tanggal 5 & ** '&? abjad 5 Z1U ** Z^U? TPE bulan 5 (jan,"eb,mar,apr,mei,jun,jul,agt,sep,okt,no.,des)? hari 5 (sen,sel,rab,kam,jum,sab,ming)? ata 5 agt ** jan? pta 5 "eb ** jun? hariRkerja 5 sen ** jum? Variabel Perintah #asar-Sederhana Pasal 0rite ( ZTet-tulisanU,:ariabel)? Perintah untuk menampilkan atau etak dilayar monitor tanpa pindah baris 0rite>n( ZTet-TulisanU,:ariabel)? Perintah untuk menampilkan-etak dilayar monitor lalu pindah baris kebawah 3ead(:ariabel)? Perintah untuk menginput-mengisi data tanpa pindah baris 3ead>n(:ariabel)? Perintah untuk menginput-mengisi data lalu pindah baris
#igunakan untuk penamaan elemen/elemen deklarasi seperti >abel, 8onstanta, type, .ariabel, proedure, "untion Syarat !denti"ier #iawali huru" Tidak boleh ada spasi-blank Tidak boleh menggunakan reser.ed word Tidak boleh menggunakan simbol khusus, keuali undersore(tanda bawah) Panjang maimal @' harater
&ontoh + ,uas-Segi-Tiga ,uasSegiTiga ,uasS3 ,S3
#eklarasi :ariabel 1dalah elemen data yang belum memiliki nilai dan nilainya dapat berubah ubah 8ontoh < 9SES 83T? :13 Qama < StringG$4I? Qilai < !nteger? E7!Q 8>3S83? 03!TE( ZQama Siswa < Z )? 3E1#>Q(Qama)? 03!TE( ZQilai 9jian < Z )? 3E1#>Q(Qilai)? EQ#*
#eklarasi 8onstanta 1dalah suatu elemen data yang sudah ada nilainya dan nilainya tetap 8ontoh < 9SES 83T? 8;QST Qamasis5 ZSyai"ul 1nwarU? !PK 5'*'4? Mutu 5 Z1U E7!Q 8>3S83? 03!TE( ZQama Siswa < Z , Qamasis)? 03!TE( ZQilai !PK < Z , !PK)? 03!TE( ZMutu 9jian < Z , Mutu)? EQ#*
8trl 2H lalu isi datanya Qama Siswa < \ Qilai 9jian < \ 8trl 24 lihat hasilnya
8trl 2H lalu 1lt 24 Qama Siswa < Syai"ul 1nwar? Qilai !PK < '*'4%%%%EN% Mutu 9jian < 1
)e/larasi Tipe : )e/larasi Label )e/larasi T0pe Pengenal (identi"ier) dari data yang digunakan harus diperkenalkan Tipenya* Jika ingin menggunakan tipe data dengan nama yang dibuat oleh pemakai, maka harus disebutkan tipe data standarnya*
&ontoh tanpa tipe
&ontoh !engan tipe
5ar ama + String/20 elas + String/4 ilai + Integer 'ra!e + &har
Type m + String/20 ls + String/4 il + Integer 'r + &har 5ar ama + m elas + ls ilai + il 'ra!e + 'r
)e/larasi Label #eklarasi label digunakan untuk melompati beberapa perintah program* Memiliki arah dan tujuan yaitu dengan menggunakan 7;T;
P3;731M #7QR>1E>? 9SES 83T? >1E> 1,,8? E7!Q 8>3S83? 03!TE>Q(ZTET&U)? 7;T; 1? 03!TE>Q(ZTET$U)? 1<03!TE>Q(ZTET'U)? 7;T; ? 03!TE>Q(ZTET=U)? <03!TE>Q(ZTET4U)? 7;T; 8? 03!TE>Q(ZTET@U)? 8<3E1#>Q? EQ#* Casilnya TET& TET' TET4
8ontoh Tipe #alam Program 9SES 83T? TPE Peahan 5 3eal? ulat 5 !nteger? :13 1,T < ulat? >S' < Peahan? E7!Q 8>3S83? 03!TE(ZMasukkan Qilai 1las < Z)? 3E1#>Q(1)? 03!TE(ZMasukkan Qilai Tinggi < Z)? 3E1#>Q(T)? >S'<5(1T)-$? 03!TE>Q(Z>uas SegitigaS'Q? EQ#*
%ormat Tipe )ataH Lo/asi (rsor Tampilan Ter"ormat 9ntuk mengatur bentuk tampilan dari tampilan de"ault ke bentuk yang diinginkan atau atasan etak Parameter 8har
atasan etak- bentuk tampilan- jarak tampil data har Parameter String
9ses 8rt? 8onst Kampus5ZsiU? XTipe StringY Qrata5$*4? XTipe 3ealY Qtotal544? XTipe !ntegerY 8ek 5True? XTipe ooleanY Curu" 5Z1U? XTipe 8harY E7!Q 8lrsr? 0riteln(ZQama Kampus
Hasilnya : Nama Kampus :Bsi Nama Kampus :Bsi Nama Kampus : Bsi Nilai Rata :2.500000e+00 Nilai Rata :3 Nilai Rata : 2.5 Nilai Total :55 Nilai Total : 55 Cek Boolean :True Cek Boolean : True Huruf A!a" :A Huruf A!a" : A
End* 8ontoh Program >okasi 8ursor E7!Q 8>3S83? 7;T;(&%,$)? 03!TE(ZJ9#9> !Q! TE38ET1K #! K;>;M &% 13!S $U)? 3E1#>Q? EQ#* Pengnaan Uses (rt H Tipe Seder'ana : Operator Penggunaan 9nit 83T (8athoda 3ay Tube) 8>3S83 ? 9ntuk membersihkan layar #elay (nilainya)? 9ntuk menghentikan program dalam satuan miliseond 7otoy(,y)?
9ntuk menempatkan kursor diposisi dan y 0indow(&,y&,$,y$) 9ntuk membuat batasan jendela pada layar
Test %ormati" &* 3ubah Program >abelnya dgn >ayout sbb TET$ TET= TET@ $* uat luas dan Keliling lingkaran dengan menggunakan deklarasi type dan :ar
3.
Perteman 32 Operator dan e/spresi
TAN)A OPERASI Tanda operasi (operator) di dalam bahasa Pasal dikelompokkan ke dalam H kategori, &* 1ssignment operator* $* inary operator* '* 9nary o perator* =* itwise operator* 4* 3elational operator* @* >ogial operator* A* 1ddress operator* B* Set operator* H* String operator*
Assignment Operator 1ssignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh tanda sama dengan (<5)* 8ontoh < 1<5?
Binary Operator #igunakan untuk mengoperasikan dua buah operand* ;perand dapat berbentuk konstanta ataupun .ariabel* ;perator ini digunakan untuk operasi aritmatika yang berhubungan dengan nilai tipe data integer dan real* ;perator
Operasi Perkalian
#!:
Pembagianbulat
-
Pembagianreal
M;# N
Sisapembagian Pertambahan
/
pengurangan
Tipeoperand real,real integer,integer real,integer integer,integer
Tipe'asil real integer real integer
real,real integer,integer real,integer integer,integer real,real integer,integer real,integer real,real integer,integer real,real
real real real integer real integer real real integer real
8ontoh < &44 $%-' $%di.' $%mod'
hasilnya hasilnya hasilnya hasilnya
A4 @*@@@@@@@@@AEN%% @ $
Unar0 operator ;perator ini hanya menggunakan sebuah operand saja* #apat berupa unary minus dan unary plus* 9nary minus digunakan untuk menunjukkan nilai negati", baik pada operang numerik real maupun integer* 9naru plus adalah operator untuk memberai tanda plus*
8ontoh < /4 /$*4
NA N$*4
*it&ise operator #igunakan untuk operasi bit per bit pada nilai integer* Terdiri dari operator Q;T, 1Q#, ;3, ;3, Shl, Shr* Relational operator 3elational operator digunakan untuk membandingkan hubungan antara dua buah operand dan akan didapatkan hasil tipe boolean, yaitu True atau 2alse* Terdiri dari operator < 5, , , 5, 5,
Logi$al operator Terdapat = buah logial operator yaitu < Q;T, 1Q#, ;3 dan ;3* ;perator ini bekerja dengan nilai/nilai logika, yaitu True dan 2alse* Set operator #igunakan untuk operasi himpunan* String operator #igunakan untuk operasi string* Canya ada sebuah operator string saja, yaitu operator N yang digunakan untuk menggabungkan dua buah nilai string*
8ontoh < Qama& <5 Z0ahyuZ? Qama$ <5 ZSumantri SutiarU? Qama' <5 Qama& N Qama$? uatlah 8ontohProgram Program>uas TipeSegi #ataTiga Sederhana Qama arang < \ Jumlaheli <\ Carga Satuan < 3p* \ Carga arang < 3p* RRR Tipe 1--8-# < \ #isount <3p*RRR Carga ayar < 3p* RRR 9angnya 3p* < \ Kembalinya <3p*RRR 8atatan < Tanda \ Tanda RRR
berarti program diisi-input berarti program tampil-etak
>isting Program Tipe #ata Sederhana 9ses 8rt? :ar Qb < StringG$%I? Cbr, 9,Cs < >ongint? Jb < yte? #is, Cby,K < 3eal? Tipe < 8har? egin 8lrsr? 0rite(ZQama arang < Z)? 3eadln(Qb)? 0rite(ZJumlah eli < Z)? 3eadln(Jb)? 0rite(ZCarga Satuan < 3p* Z)? 3eadln(Cs)? Cbr<5JbCs? 0riteln(ZCarga arang < 3p* Z,Cbr)? 0rite (ZTipe 1- < Z)? 3eadln(Tipe)? !" Tipe5Z1U Then #is<54-&%%Cbr Else #is<5%? 0riteln(Z#isount < 3p* Z,#is
Ct#. $ro%ram &perator 'istin% $ro%ram &perator ()*) CRT B*,-N C'R)CR R-T*'N/510 R-T*'N/50 R-T*'N/5 4- 2 R-T*'N/5 6&4 2 R-T*'N/572 R-T*'N/2 AN4 23 R-T*'N/2 &R 23 R*A4'N *N4. Hasilnya 8alse True 9 9.5000000*+00 3
Test %ormati" &* uatlah Program >uas dan Keliling >ingkaran $* uatlah Program Persegi Panjang +. Str/tr Kon trol Per$ abangan T1an Pembela1aran Setelah mengikuti kegiatan belajar @ ini siswa diharapkan dapat < &) Memahami struktur ontrol perabangan dalam bahasa pemrograman
$) Mengalisis untuk memeahkan masalah menggunakan struktur ontrol perabangan Uraian Materi >ihat materi ajar algoritma perabangan kegiatan belajar $ I. Str/tr Kontrol Perlangan Setelah mengikuti kegiatan belajar A ini siswa diharapkan dapat < &) Memahami struktur ontrol perabangan dalam bahasa pemrograman $) Mengalisis untuk memeahkan masalah menggunakan struktur ontrol perabangan Uraian Materi >ihat materi ajar algoritma perulangan kegiatan belajar ' Looping ! Perlangan #
&*
Statement2or****#o(Perulangan8ounter) varia%elGk!ntr!l < 5 nilaiGa:al To nilaiGakhir #o State"ent *9 < 2or varia%elGk!ntr!l<5 nilaiGa:al #ownTo nilaiGakhir #o State"ent $* Statement0hile***#o(PerulanganKondisi Terpenuhi) *9 < 0hile ungkapanGl!gika #o State"ent '* Statement 3epaet***9ntil (Perulangan Kondisi Tidak Terpenuhi) *9 < 3epeat State"ent 9ntil ungkapanGl!gika ? *9 < 2or
$ro%ram 8or;To
$ro%ram 8or;4o=nTo
$ro%ram #ile
$ro%ram Repeat
(ses
(ses
(ses
(ses
ari : yte e%in
ari : yte e%in
ari : yte e%in 1 5 4o e%in =riteln/- - : 1 - + en" rea"ln en" .
ari : yte e%in
for i : 1 5 "o=nto 5 "o
=riteln /6 $as
Test "ormati" &* uat deret bilangan ganjil dan deret bilangan genap $* uatlah deret bilangan 2ibonani & & $ ' 4 B &' $& '= 44 '* uatlah deret 4='$& b*& * 4 d*&4='$
='$& ' $ & $ & &
$& 4= 4='$ ' $ & 4 = ' 4 = ' = ' $4 &= ' $ 4 = 4 =4'=$'&$ & 4
=* uatlah deret &*$ &*= &*@ &*B $*$ $*= $*@ $*B ,. Pengembangan Algoritma Apli/asi Setelah mengikuti kegiatan belajar B ini siswa diharapkan dapat < &) Memahami keseluruhan konsep algoritma dalam penyelesaian masalah kompleks $) Mengalisis kesalahan dalam program Uraian Materi -. Perteman -2 )e "inisi
3. Perteman 32 Analisa Peme$a'an Masa la' 4. Perteman 42 ) ebgging dan e rror 'andling 5. Perteman 52 Stdi /ass pro0e/ apli/asi program /ompter
)A%TAR PUSTAKA
Munir, 3inaldi*, ($%%H) , 1lgoritma dan Pemrog raman dalam ahasa Pasa l dan 8, andung< !n"ormatika* Supardi, uniar*, ($%%&), 8 O 2lowhart >ewat Praktek, Jakarta< #inastindo* Sanjaya, 1lwin*, ($%%'), 8epat Mahir asaha Pasal, Kuliah erseri !lmuKomputer*8om 8opyright $%%' !lmuKomputer*8om http<--alehwoody*blogspot*om-$%&&-&%-tipe/data/dan/operator/pada/pemograman*html http<--marlia*sta""*gunadarma*a*id-#ownloads-"iles-&$&AA-pertemuanN!!!*do http<--"aulty*petra*a*id-thiang-download-dkp-1lgoritma[$%dan[$%2lowhart*do http<--smksedayu*"iles*wordpress*om-$%%H-%A-modul/dasar/pasal*do
Pembahasan B +IMPUNAN 6 SET
Cimpunan termasuk salah satu tipe data terstruktur,yang terdiri dari sejumlah elemen yang bertipe data sama* Pende"inisian tipe data himpunana diawali dengan kata teradang Set dan O"9kemudian didikuti dengan tipe elemen* entuk umum < SET O% tipeRelemen Elemen Cimpunan mempunyai bentuk eperti < Gda"tarRelemenI yang mana etiap elemen harus bertipe sama* Operator 'bngan dalam 'impnan
Cimp& 5 Cimp$ Cimp& Cimp$
#ua Cimpunan #ikatakan sama jika jumlah elemen sama dan masing/masing elemen sama*Casilnya True bila Cimp& sama dengan Cimp$ #ua Cimpunan #ikatakan tidak sama jika jumlah elemen tidak sama dan masing/masing elemen tidak sama* Casilnya True bila Cimp& tidak sama dengan Cimp$
Cimp& 5 Cimp$
Casil bernilai True jika semua elemen dari Cimp& terdapat pada Cimp$
Cimp& 5 Cimp$
Casil bernilai True jika semua elemen dari Cimp$ terdapat pada Cimp& Memeriksa elemen adalah anggota himpunan Cimp atau tidak*Casil true jika elemen adalah anggota dari Cimp
Elemen !n Cimp
Operator Operasi +impnan
Cimp& Cimp$
Cimp& N Cimp$ Cimp& / Cimp$
(ontoU ' ng/apan G&,$,',=,4IG&,',4,AI G&,$,',=,4IG@,A,B,H,&%I G&,$,'I GI G&,$,',=,4ING@,AI G&,$,=ING&,$,'I G&,$,',=,4I/G&,$I G&,$,',=,4I/G=,4,@,AI G=,4,@,AI/G&,$,',=,4I
;perasi !nterseksi himpunan*untuk memperoleh himpunan yang terdiri dari elemen yang merupakan anggota himpunan Cimp& dan sekaligus juga merupakan anggota Cimp$ ;perasi penggabungan himpunan*9ntuk memperoleh himpunan yang terdiri dari gabungan elemen anggota Cimp& dan Cimp$ ;perasi selisih himpunan*9ntuk memperoleh himpunan yang terdiri dari elemen anggota Cimp& yang bukan anggota himpunan Cimp$
+asil
G&,',4I GI GI G&,$,',=,4,@,AI G&,$,',=I G',=,4I G&,$,'I G=,@,AI
8ontoh Program Cimpunan Program Cimpunan? 9ses 8rt? Type Cs 5 Set ;" &**H? :ar C&,C$,C' < Cs? E7!Q 8>3S83? C&<5G&,$,',=,4I? C$<5G',4,@,A,BI? C'<5C&NC$? !2 C'5G&**BI Then 0riteln(6C&NC$ 1dalah G&**BI6) Else 0riteln(6Salah6)? 3eadln?
C'<5C&/C$? !2 C'5G&,$,=I Then 0riteln(6C&/C$ 1dalah G&,$,=I6) Else 0riteln(6Salah6)? 3eadln? C'<5C&C$? !2 C'5G',4I Then 0riteln(6C&C$ 1dalah G',4I6) Else 0riteln(6Salah6)? 3eadln? EQ#*
Pembahasan H ARRAF 6 LARIK 1rray ( larik ) adalah tipe terstruktur yang terdiri dari sejumlah komponen yang mempuyai tipe sama* *9 < 1rray G & * * $% I o" tipeRdata ? (#imensi &) *9 < 1rray G& * * ' , & * * $I o" tipeRdata? (#imensi $) 8ontoh Program 1rray < 9ses rt ? :ar Qama Tugas, uts, uas, absen
< array G&**'% I o" string ? < array G&**'%I o" integer ?
3ata < array G&**'%I o" real ? , jd < byte? E7!Q 8>3S83 ? 0rite ( Z Masukan Jumlah data < Z ) ? readln ( jd ) ? 2or < 5 & to jd do begin 0riteln ( Z Z ) ? 0riteln ( Z PEQ!>1!1Q 9J!1Q M1C1S!S01 S! Z ) ? 0riteln ( Z Z ) ? 0rite ( Z !nput Qama < Z ) ? readln (namaGI ) ? 0rite ( Z !nput Qilai Tugas < Z ) ? readln (tugasGI ) ? 0rite ( Z !nput Qilai 1bsen < Z ) ? readln (absenGI ) ? 0rite ( Z !nput Qilai 9TS < Z ) ? readln (utsGI ) ? 0rite ( Z !nput Qilai 91S < Z ) ? readln (uasGI) ? 3ataGI<5(%*&tugasGI)N(%*$absenGI)N(%*'utsGI)N(%*=uasGI)? End ? 8>3S83 ? 2or i < 5 & to j do egin 0riteln ( Z Z ) ? 0riteln ( Z PEQ!>1!1Q 9J!1Q M1C1S!S01 S! Z ) ? 0riteln ( Z Z ) ? 0riteln ( Z Qama < Z , namaGiI ) ? 0riteln ( Z Qilai Tugas < Z , tugasGiI ) ? 0riteln ( Z Qilai 1bsen < Z , absenGiI ) ? 0riteln ( Z Qilai 9TS < Z , utsGiI ) ? 0riteln ( Z Qilai 91S < Z , uasGiI) ? 0riteln ( Z Z ) ? 0riteln ( Z 3ata/rata < Z , rata < &< % ) ? 3eadln ? End? EQ#*
Pembahasan &% PRO(E)URE
Prosedur adalah suatu program terpisah dalam blok sendiri yang ber"ungsi sebagai subprogram ( program bagian )* Parameter pada proedure ada $ < entuk 9mum <
P3;731M JudulRProgram ? P3;8E#93E judulRprosedur ? egin ************* End ? E7!Q
Parameter didalam prosedur terdiri dari $ yaitu < ************** a* Para"eter %ersifat L!kal artinya bahwa nilai yang terdapat didalam suatu modul program EQ#* hanya dapat digunakan pada modul yang bersangkutan sehingga tidak dapat digunakan pada modul lain* b* Para"eter %ersifat l!%al artinya bahwa nilai dapat digunakan pada semua modul maka nilai tersebut harus dideklarasikan di atas modul yang akan menggunakannya*
&ontoh + Parameter ,o#al Pro8e!ure Hitung 5ar =: Y + real Begin
&ontoh + Paramater 'loal 5ar =: Y + Byte Pro8e!ure Tamah Begin
Pemanggilan parameter pada prosedur
terdiri dari $ yaitu < a* Parameter Seara Qilai ( y :alue ) ersi"at satu arah, jika terjadi perubahan pada subprogram, maka tidak akan mempengaruhi program utama* b* Parameter Seara 1uan ( y 3e"erene ) ersi"at dua arah, jika terjadi perubahan pada subprogram, maka program utamanya akan ikut berubah*
&ontoh + By 5alue 7ses 8rt Pro8e!ure Hitung 9":B +integer 5ar & + integer Begin &+$";B
&ontoh + By >e?eren8e 7ses 8rt )Pro8e!ure Hitung 9 5ar ": B: & + integer ) Begin & + $ ";B n!
5ar =: Y: @ + integer B'I 5ar =+$2 =:Y + integer Y+$3 B'I Hitung 9 =: Y: @ ) ea!ln Hitung 9 =: Y ) D. >ea!ln
8ontoh Program Prosedure Standar 9ses 8rt? 8onst si56ina Sarana6? egin 8lrsr? 0riteln(8opy(si,@,=))? 0riteln(Pos(6Sarana6,si))? 0riteln(>ength(si))? 0riteln(8onat(si,6 !n"ormatika6))? 3eadln? End*
mengambil sebagian dari string menari posisi string panjang string mengabungkan string
Pembahasan && %UNGSI 2ungsi seara garis besar sama dengan prosedure baik parameter maupun pemanggilan parameternya hanya yang membedakannya adalah nama "ungsi harus dideklarasikan dengan type datanya* entuk 9mum <
/uncti!n dentifier ( da"tarR parameter ) < tpe data ? 8ontoh < 9ses rt ? 2untion Citung ( :ar 1, < integer ) < integer ? egin Citung < 5 1N ? End ? :ar , < integer ? E7!Q 0rite ( Z Qilai Z ) ? readln ( ) ? 0rite ( Z Qilai Z ) ? readln ( ) ? 0riteln ? 0riteln ( , Z N Z, , Z 5U, Citung ( , )) ? 3eadln ? EQ#*
agian 2ungsi
Program 9tama
Parameter pada "ungsi sama dengan parameter yang ada pada prosedure yaitu < a* Pemanggilan seara Qilai ( y :alue ) 8ontoh < 9ses rt ? 2untion Citung ( , , ^ < integer ) < integer ? egin ^ < 5 N ? 0riteln ( Z Qilai 5 Z, ) ? 0riteln ( Z Qilai 5 Z, ) ? 0riteln ( Z Qilai ^ 5 Z, ^ ) ? End ? :ar 1, , 8 < integer ? E7!Q 1< 5 4? <5 A? 8 < 5 ' ? Citung ( 1, , 8 ) ? 0riteln ( Z Qilai 1 5U, 1, Z Qilai 5 Z, , Z Qilai 8 5 Z, 8 ) ? 3eadln ? EQ#* * Pemanggilan seara 3e"erene ( 1uan ) 8ontoh < 9ses rt ? 2untion Citung ( .ar 1, , 8 < integer ) < integer ? egin Citung < 5 1N ? 8 < 5 1 ? End ? :ar , , ^ < integer ? E7!Q 0rite ( Z Qilai < Z ) ? readln ( ) ? 0rite ( Z Qilai < ) ? readln ( ) ? 0riteln ? 0riteln ( , Z N Z , , Z5U, Citung ( , , ^ )) ? 0riteln ( , Z U,, Z5U, ^ ) ? 3eadln ? EQ#*
8ontoh 2untion Standar 1ritmatika O Trans"er 9ses 8rt? 8onst 15$? 5/$? 85=? #5$*4? 5$*'? E25$*A? 75616? egin 8lrsr? 0riteln(61bsnya < 6,1, 656 ,1bs(1))? 0riteln(61bsnya < 6,, 656 ,1bs(/))? 0riteln(6Epnya < 6,1, 656 ,Ep(1))? 0riteln(6>nnya < 6,1, 656 ,>n(1))? 0riteln(6SLrnya < 6,1, 656 ,SLr(1))? 0riteln(6SLrtnya < 6,8,656 ,SLrt(8))? 0riteln(6Pinya < 6,Pi)? 0riteln(6!ntnya < 6,#, 656 ,!nt(#))? 0riteln(6Trunnya < 6,#, 656 ,Trun(#))? 0riteln(62ranya < 6,#, 656 ,2ra(#))? 0riteln(63oundnya < 6,E, 656 ,3ound(E))? 0riteln(63oundnya < 6,2, 656 ,3ound(2))? 0riteln(6;rdnya < 6,7, 656 ,;rd(7))? 0riteln(68hrnya < 6,1, 656 ,8hr(@A))? 3eadln? End*
1rgumen Mutlak Eksponensial 1rgumen >ogaritma Qatural 1rgumen Kuadrat 1rgumen 1kar 1rgumen angka Pi5'*&= bagian bulat angka real b agian bulat angka real bagian peahan real bulatkan angka real 8harater ke ordinal ordinal ke harater
8ontoh #engan 2ormat 9ses 8rt? 8onst 15$? 5/$? 85=? #5$*4? E5$*'? 25$*A? 75616? egin 8lrsr? 0riteln(61bsnya < 6,1, 656 ,1bs(1))? 0riteln(61bsnya < 6,, 656 ,1bs(/))? 0riteln(6Epnya < 6,1, 656 ,Ep(1)<4<$)? 0riteln(6>nnya < 6,1, 656 ,>n(1)<4<$)? 0riteln(6SLrnya < 6,1, 656 ,SLr(1))? 0riteln(6SLrtnya < 6,8,656 ,SLrt(8)<&<%)? 0riteln(6Pinya < 6,Pi<=<$)? 0riteln(6!ntnya < 6,#<'<&, 656 ,!nt(#)<&<%)? 0riteln(6Trunnya < 6,#<'<&, 656 ,Trun(#))? 0riteln(62ranya < 6,#<'<&, 656 ,2ra(#)<'<&)? 0riteln(63oundnya < 6,E<'<&, 656 ,3ound(E))? 0riteln(63oundnya < 6,2<'<&, 656 ,3ound(2))? 0riteln(6;rdnya < 6,7, 656 ,;rd(7))? 0riteln(68hrnya 3eadln? End*
< 6,1, 656 ,8hr(@A))?
Pembahasan &$ RE(OR) 1dalah kumpulan item data ("ield) yang masing/masing dapat mempunyai tipe data yang beda 8ontoh Type >gn5 3eord Kode < integer? Qama < stringG'4I? Piutang < real? End? :ar >angganan < >gn? Menggunakan Tipe #ata 3eord Tiap/tiap komponen "ield dari reord dapat dipergunakan dengan ara menuliskan Pengenalreord*pengenal"ield 8ontoh >angganan*Qama <5 UMaulanaU ? Pengenal2ield Pengenal3eord Penulisan statemen diatas dapat menyebabkan statement menjadi panjang 8ontoh lain < >ingkaran*Keliling <5 $ Pi JariJari ? Menggunakan Statemen 0ith #o menjadi < 0ith >ingkaran #o egin Keliling <5 $ Pi JariJari ? End? 8ontoh < 9ses 8rt? Type 3esis 5 3eord Qama < stringG&4I? Qu < byte? End? :ar #ataSis < 1rrayG&**&%I o" 3eSis? , J# < yte ? Pred < StringG@I ?
E7!Q 8>3S83 ? 0rite( U Jumlah #ata < U ) ? 3eadln(J#) ? 2or <5 & To J# #o egin 0rite( U Qama Siswa < U ) ? 3ead>n(#atasisGI*Qama) ? 0rite( U Qilai 9jian < U ) ? 3ead>n(#atasisGI*Qu) ? End? 2or <5 & To J# #o egin 0ith #atasisGI #o egin !2 Qu @% Then Pred <5 U>ulusU ? Else Pred <5 U7agalU ? 0rite>n(, U U , Qama<&%, U U ,Qu<$, U U , Pred<@)? End? End? 3ead>n? EQ#*
Pembahasan &' %ILE Suatu 2ile terdiri dari urutn komponen yang mempunyai tipe sama* erbeda dengan larik yang jumlah komponennya sudah pasti, jumlah komponen dalam "ile si"atnya luwes, yaitu dapat ditambah dan dikurangi sewaktu/waktu 2ile Teks Merupakan "ile yang berisi kumpulan dari karakter yang dibentuk dalam baris/baris dan masing/ masing baris diakhiri dengan tanda akhir dari baris berupa karakter arriage return dan karakter line "eed* 2ile teks sebenarnya merupakan "ile dengan tipe har? tetapi mempunyai perbedaan, yaitu nilai yang bukan tipe har dapat direkam dan dibaa oleh 2ile Teks Prosedur Standar 2ile Teks 1ppend
<
0rite 2lush 3ead SetTetu"
< < < <
digunakan untuk membuka "ile yang telah ada untuk keperluan menambah data ke dalam "ile digunakan untuk merekam data ke "ile digunakan untuk segera merekam data yang ada di bu""er ke "ile Teks untuk membaa satu atau lebih nilai dari "ile ke dalam satu atau lebih .ariabel digunakan untuk membuat bu""er yang baru sebagai pengganti dari internal bu""er untuk "ile .ariabel
2ungsi Standar 2ile Teks Eo>n < untuk mengetahui apakah posisi dari "ile berada di end/o"/line marker atau tidak SeekE;2 < untuk menghasilkan status akhir dari 2ile SeekEo>n < untuk menghasilkan status akhir baris 8ontoh < 9ses 8rt ? >abel a,b ? :ar :"barang < tet ? Qabrg < string G$% I? Crg < longint ? Jml < integer ? , y < byte ? Ttl, gth < longint ? >agi < har ? Pil < byte ? E7!Q 1< 8lrsr ? 0riteln ( Z MEQ9 P!>!C1Q 2!>E TET Z ) ? 0riteln ( Z &* 3ekam #ata 2ile aru Z ) ? 0riteln ( Z $* Tambah #ata 2ile Z ) ? 0riteln ( Z '* >ihat #ataU ) ? 0riteln ( Z =* EitU ) ? 0rite ( Z Silakan Pilih Menu G &-$-'-= I < Z )? readln ( pil ) ? 8ase pil o" &**$ <
begin 1ssign (."barang,Ubarang*ttU ) ? X .ariabel "ile barang Y !2 pil 5& then 3ewrite ( ."barang ) Else 1ppend (."barang ) ? >agi < 5 ZU ? < 5 % ? 0hile (lagi 5UU) or (lagi 5 ZTU) do begin write ( Z Qama arang < Z ) ? readln ( nabrg )? write ( U Carga arang < U ) ? readln ( hrg ) ? write ( U Jumlah arang < U ) ? readln ( jml ) ? write ( ."barang, nabrg<& 4 , hrg < &%, jml < = ) ? write ( U !si #ata >agi G -T I < U ) ? readln ( lagi ) ? end ? lose (."barang) ? goto a ?
'
end ? end? < begin 1ssign ( ."barang , U barang*tt U ) ? 3eset ( ."barang ) ? 0riteln(U #1T1 PEQJ91>1Q 131Q7 U) ? 0riteln(U U) ? 0riteln(UQo Qama arang Carga Jumlah Total U ) ? 0riteln(U U ) ? X proses dan etak data detail Y y < 5 % ? "th < 5 % ? 0hile not eo" ( ."barang ) do egin 3ead ( ."barang, nabrg, hrg, jml ) ? Total < 5 hrg jml ? gth < 5 gth N ttl ? !n ( y) ? 0rite (y, U U ,nabar<&4, U U ,hrg
= End ? 3eadln ? b< EQ#* 2ile ertipe erbeda dengan "ile teks yang hanya dapat diakses seara urut, "ile bertipe disamping dapt pulajuga diakses seara urut(seLuential aes, dapat juga diakses seara aaak (randam aess)* #an Tipe dari "ile bertipe dapat berupa tipe integer, real, har, string array, reord 0rite 3ead Seek
< < <
Trunate
<
2ileSie
<
digunakan untuk merekam satu atau lebih nilai ke dalam "ile digunakan untuk membaa atau lebih, nilai dari "ile #igunkan untuk mengarahkan penunjuk "ile ke suatu komponen tertentu di dalam "ile digunakan untuk menghapus sejumlah komponen atau reord mulai dari posisi reord tertentu digunakan untuk menghasilkan jumlah dari komponen atau reord
8ontoh Program ertipe !nput #ata 9ses 8rt? Type MCS 5 3eord QM < stringG&4I? 9TS,91S < byte? End? 2ileMCS < 2ile o" MCS? 3eMCS < MCS? Qo, ts, J#, T, 3Q < yte? E7!Q 8>3S83? 0rite(6Jumlah #ata < 6)? 3ead>n(J#)? 1ssign(2ileMCS,68<MCS*#1T6)? 3e0rite(2ileMCS)? 2or Qo <5 & To J# #o egin 0ith 3eMCS #o egin 0rite(6Qama < 6)? 3ead>n(QM)? 0rite(69TS < 6)? 3ead>n(9TS)? 0rite(691S < 6)? 3ead>n(91S)? :ar
End? 0rite(2ileMCS,3eMCS)? End? 8lose(2ileMCS)? 3ead>n? EQ#* >alu disimpan
8ontoh Program ertipe Tampil #ata 9ses 8rt? Proedure Judul? egin 0rite>n(6#12T13 Q!>1! M1C1S!S016)? 0rite>n(6////////////////////////////////////////////////////////////////////6)? 0rite>n(6Qo* Qama Mahasiswa 9TS 91S Total 3ata Predikat Kelulusan6)? 0rite>n(6////////////////////////////////////////////////////////////////////6)? End? Type
MCS53eord QM < stringG&4I? 9TS,91S < byte? End? :ar 2ileMCS < 2ile o" MCS? 3eMCS < MCS? Qo,rs,J#,T,3,3Q < byte? P < stringG&%I? K < stringG4I? E7!Q 8>3S83? Judul? 1ssign(2ileMCS,68<MCS*#1T6)? 3eset(2ileMCS)? Qo<5%? 0hile Qot E;2 (2ileMCS) #o egin 0ith 3eMCS #o egin 3ead(2ileMCS,3eMCS)? T<5 9TSN91S? 3<5 T di. $? in(Qo)? 8ase 3 o" %%**4H < P<56Kurang6? @%**A= < P<568ukup6? A4**B= < P<56aik6? B4**&%%< P<561mat aik6? End? !2 3@% Then K<567agal6 Else K<56>ulus6? 0rite>n(Qo<',6 6,QM<&4,6 6,9TS<',6 6,91S<',6 6,T<',6 6,3<',6 6,P<&%,6 6,K<4)? End? End? 3ead>n? 8lose(2ileMCS)? EQ#*
Pembahansan &= PEM*UATAN UNIT *ARU 8ontoh Program Pembentukan 9nitku 9nit 9nitku? !nter"ae 9ses 8rt? Proedure ersihkan? 2untion >s'(1,Ts'(1,Ts'<51T-$? End? End >alu simpan 8ontoh Program Pemakaian 9nit aru 9ses 9nitku? :ar 1,T uas Segitiga <6,>s'(1,T)<4<&)? 3eadln? End**