Anda di halaman 1dari 62

Program Studi – S1 Teknik Informatika

Fakultas Ilmu Komputer


Universitas Pembangunan Nasional (UPN) Veteran Jakarta

Pertemuan 2
OPERASI DATA DASAR &
STRUKTUR KONDISI
DASAR PEMROGRAMAN
TI-IF10401 GANJIL REGULER TA. 2017/2018
Tugas 1
TUGAS #1
• Masalah
Buat algoritme mencetak hasil perhitungan 𝑏 2 − 4𝑎𝑐
• Contoh input (nilai a b c)
234
• Contoh output
-23
Uraian Pemecahan Masalah
TUGAS #1
• Untuk menghitung nilai diskriminan (D),
dibutuhkan tiga buah bilangan bulat (a, b, c)
yang diinputkan oleh user. Kemudian hitung
nilai diskriminan dengan rumus 𝑏 2 − 4𝑎𝑐 dan
hasilnya disimpan pada variabel D. Setelah
dihitung, selanjutnya mencetak nilai D.
Algoritme (Pseudocode)
TUGAS #1
// mencetak nilai diskriminan
procedure Diskriminan {
read(a,b,c);
D = b*b-4*a*c;
print(D);
}
Algoritme (Flowchart)
TUGAS #1
Start

read (a,b,c)

D = b*b-4*a*c

print(D)

End
TUGAS #2
• Masalah
Buat algoritme mencetak bilangan bulat ganjil dari 1 sampai
dengan n
• Contoh input
8
• Contoh output
1
3
5
7
Uraian Pemecahan Masalah
TUGAS #2
• Untuk mencetak bilangan ganjil 1 sampai dengan
n, idenya sama seperti mencetak bilangan bulat 1
sampai dengan n. Namun ada proses tambahan
yakni pengecekkan apakah bilangan tersebut
ganjil atau bukan. Suatu nilai (menggunakan
variabel counter c) dikatakan bilangan ganjil jika
hasil sisa bagi dengan 2 adalah 1. Jika nilai
tersebut bilangan ganjil, maka cetak nilai c.
Proses ini dilakukan terus menerus selama (while)
c kurang dari n.
Algoritme (Pseudocode) TUGAS #2
// Mencetak bilangan ganjil 1 sampai dengan n
procedure print_ganjil_N {
read(n); // sampai bilangan berapa?
c = 1; // insialisasi
while (c<n) { // selama c kurang dari n
if(c%2==1) //cek apakah c bilangan ganjil
print(c);
c=c+1; //nilai c sebelumnya ditambah 1
}
}
Algoritme (Flowchart) TUGAS #2
Start

read (n)

c=0

false
End c<n

true

c mod 2
==1

false true

print(c)

c = c+1
TUGAS #3
• Masalah
Buat algoritme mencetak bilangan bulat dari n sampai
dengan 1
• Contoh input
4
• Contoh output
4
3
2
1
Uraian Pemecahan Masalah
TUGAS#3
• Untuk mencetak bilangan bulat dari n sampai
dengan 1, pertama kita butuh sebuah input
(read) berupa nilai dari n tersebut. Proses
selanjutnya, kita perlu menghitung mundur
sebanyak 1 untuk nilai n. Proses ini dilakukan
berulang selama (while) nilai n tersebut lebih
besar dari 0, sambil mencetak (print) nilai dari
n
Algoritme (Pseudocode) TUGAS#3
// Mencetak bilangan bulat n sampai dengan 1
procedure hitung_mundur {
read(n); // sampai bilangan berapa?
while (n>0) { // selama n lebih besar dari 0
print(n); //cetak nilai n
n = n-1;//nilai n sebelumnya dikurang 1
}
}
Algoritme (Flowchart) TUGAS#3
Start

read (n)

false
End n>0

true
print (n)

n = n-1
Silakan nyalakan komputer Anda

