Pengantar Konsep Pemrograman

30
Pengantar Konsep Pemrograman Konsep Pemrograman Oleh Tita Karlita

description

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 - PowerPoint PPT Presentation

Transcript of Pengantar Konsep Pemrograman

Page 1: Pengantar Konsep Pemrograman

Pengantar Konsep Pemrograman

Konsep PemrogramanOlehTita Karlita

Page 2: Pengantar Konsep Pemrograman

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

Page 3: Pengantar Konsep Pemrograman

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.

Page 4: Pengantar Konsep Pemrograman

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.

Page 5: Pengantar Konsep Pemrograman

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.

Page 6: Pengantar Konsep Pemrograman

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.

Page 7: Pengantar Konsep Pemrograman

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.

Page 8: Pengantar Konsep Pemrograman

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).

Page 9: Pengantar Konsep Pemrograman

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.

Page 10: Pengantar Konsep Pemrograman

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.

Page 11: Pengantar Konsep Pemrograman

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.

Page 12: Pengantar Konsep Pemrograman

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.

Page 13: Pengantar Konsep Pemrograman

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}

Page 14: Pengantar Konsep Pemrograman

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.

Page 15: Pengantar Konsep Pemrograman

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.

Page 16: Pengantar Konsep Pemrograman

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.

Page 17: Pengantar Konsep Pemrograman

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).

Page 18: Pengantar Konsep Pemrograman

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.

Page 19: Pengantar Konsep Pemrograman
Page 20: Pengantar Konsep Pemrograman

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.

Page 21: Pengantar Konsep Pemrograman
Page 22: Pengantar Konsep Pemrograman

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 directive berupa #include.

Page 23: Pengantar Konsep Pemrograman

Pengenalan Program C

Pengenalan Fungsi-Fungsi DasarFungsi main()

Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi titik awal dan titik akhir eksekusi program

Page 24: Pengantar Konsep Pemrograman

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);

Page 25: Pengantar Konsep Pemrograman

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

Page 26: Pengantar Konsep Pemrograman

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’);

}

Page 27: Pengantar Konsep Pemrograman

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.

Page 28: Pengantar Konsep Pemrograman

Bentuk umum #include:

#include “namafile”

Page 29: Pengantar Konsep Pemrograman

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 */.

Page 30: Pengantar Konsep Pemrograman

Contoh

/* Tanda ini adalah komentar tidak masuk dalam eksekusi program

*/#include <stdio.h>

main(){

printf(“Coba\n”); //Ini adalah program pertama}