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