Buka “GEANY”
Struktur Program C
#Contoh 1
/* Program hello.c */
#include <stdio.h>
int main()
{
printf("HELLO\n"); // print
return 0;
}
Struktur Program C
#Contoh 2
/* Program jumlah */
#include <stdio.h>
int main()
{
int a, b, jumlah;
scanf("%d %d", &a, &b);
jumlah=a+b;
printf("%d\n", jumlah); // print
return 0;
}
Data
• Setiap program umumnya mempunyai data, dan setiap
data memiliki tipe tertentu.
• Suatu nilai data 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.
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 : “upnvj", "", "5", "a", "HELLO\n",…
Tipe data
Tipe data Range Keyword
Char or Signed Char -128 to 127 char
Unsigned Char 0 to 255 unsigned char
Int or Signed int -32768 to 32767 int
Unsigned int 0 to 65535 unsigned
Short int or Signed short int -128 to 127 short
Unsigned short int 0 to 255 unsigned short
Long int or signed long int -2147483648 to 2147483647 long int
Unsigned long int 0 to 4294967295 unsigned 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
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, …
Deklarasi Variabel
• Setiap variabel yang digunakan dalam program C harus
dideklarasikan dengan menentukan tipe variabel yang
bersangkutan.
• Tipe variabel menunjukkan tipe data yang yang disimpan.
• Format:
keyword v1, v2, ..., vn;
• Contoh:
int jumlah;
int n, tahun;
double rataan, tinggiBadan;
Format untuk output dan input
Tipe data Format input Format input
Char or Signed Char or Unsigned Char %c %c
Int or Signed int %d %d
Unsigned int %u %u
Short int or Signed short int %hd %hd %hd
Unsigned short int %hu %hu
Long int or signed long int %ld %ld
Unsigned long int %lu %lu
Float %f %f
Double %lf %f
Long Double %Lf %Lf
Inisialisasi
Mendeklarasikan variabel tertentu sekaligus mengisi nilai awal
dari variabel tersebut.
Contoh :
#include <stdio.h>
int main(){
//inisialisasi nilai
int a = 5, b= 10;

//cetak nilai a dan b


printf("%d %d\n", a, b);

return 0;
}
Menuliskan output : printf
• Format:
printf(ekspresi);
printf(“format”, ekspresi);

• Contoh (apa outputnya):


int a=5, b=2, c=15;
float x=12.56;
printf(“Output programnya\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);
Membaca input: 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);
Latihan 1
#include <stdio.h> Jika diberi input 25 200, apa
int main() output program tersebut? Apa
sebenarnya yang dilakukan
{ program tersebut?
int a, b, c;
scanf("%d %d", &a, &b);
c = a; a = b; b = c;
printf("%d %d\n", a, b);
return 0;
}
Latihan 2
#Menghitung luas segitiga
• PseudocodeC
procedure luasSegitiga {
read a, t
luas = 0.5*a*t
print luas
}
Latihan 2
#Menghitung luas segitiga
• Program C
/* Program luas segitiga */
#include <stdio.h>
int main() {
float a, t, luas;
scanf("%f %f", &a, &t);
luas = 0.5*a*t;
printf("%.2f\n", luas);
return 0;
}
Masih ingat dengan definisi
ekspresi?
Ekspresi
• Contoh ekspresi: a+b, a*b, -x , 5, a<b, a==b, dsb.
• Ekspresi dapat berupa operand (misalnya x, 5, …),
dapat pula terdiri atas operand dan operator (misalnya
–x, a+5, …).
• Dua jenis operator berdasarkan operand:
– Unary (satu operand), misal: –a
– Binary (dua operand), misal: a+b
• Setiap ekspresi mempunyai nilai
Jenis operator
• Aritmatika
• Logika
• Penugasan
• Increment, decrement
• if
Operator Aritmatika
Operasi Operator Ekspresi Aljabar Ekspresi C
Penjumlahan + f+7 f+7
Pengurangan - p–c p-c
Perkalian * bm b*m
Pembagian / x:y x/y
Modulo % r mod s r%s
Hasil ekspresi logika:
Operator Logika – TRUE, int bernilai tidak NOL (≠0)
– FALSE, int bernilai NOL

Aljabar C Contoh Arti


