1 / 30

Pengantar Konsep Pemrograman

Pengantar Konsep Pemrograman. Konsep Pemrograman Oleh Tita Karlita. SEKILAS TENTANG C. Menjelaskan sejarah dan ruang lingkup pemakaian bahasa C Menjelaskan kelebihan dan kekurangan bahasa C Menjelaskan proses kompilasi dan linking program C

hija
Download Presentation

Pengantar Konsep Pemrograman

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pengantar Konsep Pemrograman Konsep Pemrograman Oleh Tita Karlita

  2. SEKILAS TENTANG C • Menjelaskan sejarah dan ruang lingkup pemakaian bahasa C • Menjelaskan kelebihan dan kekurangan bahasa C • Menjelaskan proses kompilasi dan linking program C • Menjelaskan struktur penulisan bahasa C dan menjelaskan komponen-komponen program dalam contoh aplikasi sederhana

  3. Sejarah dan Ruang Lingkup C • C adalah bahasa yang standar, artinya suatu program yang ditulis dengan versi bahasa C tertentu akan dapat dikompilasi dengan versi bahasa C yang lain dengan sedikit modifikasi.

  4. Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk komputer mikro. • Untuk membuat versi-versi tersebut menjadi standar, ANSI (American National Standards Institute) membentuk suatu komite (ANSI committee X3J11) pada tahun 1983 yang kemudian menetapkan standar ANSI untuk bahasa C.

  5. Kelebihan Bahasa C • Bahasa C tersedia hampir di semua jenis komputer, baik mikro, mini maupun komputer besar (mainframe computer). • Kode bahasa C bersifat portabel. Suatu aplikasi yang ditulis dengan bahasa C untuk suatu komputer tertentu dapat digunakan di komputer lain hanya dengan sedikit modifikasi. • Berbagai struktur data dan pengendalian proses disediakan dalam C sehingga memungkinkan untuk membuat program yang terstruktur. Struktur bahasa yang baik, selain mudah dipelajari juga memudahkan dalam pembuatan program, pelacakan kesalahan program dan akan menghasilkan dokumentasi program yang baik.

  6. Dibandingkan dengan bahasa mesin atau assembly, C jauh lebih mudah dipahami dan pemrogram tidak perlu mengetahui mesin komputer secara detil. Dengan demikian tidak akan menyita waktu yang terlampau banyak dalam menyelesaikan suatu masalah ke dalam bentuk program. Hal ini dikarenakan C merupakan bahasa yang berorientasi pada permasalahan, bukan berorientasi pada mesin. • C memungkinkan memanipulasi data dalam bentuk bit maupun byte. Di samping itu juga memungkinkan untuk memanipulasi alamat dari suatu data atau pointer.

  7. Assembler directives Directives adalah perintah yang ditujukan kepada assembler ketika sedang menerjemahkan program kita ke bahasa mesin. Directive dimulai dengan tanda titik. .model : memberitahu assembler berapa memori yang akan dipakai oleh program kita. Ada model tiny, model small, model compact, model medium, model large, dan model huge. .data : memberitahu assembler bahwa bagian di bawah ini adalah data program. .code : memberitahu assembler bahwa bagian di bawah ini adalah instruksi program. .stack : memberitahu assembler bahwa program kita memiliki stack. Program EXE harus punya stack.

  8. Definisi data DB : define bytes. Membentuk data byte demi byte. Data bisa data numerik maupun teks. catatan: untuk membentuk data string, pada akhir string harus diakhiri tanda dolar ($). sintaks: {label} DB {data} contoh: teks1 db "Hello world $" DW : define words. Membentuk data word demi word (1 word = 2 byte). sintaks: {label} DW {data} contoh: kucing dw ?, ?, ? ;mendefinisikan tiga slot 16-bit yang isinya don't care (disimbolkan dengan tanda tanya) DD : define double words. Membentuk data doubleword demi doubleword (4 byte). sintaks: {label} DD {data} EQU : equals. Membentuk konstanta. sintaks: {label} EQU {data} contoh: sepuluh EQU 10 untuk assembly yang melibatkan bilangan pecahan (floating point) saya belum belajar, jadi dalam tutorial ini saya hanya memakai bilangan bulat (integer). Sebenarnya masih ada DF (define far words), DQ (define quad words), dan DT (define ten bytes).

  9. Perpindahan data MOV : move. Memindahkan suatu nilai dari register ke memori, memori ke register, atau register ke register.sintaks: MOV {tujuan}, {sumber}contoh: mov AX, 4C00h ;mengisi register AX dengan 4C00(hex).mov BX, AX ;menyalin isi AX ke BX.mov CL, [BX] ;mengisi register CL dengan data di memori yang alamatnya ditunjuk BX.mov CL, [BX] + 2 ;mengisi CL dengan data di memori yang alamatnya ditunjuk BX lalu geser maju 2 byte.mov [BX], AX ;menyimpan nilai AX pada tempat di memori yang ditunjuk BX.mov [BX] - 1, 00101110b ;menyimpan 00101110(bin) pada alamat yang ditunjuk BX lalu geser mundur 1 byte. LEA : load effective address. Mengisi suatu register dengan alamat offset sebuah data.sintaks: LEA {register}, {sumber}contoh: lea DX, teks1 XCHG : exchange. Menukar dua buah register langsung.sintaks: XCHG {register 1}, {register 2}Kedua register harus punya ukuran yang sama. Bila sama-sama 8 bit (misalnya AH dengan BL) atau sama-sama 16 bit (misalnya CX dan DX), maka pertukaran bisa dilakukan. Sebenarnya masih banyak perintah perpindahan data, misalnya IN, OUT, LODS, LODSB, LODSW, MOVS, MOVSB, MOVSW, LDS, LES, LAHF, SAHF, dan XLAT. Tapi semua ini ribet dan bikin pusing pembaca.

  10. Operasi logika AND : melakukan bitwise and.sintaks:AND {register}, {angka}AND {register 1}, {register 2}hasil disimpan di register 1.contoh:mov AL, 00001011bmov AH, 11001000band AL, AH ;sekarang AL berisi 00001000(bin), sedangkan AH tidak berubah. OR : melakukan bitwise or.sintaks:OR {register}, {angka}OR {register 1}, {register 2}hasil disimpan di register 1. NOT : melakukan bitwise not (one's complement)sintaks: NOT {register}hasil disimpan di register itu sendiri. XOR : melakukan bitwise eksklusif or.sintaks:XOR {register}, {angka}XOR {register 1}, {register 2}hasil disimpan di register 1.Tips: sebuah register yang di-XOR-kan dengan dirinya sendiri akan menjadi berisi nol.

  11. SHL : shift left. Menggeser bit ke kiri. Bit paling kanan diisi nol.sintaks: SHL {register}, {banyaknya} SHR : shift right. Menggeser bit ke kanan. Bit paling kiri diisi nol.sintaks: SHR {register}, {banyaknya} ROL : rotate left. Memutar bit ke kiri. Bit paling kiri jadi paling kanan kali ini.sintaks: ROL {register}, {banyaknya}Bila banyaknya rotasi tidak disebutkan, maka nilai yang ada di CL akan digunakan sebagai banyaknya rotasi. ROR : rotate right. Memutar bit ke kanan. Bit paling kanan jadi paling kiri.sintaks: ROR {register}, {banyaknya}Bila banyaknya rotasi tidak disebutkan, maka nilai yang ada di CL akan digunakan sebagai banyaknya rotasi. Perintah menarik yang tidak dijelaskan di sini: RCL dan RCR.

  12. Operasi matematika ADD : add. Menjumlahkan dua buah register.sintaks: ADD {tujuan}, {sumber}operasi yang terjadi: tujuan = tujuan + sumber.carry (bila ada) disimpan di CF. ADC : add with carry. Menjumlahkan dua register dan carry flag (CF).sintaks: ADC {tujuan}, {sumber}operasi yang terjadi: tujuan = tujuan + sumber + CF.carry (bila ada lagi) disimpan lagi di CF. INC : increment. Menjumlah isi sebuah register dengan 1. Bedanya dengan ADD, perintah INC hanya memakan 1 byte memori sedangkan ADD pakai 3 byte.sintaks: INC {register} SUB : substract. Mengurangkan dua buah register.sintaks: SUB {tujuan}. {sumber}operasi yang terjadi: tujuan = tujuan - sumber.borrow (bila terjadi) menyebabkan CF bernilai 1. SBB : substract with borrow. Mengurangkan dua register dan carry flag (CF).sintaks: SBB {tujuan}, {sumber}operasi yang terjadi: tujuan = tujuan - sumber - CF.borrow (bila terjadi lagi) menyebabkan CF dan SF (sign flag) bernilai 1.

  13. DEC : decrement. Mengurang isi sebuah register dengan 1. Jika SUB memakai 3 byte memori, DEC hanya memakai 1 byte.sintaks: DEC {register} MUL : multiply. Mengalikan register dengan AX atau AH.sintaks: MUL {sumber}Bila register sumber adalah 8 bit, maka isi register itu dikali dengan isi AL, kemudian disimpan di AX.Bila register sumber adalah 16 bit, maka isi register itu dikali dengan isi AX, kemudian hasilnya disimpan di DX:AX. Maksudnya, DX berisi high order byte-nya, AX berisi low order byte-nya. IMUL : signed multiply. Sama dengan MUL, hanya saja IMUL menganggap bit-bit yang ada di register sumber sudah dalam bentuk two's complement.sintaks: IMUL {sumber}

  14. DIV : divide. Membagi AX atau DX:AX dengan sebuah register.sintaks: DIV {sumber}Bila register sumber adalah 8 bit (misalnya: BL), maka operasi yang terjadi:-AX dibagi BL,-hasil bagi disimpan di AL,-sisa bagi disimpan di AH.Bila register sumber adalah 16 bit (misalnya: CX), maka operasi yang terjadi:-DX:AX dibagi CX,-hasil bagi disimpan di AX,-sisa bagi disimpan di DX. IDIV : signed divide. Sama dengan DIV, hanya saja IDIV menganggap bit-bit yang ada di register sumber sudah dalam bentuk two's complement.sintaks: IDIV {sumber} NEG : negate. Membuat isi register menjadi negatif (two's complement). Bila mau one's complement, gunakan perintah NOT.sintaks: NEG {register}hasil disimpan di register itu sendiri.

  15. Kelemahan Bahasa C • Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai. Kalau tidak dikuasai sudah tentu akan menimbulkan masalah. • Para pemrogram C tingkat pemula umumnya belum pernah mengenal pointer dan tidak terbiasa menggunakannya. Padahal keampuhan C justru terletak pada pointer.

  16. Kompilasi dan linking program C • Agar suatu program dalam bahasa pemrograman dapat dimengerti oleh komputer, program haruslah diterjemahkan dahulu ke dalam kode mesin. • Penerjemah yang digunakan bisa berupa interpreter atau kompiler. • Bahasa C menggunakan kompiler sebagai penerjemah.

  17. Interpreter • Interpreter adalah suatu jenis penerjemah yang menerjemahkan baris per baris intsruksi untuk setiap saat. • Keuntungan pemakaian interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program. • Kelemahan pemakaian interpreter: • kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih dahulu. • saat program dieksekusi, interpreter juga harus berada dalam memori. Jadi memori selalu digunakan baik untuk program maupun interpreter. • program sumber (source program) yaitu program aslinya tidak dapat dirahasiakan (orang lain selalu bisa melihatnya).

  18. Kompiler • Cara kerja kompiler yaitu menerjemahkan seluruh instruksi dalam program sekaligus. • Proses pengkompilasian cukup dilakukan sekali saja. • Selanjutnya hasil penerjemahan (setelah melalui tahapan yang lain) bisa dijalankan secara langsung, tanpa tergantung lagi oleh program sumber maupun kompilernya. • Keuntungan: • proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi proses penerjemahan. • program sumber bisa dirahasiakan, sebab yang dieksekusi adalah program yang sudah dalam bentuk kode mesin. • Kelemahan: • proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu melakukan proses linking. • Perlu pula diketahui, program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali.

  19. Struktur Penulisan Program C • Program C tersusun atas sejumlah blok fungsi. • Sebuah program minimal mengandung sebuah fungsi. • Fungsi pertama yang harus ada dalam program C dan sudah ditentukan namanya adalah main(). • Setiap fungsi terdiri atas satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan untuk melaksanakan tugas khusus.

  20. Jika fungsi-fungsi diletakkan di file pustaka dan akan dipakai di suatu program, maka nama file judulnya (header file) harus dilibatkan dalam program yang menggunakannya dengan preprocessor directiveberupa #include.

  21. Pengenalan Program C • Pengenalan Fungsi-Fungsi Dasar • Fungsi main() Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi titik awal dan titik akhir eksekusi program

  22. Fungsi printf() Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan suatu keluaran pada layar peraga. Untuk menampilkan tulisan Selamat belajar bahasa C Pernyataan yang diperlukan berupa: printf(“Selamat belajar bahasa C”); Dalam bentuk yang lebih umum, format printf() printf(“string kontrol”, daftar argumen);

  23. Mengenai penentu format di antaranya berupa: • %d untuk menampilkan bilangan bulat (integer) • %f untuk menampilkan bilangan titik-mengambang (pecahan) • %c untuk menampilkan sebuah karakter • %s untuk menampilkan sebuah string

  24. Contoh: #include <stdio.h> main( ) { printf(“No : %d\n”, 10); printf(“Nama : %s\n”, “Ali”); printf(“Nilai : %f\n”,80.5); printf(“Huruf : %c\n”,‘A’); }

  25. Pengenalan Praprosesor #include • Dipakai untuk membaca file yang di antaranya berisi deklarasi fungsi dan definisi konstanta. • File-file ini mempunyai ciri yaitu namanya diakhiri dengan ekstensi .h. • Misalnya pada program #include <stdio.h> menyatakan pada kompiler agar membaca file bernama stdio.h saat pelaksanaan kompilasi.

  26. Bentuk umum #include: #include “namafile”

  27. Komentar dalam Program • Untuk keperluan dokumentasi dengan maksud agar program mudah dipahami • Biasanya pada program disertakan komentar atau keterangan mengenai program. • Dalam C, suatu komentar ditulis dengan diawali dengan tanda /* dan diakhiri dengan tanda */.

  28. Contoh /* Tanda ini adalah komentar tidak masuk dalam eksekusi program */ #include <stdio.h> main() { printf(“Coba\n”); //Ini adalah program pertama }

More Related