pengumuman - julio.staff.ipb.ac. mencetak huruf a ! bahasa mesin: 1011 0100 0000 0010 1011 0010 0100

Download Pengumuman - julio.staff.ipb.ac. mencetak huruf A ! Bahasa mesin: 1011 0100 0000 0010 1011 0010 0100

Post on 03-Mar-2019

214 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

9/21/14

ILKOM IPB 1

Pengumuman

Ada sekitar 50 mahasiswa yang belum bergabung di: http://www.facebook.com/groups/algor.ipb

Ada koreksi testcase pada soal 1.2.05 Fungsi Matematika.

Masih ada sekitar 150 mahasiswa yang sama sekali belum mendapatkan nilai di Kontes PR.

Harap segera mengerjakannya sebagai latihan awal membuat program yang sangat mudah.

Soal PR dapat bertambah sebelum beralih ke kelompok soal berikutnya.

ALGORITME DAN PEMROGRAMAN Kuliah #2 Struktur program C Tipe data Masukan / Keluaran

9/21/14

ILKOM IPB 2

Bahasa Pemrograman

Bahasa pemrograman adalah notasi yang digunakan untuk menulis program (komputer) dengan aturan tertentu. bahasa mesin: biner; tergantung pada prosesor yang

digunakan; tidak perlu penerjemahan bahasa tingkat rendah: kode-kode (mis. MOV, ADD, DIV);

tergantung pada prosesor yang digunakan; diterjemahkan ke bahasa mesin dengan assembler

bahasa tingkat tinggi: dekat ke bahasa manusia; diterjemahkan ke bahasa mesin dengan compiler (menghasilkan executable) atau interpreter (tidak menghasilkan executable)

3

Contoh: mencetak huruf A

Bahasa mesin: 1011 0100 0000 0010 1011 0010 0100 0001 1100 1101 0010 0001 1100 1101 0010 0000

Bahasa assembly MOV AH, 02 MOV DL, 41H INT 21H INT 20H

Bahasa C #include int main() { printf("A"); return 0; }

4

9/21/14

ILKOM IPB 3

Bahasa C

Bahasa C disusun berdasarkan dua bahasa terdahulu, yaitu BCPL dan B.

C pertama kali dipublikasikan oleh Kernighan dan Ritchi pada tahun 1978

Standar C (ISO/IEC 9899:1999 ) Mata kuliah ini menggunakan C99 Standar terbaru C11

5

Perbedaan C99 dengan Standar Sebelumnya

6

Komentar satu baris dengan // seperti C++ Inline function Tipe data baru:

long long int: bilangan bulat sangat besar complex: bilangan kompleks (pakai complex.h) bool: true/false (pakai stdbool.h)

Variable-length array (di bab array)

9/21/14

ILKOM IPB 4

Tahapan pembuatan dan pemrosesan program C

Edit (menulis program di komputer) disebut juga coding, dan hasilnya disebut source code

Preprocess atau Compile object module (obj)

Link executable file (exe)

Load: memuat program ke memori Execute: menjalankan program

Text editor: NotePad, vi,

Compiler: Turbo C, Borland C, gcc,

Command prompt

Turbo C,

Borland C,

Bloodshed Dev-C++

CodeBlocks

7

Struktur program C (contoh 1)

Program menuliskan teks HELLO ke layar. /* Program hello.c */ #include int main() { printf("HELLO\n"); // print return 0; }

Komentar Tidak diproses oleh

compiler Untuk memperjelas Preprocessor directives Menyertakan file stdio.h yang berisi

informasi yang diperlukan oleh fungsi-fungsi yang akan digunakan dalam program

File stdio.h disebut header file Tergantung kebutuhan Fungsi utama (main routine) Setiap program C harus mengandung

fungsi main Pernyataan pertama yang dieksekusi

oleh program C Fungsi menuliskan ke standard output Disebut statement Tiap statement harus diakhiri titik

koma (;)

Akhir dari fungsi main Menunjukkan program berakhir

dengan normal

Compound statement Terdiri atas lebih dari satu statement Diapit oleh kurung kurawal { }

8

9/21/14

ILKOM IPB 5

Struktur program C (contoh 2)

Program menjumlahkan dua bilangan bulat. /* Program jumlah */ #include int main(){ int a, b, jumlah; scanf("%d %d", &a, &b); jumlah = a + b; printf("%d\n", jumlah); // print return 0; }

Deklarasi variabel Tiap variabel yang digunakan harus

dideklarasikan Tergantung pada tipe data, dalam

hal ini bil.bulat (int)

Fungsi membaca data Dua jenis argumen, yaitu format dan

variabel Format menunjukkan tipe data yang

dibaca, dalam hal ini adalah dua nilai desimal bulat (%d %d).

Variabel yang menerima nilai data, diawali dengan tanda & Pernyataan penugasan Memberikan nilai a+b (sebelah

kanan tanda =) ke variabel jumlah (sebelah kiri tanda =)

Fungsi menulis keluaran Ada dua argumen: format dan

variabel (atau ekspresi) Mirip fungsi scanf, tetapi argumen

kedua adalah ekspresi

9

Data

Setiap program umumnya mempunyai data, dan setiap data memiliki nilai dan tipe tertentu.