= == (x == y) x sama dengan y?
≠ != (x != y) x tidak sama dengan y?
> > (x > y) x lebih besar dari y?
< < (x < y) x lebih kecil dari y?
≥ >= (x >= y) x lebih besar atau sama dari y?
≤ <= (x <= y) x lebih kecil atau sama dari y?
∩ && ((x>0) && (x<3)) x > 0 dan x < 3
∪ || ((x<0) || (x>3)) x < 0 atau x > 3
~ ! ! (x < 0) x tidak lebih kecil dari 0
Operator Penugasan
Assignment operator
• Tanda =
• Ada dua bagian yang dipisahkan =
– L-Value : alamat lokasi memori tempat nilai disimpan
– R-Value : nilai yang disimpan
• Contoh:
– a = 5;
– b = a = 10;
– c = c + 5;
Compound Assignment Operator
• Menggabungkan operator penugasan dengan
operator aritmatika.
• Contoh:
– c = c + 1 dapat ditulis  c += 1
– x = x * 2 dapat ditulis  x *= 2
• Operator yang dapat menggunakan compound
adalah +, -, *, /, dan %
Increment & Decrement
• Increment : ++
• Decrement : --
• Ada dua tipe:
– Prefix, misalnya ++c, --d
Nilai ekspresi adalah nilai setelah dilakukan operasi
increment/decrement
– Postfix, misalnya c++, d—
Nilai ekspresi adalah nilai sebelum dilakukan operasi
increment/decrement
• Contoh (misal nilai awal a=5, b=8)
– Nilai a++ adalah 5, tetapi nilai a setelah itu adalah 6
– Nilai ++b adalah 9, dan nilai b setelah itu adalah 9
Operator if(?:)
• Sintaks: ( kondisi ? eks1 : eks2 )
• Artinya jika kondisi bernilai benar (true) maka ekspresi
tersebut bernilai eks1. Selainnya, bernilai eks2.
• Contoh:
n1 += ( (nilai < 10) ? 1 : 0 )
• setara dengan:
if (nilai<10)
n1=1;
else
n1=0;
Typecasting
• Proses konversi sebuah variabel dari satu tipe
ke tipe yang lain.
• Bentuk : (type_name) expression
• Contoh:
int sum = 17, count = 5;
float mean;
mean = (float) sum / count;
Latihan Soal #1
Apa output program berikut?
#include <stdio.h>
main()
{
int a = 5;
printf("\n%d", a += 3);
printf("\n%d", a -= 3);
printf("\n%d", a *= 3);
printf("\n%d", a /= 3);
printf("\n%d", a %= 3);
printf("\n%d", a); printf("\n%d", ++a);
printf("\n%d", a); printf("\n%d", a++);
printf("\n%d", a); printf("\n%d", --a);
printf("\n%d", a); printf("\n%d", a--);
printf("\n%d", a);
return 0;
}
Latihan Soal #2
Mana di antara penamaan variabel berikut yang
benar? Mengapa yang lain salah?
a. 3n+1
b. n+1
c. 3n1
d. 3n_1
e. n_31
Latihan Soal #3
Variabel gaji memiliki kisaran nilai 1,000,000 sampai dengan 2,000,000 rupiah dengan
satuan terkecil adalah satu rupiah, variabel bulan memiliki kisaran nilai 1-12 yang
menunjukkan nomor bulan Januari hingga Desember, dan variabel potongan adalah
nilai persen dari gaji. Cara membuat deklarasi yang paling tepat ketiga variabel
tersebut adalah .....
a. int gaji, bulan, potongan;
b. long int bulan, gaji, potongan;
c. int bulan;
long int gaji;
float potongan;
d. int bulan;
float potongan, gaji;
e. double gaji, potongan;
int bulan;
Simple and
Compound statement
• Compound statement adalah beberapa pernyataan sederhana
(simple statements) yang diapit oleh tanda kurung kurawal {…}
• Contoh:
#include <stdio.h>
main()
{
int i=0, j=1;
printf("A");
Compound statement
i = i + 1;
return 0;
}
Sequential structures
• Proses terhadap suatu program yang terdiri dari beberapa statement dilakukan
berurutan secara sekuensial, satu per satu, mulai dari atas ke bawah  sequential.
• Contoh: output program berikut adalah ABC
#include <stdio.h>
main()
{
int i=0, j=1;
printf("A");
i = i + 1;
printf("B");
j = j + 1;
printf("C");
return 0;
}
Selection control structures
• Program akan memilih satu atau lebih statement untuk
diproses atau tidak diproses berdasarkan kondisi
tertentu
• Kondisi dinyatakan sebagai ekspresi.
• Pernyataan yang digunakan disebut conditional
statement
• Ada dua jenis:
– Pernyataan IF
– Pernyataan SWITCH (akan dibahas dipertemuan
selanjutnya)
Conditional statement:
IF
Bentuk umum:
if (kondisi)
simple or compound statement;
atau
if (kondisi)
simple or compound statement;
else
simple or compound statement;
Conditional statement:
Diagram alir untuk
IF Diagram alir untuk
if…….. if……. else …….

Kondisi Kondisi
? ?

Statement

