PROGRAMMING LANGUAGE - My life Blog Is An Inspiration
Download
Report
Transcript PROGRAMMING LANGUAGE - My life Blog Is An Inspiration
PROGRAMMING
LANGUAGE
USING C/ C++
Tentang saya
Nur Cahyo Wibowo, S.Kom
S1 Teknik Informatika ITS 1998 – 2003
HP 081330266109
Email: [email protected] atau
[email protected]
MK : BP, BPL, Sistem Digital, DAA,
Pemeliharaan PL, Arsitektur PL
Sedang menempuh S2 di ITS 2006
BAHASA PEMROGRAMAN
MATA KULIAH DASAR INFORMATIKA
PRASYARAT PEMILIHAN PROGRAM
STUDI [ SI MAUPUN TF ]
PENILAIAN:
UTS
UAS
QUIZ
TUGAS
30 %
40 %
15 %
15 %
PROLOG:
THE COMPUTER SYSTEM
SOFTWARE
HARDWARE
PROGRAMMING
O/ S
GAMES
APPLICATIONS
BRAINWARE
PROGRAMMING
FRAMEWORK
FILE APLIKASI
COMPILING
RUNNING
SOURCE CODE
MEMORI/ RAM
OPERATING
CODING
USER
PROGRAMMER
PROGRAMMING HISTORY
LANGUAGE GENERATION
1ST GENERATION
ASSEMBLER
2ND GENERATION
FORTRAN, C, PASCAL, BASIC
3RD GENERATION
DELPHI, JAVA, VISUAL BASIC
4TH GENERATION
SQL (STRUCTURED QUERY LANGUAGE)
ALGORITHM
Adalah urutan langkah-langkah logika yang
menyatakan suatu tugas dalam menyelesaikan
suatu masalah atau problem.
Contoh: Buat algoritma untuk menentukan
apakah suatu bilangan merupakan bilangan ganjil
atau bilangan genap.
Algoritmanya :
1. Bagi bilangan dengan bilangan 2.
2. Hitung sisa hasil bagi pada langkah 1.
3. Bila sisa hasil bagi sama dengan 0 maka bilangan
itu adalah bilangan genap tetapi bila sisa hasil
bagi sama dengan 1 maka bilangan itu adalah
bilangan ganjil.
FLOWCHART
BIASA DISEBUT DENGAN DIAGRAM ALIR.
SALAH SATU METODE UNTUK
MEREPRESENTASIKAN ALGORITMA
SELAIN PSEUDOCODE DAN URUT-URUTAN
LANGKAH.
MENGGUNAKAN SIMBOL-SIMBOL BANGUN
DATAR BESERTA ANAK PANAH SEBAGAI
PENUNJUK ARAH PROSES.
SIMBOL
NAMA
FUNGSI
TERMINATOR
Permulaan/ akhir
program
GARIS ALIR
(FLOW LINE)
Arah aliran program
PREPARATION
Proses inisialisasi/
pemberian harga awal
PROSES
Proses perhitungan/
proses pengolahan
data
INPUT/ OUTPUT
DATA
Proses input/ output data,
parameter, informasi
PREDEFINED
PROCESS
(SUB PROGRAM)
Permulaan sub program/ proses
menjalankan sub program
DECISION
Perbandingan pernyataan,
penyeleksian data yang
memberikan pilihan untuk
langkah selanjutnya
ON PAGE
CONNECTOR
Penghubung bagian-bagian
flowchart yang berada pada satu
halaman
OFF PAGE
CONNECTOR
Penghubung bagian-bagian
flowchart yang berada pada
halaman berbeda
Contoh:
Flowchart untuk menentukan bilangan genap atau ganjil
Start
Input
Bilangan
Hitung sisa bagi
antara bilangan
dengan angka 2
A
Apakah
Sisa = 0
T
Y
Cetak
Genap
A
End
Cetak
Ganjil
AKAR PERS. KUADRAT
1.
2.
3.
4.
Mulai
Masukkan nilai variabel A, B, C
Hitung D = B2 – 4*A*C
Jika D = 0 maka X1 = X2 = – B/(2*A)
Tapi jika D < 0 maka X1, X2 Imaginer
selain itu maka X1,2 = (– B ± √D)/(2*A)
5. Tampilkan X1, X2
6. Selesai
DIKET: Y = AX2 + BX + C
Start
Input Nilai
A, B, C
FLOWCHART AKAR
PERSAMAAN KUADRAT
D = B2 – 4*A*C
Y
D=0
?
T
X1 = X2 = – B/(2*A)
Y
D<0
?
X = (– B ± √D)/(2*A)
T
X1, X2 Imaginer
Cetak
X1, X2
End
Bilangan Faktorial
1. Mulai
2. Masukkan N (N adalah bilangan yang akan
dihitung nilai faktorialnya)
3. Set variabel Faktorial 1
4. Set variabel Angka 1
5. Hitung Faktorial Faktorial * Angka
6. Angka Angka + 1
7. Apakah Angka > N ? Jika TIDAK kembali ke
langkah (4). Jika YA tampilkan nilai Faktorial.
8. Selesai
FLOWCHART FAKTORIAL
EX. 4! = 4 x 3 x 2 x 1 = 24
Start
Input N
A
Faktorial = Faktorial * Angka
Angka = Angka + 1
T
Faktorial 1
Angka 1
Angka > N ?
Y
A
Cetak
Faktorial
End
LATIHAN SOAL
1.
2.
3.
4.
5.
6.
Buatlah algoritma + flowchart untuk memasak mi instan!
Buatlah algoritma + flowchart untuk naik angkot/ lyn!
Buat algoritma untuk menghitung jumlah N suku dari
deret aritmatika dengan pola berikut :
Sn = 3 + 7 + 11 + …… + (4n-1)
Buat flowchart untuk mencetak pasangan nilai X dan Y
dimana hubungan antara X dan Y memenuhi
persamaan Y = X3 – 2X +1 dan nilai x berubah dari –10
sampai 10 !
Buat algoritma + flowchart untuk menentukan apakah
suatu bilangan merupakan bilangan prima atau bukan!
Buat algoritma + flowchart untuk mencetak N buah
bilangan prima yang pertama!
LEARNING SUBJECTS
Introduction to Programming
Algorithm and Flow Chart
Data Type and Variable
Input and Output
Sequential Programming Top Down
Branching Selecting What is The Next Step?
Looping Doing Some Task for Many Times
Function/ Subrutin Part of Program
Array Collection of Same Type of Data
Struct Collection of Different Types of Data
Pointer Memory Accessability
PROGRAMMING STEPS
ANALISA MASALAHNYA
INPUT-NYA APA SAJA?
ALGORITMA PROSESNYA BAGAIMANA?
OUTPUT-NYA APA?
KETIK SOURCE CODE-NYA
HEADER FILES #include < library >
GLOBAL SECTIONS VARIABEL GLOBAL, FUNGSI BANTU
MAIN SECTIONS VARIABEL LOKAL, INPUT, PROSES,
OUTPUT
JALANKAN PROGRAMNYA ADA ERROR ?
TES HASILNYA SUDAH BENAR ?
BUAT ARSIP/ DOKUMENTASINYA
VARIABEL & TIPE DATA
Variabel = penyimpan nilai/ data.
Setiap masalah harus dianalisa terlebih dahulu variabel
apa saja yang terlibat/ dibutuhkan.
Setiap variabel ditentukan tipe datanya yang sesuai.
Variabel
Utama menyimpan data input/ output
Bantu dipakai selama proses
Tipe data
Angka int, float, double, long, single
Karakter char
Turunan array, struct, union, pointer
INPUT & OUTPUT
FORMAT
Angka %i, %d, %f
Huruf/ karakter %c
String/ array of char %s
Alamat memori %p
INPUT
scanf(format, variabel) scanf ( “%d”, &angka );
getch(), getche(), getchar()
gets(variabel) gets ( nama );
OUTPUT
printf(kalimat, variabel) printf ( “IPK = %f“, ipk );
putch(), putchar()
puts(variabel) puts ( alamat );
CONTROL STRUCTURES
SEQUENTIAL/ URUTAN
Program dijalankan mulai dari perintah paling
atas/ awal sampai paling akhir secara
berurutan/ sekuensial.
BRANCHING/ PERCABANGAN
Penyeleksian kondisi (TRUE/ FALSE) untuk
menentukan proses selanjutnya
LOOPING/ PERULANGAN
Mengulangi proses selama syarat/ kondisi
tertentu terpenuhi
SEQUENTIAL/ URUTAN
Entry
Action 1
Action 2
Action 3
Exit
BRANCHING/ PERCABANGAN
Entry
Condition 1
TRUE
FALSE
Action 1
Condition 2
FALSE
TRUE
Action 2
Action 3
Exit
LOOPING/ PERULANGAN
Entry
Action 1
Action 2
Looping 1
Y
Y
T
if 1
if 2
Looping 2
T
Action 3
Exit
IF - ELSE
Biasa digunakan untuk seleksi nilai/ data
Kondisi jamak ((kondisi_1) &&/ || (kondisi_2))
if (kondisi=TRUE) jalankan_statement_ini
if (kondisi=TRUE) statement_1
else statement_2
// if kondisi=FALSE
if (kondisi=TRUE) statement_1
else if (kondisi=TRUE) statement_2
else statement_3
// if kondisi=FALSE
if (kondisi=TRUE)
if (kondisi=TRUE) nested_statement
SWITCH - CASE
Biasa digunakan untuk membuat menu dalam program
switch (variabel_pilihan) {
case nilai_1 : statemen_1; break;
case nilai_2 : statemen_2; break;
case nilai_3 : statemen_3; break;
…
default: statemen_default;
}
Bisa berbentuk nested/ bersarang
LOOP FOR
Syntax source code lebih ringkas
Biasa dipakai untuk perulangan yang
sudah jelas jumlah perulangannya
for(nilai_awal; syarat_ulang; inc/dec)
{
statemen_yang_akan_diulang2;
}
LOOP WHILE & DO-WHILE
Biasa dipakai untuk perulangan dengan kondisi
bersyarat/ logika
while (kondisi=TRUE)
{
jalankan_statemen_ini;
}
do
{
jalankan_statemen_ini;
}
while (kondisi=TRUE)
NESTED LOOP
Perulangan bersarang (terjadi di dalam perulangan)
Yang biasa dipakai adalah loop FOR karena lebih
mudah & ringkas
Contoh kasus yang sering dipakai adalah
pengolahan tampilan, angka dan matrik
for(int i=1; i<=5; i++)
{
for(int j=1; j<=i; j++)
printf(“%d “, j);
printf(“\n”);
}
// milik loop for dalam
// milik loop for luar
FUNGSI
Adalah subrutin/ subprogram/ potongan program
Mempunyai tugas tertentu
Mempunyai bagian RETURN VALUE dan
PARAMETER/ ARGUMEN
Ada istilah deklarasi & prototype fungsi
tipe_return_value nama_fungsi (parameter)
{
statemen2;
// badan fungsi
return (return_value/ variabel);
}
ARRAY 1 DIMENSI
ARRAY adalah TIPE DATA TURUNAN
1 variabel bisa untuk menyimpan banyak
data yang bertipe sama
Memiliki indeks untuk tiap elemen
Umumnya menggunakan LOOPING
untuk INPUT, PROSES & OUTPUT datadatanya
ARRAY MULTIDIMENSI (2)
Mempunyai elemen BARIS & KOLOM
Dapat dipakai untuk representasi sebuah
MATRIK
Struktur data untuk rekapitulasi informasi
berdasar baris dan kolom TABEL,
misal: penjualan barang
Memakai NESTED LOOPING dalam
operasinya
STRUCT
STRUCT adalah TIPE DATA TURUNAN
1 variabel bisa untuk menyimpan
beberapa data yang bisa berbeda
tipenya
Menggunakan operator titik (.) untuk
mengakses tiap elemen datanya.
Seringkali dikombinasikan dengan
ARRAY ARRAY of STRUCT
POINTER
Adalah TIPE DATA TURUNAN
Variabel bertipe pointer digunakan untuk
menyimpan ALAMAT sebuah data,
BUKAN NILAI datanya.
Operator yang sering dipakai:
& mendapatkan alamat memori
* mengakses nilai dari sebuah pointer