Suatu nilai di dalam program dituliskan dalam bentuk literal constant (literal: hanya berupa nilai, constant: tidak berubah).

Setiap literal mempunyai tipe, misalnya: 3 bertipe integer, 4.15 bertipe floating point.

Nilai literal bersifat nonaddressable, yaitu tidak memiliki alamat dalam memori komputer.

10

9/21/14

ILKOM IPB 6

Literal Constant

Literal integer constant bilangan bulat Desimal : 24, 103, -5, Oktal : 024, 0103, Heksadesimal : 0x24, 0x103,

Literal floating point constant bilangan riil Desimal floating point : 3.14, -90.254, Eksponensial : 1.0E-3

Literal character constant kode ASCII Printable character : '', 'a', '4', '0', '*', Escape sequence : '\n', '\t', '\r', '\0', '\a', '\\', '\"'

Literal string constant beberapa character Contoh : "ipb", "", "5", "a", "HELLO\n",

11

Tipe data 12

Jenis bilangan: bulat/real/kompleks Rentang bilangan: short, long, dll

Nilai minimum dan maksimum tergantung pada compiler yang digunakan (lihat limits.h) n Rentang nilai tipe int berbeda-beda n Patokan rentang: short int long long long

Rentang pada slide ini berdasarkan nilai di LX Rentang lebih besar: lebih fleksibel, tapi lebih boros memori

Dukungan terhadap nilai negatif: signed unsigned

9/21/14

ILKOM IPB 7

Data Type Range Keyword

Signed Char -128 to 127 char

Unsigned Char 0 to 255 unsigned char

Signed int -2147483648 to 2147483647 int

Unsigned int 0 to 4294967295 unsigned

Signed short int -32768 to 32767 short

Unsigned short int 0 to 65535 unsigned short

Signed long int -2147483648 to 2147483647 long int

Unsigned long int 0 to 4294967295 unsigned long int

Signed long long int -9223372036854775808 to 9223372036854775807

long long int

Unsigned long long int 0 to 18446744073709551615 unsigned long long int

Float 3.4 e-38 to 3.4 e+38 Float

Double 1.7e-308 to 1.7e+308 double

Long Double 3.4 e-4932 to 3.4 e+4932 long double

13

Variabel

Literal constant disimpan ke dalam suatu variabel, agar dapat diakses di dalam program.

Variabel merupakan suatu identifier, suatu identitas yang dibuat sendiri dengan aturan: Terdiri atas satu atau lebih karakter Dimulai dengan huruf, dan dapat diikuti oleh alphanumeric

atau underscore (_) Dapat dimulai dengan underscore, tetapi umumnya

digunakan oleh library C Contoh penamaan identifier:

Benar : n, x1, jumNegatif, Salah : 1x, jumlah bilangan,

14

9/21/14

ILKOM IPB 8

Deklarasi Variabel

Setiap variabel yang digunakan dalam program C harus dideklarasikan dengan menentukan tipe variabel yang bersangkutan.

Tipe variabel menunjukkan tipe data yang disimpan. Format:

keyword v1, v2, ..., vn; Contoh: int jumlah; int n, tahun; double rataan, tinggiBadan;

15

Format untuk keluaran dan masukan

Data type Format

Signed Char or Unsigned Char %c

Signed int %d

Unsigned int %u

Signed short int %hd

Unsigned short int %hu

Signed long int %ld

Unsigned long int %lu

Signed long long int %lld

Unsigned long long int %llu

Float %f

Double %lf

Long Double %Lf

16

9/21/14

ILKOM IPB 9

Menuliskan keluaran :: printf

Format: printf(ekspresi); printf("format", ekspresi);

Contoh (apa keluarannya?): int a=5; b=10; c=15; float x=12.56; printf("Keluaran Program\n"); printf("%d-%d=%d\n", b, a, b-a); printf("Nilai x adalah %.2f\n", x); printf("a=%d\nb=%d\nc=%d", a, b, c);

17

18

9/21/14

ILKOM IPB 10

Nilai di Luar Rentang atau Beda Tipe? 19

#include int main () { short int x=5.3, y=40000; float z=y; printf("Keluaran Program\n"); printf("%d+%d=%d\n", x, y, x+y); printf("Nilai z adalah %.2f\n", z); printf("x=%hd\ny=%hd\nz=%f",x,y,z); return 0; }

Keluaran? Lakukan tracing. Gunakan project di Code::Blocks agar debugging aktif.

Membaca masukan :: scanf

Format: scanf("format", &variabel); Contoh

(bagaimana contoh data yang dibaca?): int a, b; float x; scanf("%d", &a); scanf("%d%d%f", &a, &b, &x);

20

9/21/14

ILKOM IPB 11

Latihan 1

#include int main() { int a, b, c; scanf("%d%d", &a, &b); c = a; a = b; b = c; printf("%d %d\n", a, b); return 0; } Jika diberi masukan 35 200, apa keluaran program tersebut? Apa sebenarnya yang dilakukan program tersebut? Trace-lah program tersebut.

21

Latihan 2 :: Menghitung luas segitiga

Masalah Program menuliskan nilai luas segitiga yang memiliki alas dan tinggi tertentu, dengan format dua digit di belakang koma.

Perumusan masalah