Statement Statement
Pernyataan IF:
Contoh #1
#include <stdio.h> Apa output program jika diberi
main(){ input 5 20 ?

int a, b; Apa output program jika diberi


scanf("%d %d", &a, &b); input 20 5 ?
if (a<b)
printf("%d\n", b-a);
printf("%d\n", a-b);
return 0;
}
Pernyataan IF:
Contoh #2
#include <stdio.h>
main(){
int a, b;
scanf("%d %d", &a, &b);
if (a<b) {
printf("%d\n", b-a);
printf("%d\n", a-b);
}
return 0;
}
Apa output program jika diberi input 20 5 ?
Pernyataan IF:
Contoh #3
#include <stdio.h>
main(){
float grade;
scanf("%f", &grade);
if (grade >= 60) puts(“Passed”);
else
{
puts(“Failed.”);
puts(“You must take this course again.”);
}

return 0;
}
Chained Conditional
• Struktur seleksi if yang
bercabang dengan
banyak kondisi
• Contoh, berapa nilai b
jika diberikan masukan
12?
Chained Conditional
if (x < y)
printf("x is less than y");
else if (x > y)
printf("x is greater than y");
else
printf("x and y must be
equal");
Latihan #1
• Identifikasi dan perbaiki error yang terjadi
pada potongan program berikut:
– scanf(“%.4f”, &value);
– if (gender == 1)
puts (“Woman”)
else;
puts (“Man”);
Latihan #2
Menghitung berat benih jagung
• Pak Dengklek memiliki kebun jagung berbentuk segiempat dengan
panjang dan lebar dalam satuan meter dan selalu berupa bilangan
bulat. Jagung akan ditanam dengan jarak tanam masing-masing 0.5
meter membentuk segiempat. Jagung selalu ditanam 1 meter dari
batas pinggir kebun, tidak pernah ditanam dibatas pinggirannya. Di
setiap lubang tanam, selalu dimasukkan 2 biji benih jagung. Setiap
benih memiliki berat yang sama, yakni 0.15 gram.
• Bantulah Pak Dengklek menghitung berapa berat benih jagung yang
dibutuhkan, dengan membuat sebuah program C. Berat dituliskan
dalam satuan gram dengan dua digit di belakang koma.
Latihan #2
Menghitung berat benih jagung
• Contoh : jika panjang dan lebar kebun adalah
4 m dan 3 m, maka dibutuhkan benih jagung
seberat 4.50 gram (15 x 2 x 0.15)

3m

4m
Latihan #2
Menghitung berat benih jagung
• Contoh : jika panjang dan lebar kebun adalah
4 m dan 3 m, maka dibutuhkan benih jagung
seberat 4.50 gram (15 x 2 x 0.15)

3m

4m
Latihan #2
Menghitung berat benih jagung
• Format Masukan :
Masukkan berupa dua buah bilangan bulat yang
menunjukkan nilai panjang dan lebar kebun
• Format Keluaran :
Sebuah bilangan pecahan (dua angka belakang
koma) yang merupakan berat benih jagung. Output
program selalu diakhiri dengan newline
Latihan #2
Menghitung berat benih jagung
• Contoh Masukan : • Contoh Masukan :
43 52
• Format Keluaran : • Format Keluaran :
4.50 2.10
Latihan #2
Menghitung berat benih jagung
/* Program menghitung berat jagung*/
#include <stdio.h>
int main()
{
int p, l, n_lubang;
float berat_benih;
scanf("%d %d", &p, &l);
n_lubang = (((p-2) * 2) + 1)*(((l-2) * 2) + 1);
berat_benih = n_lubang * 2 * 0.15;
printf("%.2f\n", berat_benih);
return 0;
}
Tugas 2 #1
Aritmatika, Nilai Terbesar, dan Nilai Terkecil
• Buatlah sebuah program C yang terdiri dari 3
input bilangan bulat yang berbeda, kemudian
cetak nilai-nilai berikut :
– Jumlah
– Rata-rata
– Hasil kali
– Nilai terbesar
– Nilai terkecil
Tugas 2#2
Body Mass Index Calculator
Buku Deitel “How to Program C”
Exercise 2.32 halaman 68
Tugas 2
• Tugas dikumpulkan melalui e-learning
selambatnya Kamis, 14 September 2017, pukul
23.55 WIB.
• Mohon perhatikan format fail.
• Tugas dikumpulkan dalam bentuk rar/zip yang
berisi 2 fail program C untuk setiap soal.
• Penamaan rar/zip sbb: "Tugas2_A/B_NIM_Nama"

Anda mungkin juga menyukai