SlideShare a Scribd company logo
Algoritma &
Pemrograman 2
Algoritma
 Asal kata Algoritma (algorism -algorithm) berasal
dari nama Abu Ja’far Muhammad ibn Musa Al-
Khuwarizmi
 Ilmuan Persia yang menulis kitab “al jabar w’al-
muqabala”(rules of restoration and reduction –
aturan pemugaran dan pengurangan)
 Tahun 825 M
 Berasal dari Iran
 Masuk Indonesia tahun 1980-an
Definisi Algoritma
 Algoritma adalah urutan langkah logis tertentu untuk
memecahkan suatu masalah.
<>Urutan langkah logis, yang berarti algoritma harus
mengikuti suatu urutan tertentu, tidak boleh melompat-
lompat.
<>(Dari Microsoft Press Computer and Internet
Dictionaary 1997, 1998)
 Alur pemikiran dalam menyelesaikan suatu pekerjaan
yang dituangkan secara tertulis.
<>Alur pikiran, sehingga algoritma seseorang dapat
juga berbeda dari algoritma orang lain.
<>Tertulis, yang artinya dapat berupa kalimat, gambar,
atau tabel tertentu.
<>(Dari Algoritma dan Struktur Data dengan C, C++,
dan Java oleh Moh Sjukani hal 1)
Review Algoritma 1
 Buatlah algoritma untuk mencari sisi
miring dari suatu segitiga siku-siku, jika
diketahui panjang sisi yang membentuk
sudut siku-siku.
 Menghitung usia berdasarkan tahun (saja)
lahir dan tahun (saja) sekarang
 C dan C++ merupakan bahasa
pemrograman yang tidak memiliki
kepanjangan apapun.
 C Diciptakan oleh Dennis Ritchie (1972)
 C++ diciptakan oleh Bjarne Stroustroup
(1982) merupakan pengembangan dari
bhs C dan mendukung pemrograman
Berorientasi Objek
Bahasa C
Kode sumber : pertama.c
#include <stdio.h>
Int main()
{
printf (“Selamat Belajar Cn”);
return 0;
}
Output Program
Program di atas menampilkan tulisan
Selamat Belajar C
Ke layar
Penjelasan Program
#include <stdio.h>
Int main()
{
printf (“Selamat Belajar Cn”);
return 0;
}
Menyertakan
berkas
header stdio.h
Tipe kode
keluar
program
Awal tubuh fungsi
main()
Pernyataan
untuk
menyatakan
string
Pernyataan untuk
memberi kode
keluar program
Akhir tubuh
fungsi main()
Penjelasan Program (Lanjt.)
 Berkas header (berekstensi.h) adalah berkas yg berisi
prototipe fungsi, definisi konstanta, dan definis variabel.
Prototipe fungsi berupa judul suatu fungsi yg dilengkapi
dengan argumen dan tipe argumen serta tipe nilai balik
untuk fungsi yg memberikan nilai balik. Ini merupakan
persyaratan selama kompilasi. Fungsi adalah kumpulan
kode C yg diberi nama dan ketika nama tsb dipanggil
maka kumpulan kode tsb dijalankan.
 Praprosessor #include adalah suatu perintah yg
digunakan untuk mengatur kompiler agar membaca
berkas header yg disertakan dibelakang kata include
saat pelaksanaan kompilasi
Penjelasan Program (Lanjt.)
 Main() adalah fungsi yg akan dijalankan pertama kali ketikan program
dieksekusi. Kata int di depan main() menyatakan bahwa program
memberikan nilai balik yg bertipe int. Tipe int adalah tipe yg menyatakan
bilangan bulat.
 Nilai balik program ditentukan oleh pernyataan return. Pada program di
depan , return 0 menyatakan bahwa nilai balik program adalah nol. Nilai
balik nol biasa digunakan untuk menyatakan bahwa program berhasil
melaksanakan tugas yg di bebankannya.
 Pernyataan di dalam C adalah suatu perintah yg dapat berdiri sendiri dalam
melaksanakan suatu aksi dan dijalankan ketika program dieksekusi. Setiap
pernyataan ditulis dengan diakhiri tanda titi-koma (;). Pada program di
depan, ada dua buah pernyataan, yaitu :
1. printf (“Selamat Belajar Cn”);
2. return 0;
Printf() adalah suatu fungsi yg prototipenya terdapat dalam berkas stdio.h.
Yang berada dalam tanda kurung yg mengikuti printf pada program di depan
disebut string. String adalah deretan karakter yg ditulis didalam tanda petik
ganda (“)
Perbedaaan dengan C++
 Berkas header yg digunakan bukan
berupa stdio.h melainkan iostream.h
 Pernyataan untuk menampilkan keluaran
berupa cout.
 Untuk menyatakan inputan berupa cin
Identifier
Identifier adalah suatu nama yg dugunakan dalam program
untuk menyatakan variabel, fungsi, dll. Aturan umum yg
berlakuk dalam membuat pengenal baik pda C maupun
C++ :
 Berawalan huruf kapital, huruf kecil atau karakter garis
bawah (_)
 Bagian berikutnya dapat berupa huruf , angka (0..9),
atau karakter garis bawah
Catt :
Haruf kecil dan huruf kapital dibedakan pada pengenal
Tipe Data
Tipe Keterangan
char Menyatakan sebuah karakter (bisa berupa
huruf seperti A dan a, digit seperti 0 atau 7,
atau simbol seperti * dan &)
double Menyatakan bilang titik mengambang (bil. Real)
dengan ketelitian tinggi
float Menyatakan bilang titik mengambang (bil. Real)
dengan ketelitian rendah
int Menyatakan bilang bulat anatara -32768 s.d
32767
long int Menyatakan bilang bulat yg berkisar antar
-2147483648 s/d 2147483648
Variabel
Variabel adalah suatu nama yg menyatakan tempat dalam
memori komputer yg digunakan untuk menyimpan suatu
nilai dan nilainya dapat diubah sewaktu-waktu ketika
program sedang dieksekusi.
24
Misalnya, dulu
berisi 23
Sekarang
berisi 24
Mendeklarasikan Variabel
Pendeklarasian variabel digunakan untukmemesan lokasi
dalam memori komputer dan menetukan tipe dari data yg
dapat disimpan dalam variabel. Bentuk pendeklarasiannya
adalah :
tipe_data nama variabel;
Contoh :
int n;
char ch;
long int jum_penduduk;
double jarak;
Jika ada beberapa var dengan tipe yg sama
pendeklarasian dilakukan dengan menggunakan sebuah
pernyataan. Contoh :
Int i, j, k;
Memberi nilai ke variabel
Bentuk :
Variabel = nilai;
Contoh :
n = 7;
Literal/Konstanta
Menyatakan nilai yg tetap di dalam program.Contoh :
2.3 (literal bilangan titik mengambang)
10 (literal bilangan bulat)
‘K’ (sebuah karakter)
Tipe Keterangan
int Berupa bil. Bulat antara -32768s/d32767. tanda pemisah ribuan tidak boleh digunakan
long int Berupa bil.bulat antara -2147483648 s/d 2147483647. Tanda pemisah ribuan ribuan tdk
boleh digunakan. Tanda L atau 1perlu disertakan dibagian literal untuk menyatakan
long int secara eksplisit. Cont.:4276898L
float Harus ditulis dengan akhiran F atau f. Tanda pecahan berupa titik. Notasi sains seperti
2.2e+04 diperkenankan (artinya 2,2 x 104
). Huruf e dapat ditulis dengan E
double Seperti pada float,tetapi tidak perlu akhiran F atau f
char Literal ditulis dengan awalan dan akhiran petik tunggal (‘). Di dalam tanda petik tsb
terdapat satu karakter. Literal bertipe char juga dapat mengandung dua karakter atau
lebih dengan karakter pertama berupa . Pd keadaan spt ini, deretan karakter dalam
tanda petik tunggal tsb tetap menyatakan sebuah karakter
Karakter EscapeKarakter Keterangan
0 Karakter NULL (Tulisannya berupa  dan angka nol)
a Karakter bel
b Karakter backspace
f Formfeed
n Linefeed (disebut newline atau pindah baris)
r Carriage return
t Tab horisontal
v Tab vertikal
 Karakter 
’ Karakter petik tunggal
” Karakter petik ganda
? Karakter tanda tanya
DDD Menyatakan sebuah karakter yg nilai ASCII nya sama dengan nilai oktal
DDD
xHH Menyatakan sebuah karakter yg nilai ASCII nya sama dengan nilai
heksadesimal HH
String
String berarti deretan karakter, sebuah string dapat tidak mengandung karakter sama
sekali. Konstanta string ditulis dengan awalan dan akhiran tanda petik ganda. Contoh :
String Keterangan
“Yogya” String dengan panjang 5 karakter
“Y” String dengan panjang 1 karakter. Literal ini berbeda
dengan literal karakter. Sebagaiman diketahui, literal
karakter ditulis dengan awalan dan akhiran petik tunggal
“” String kosong (tidak mengandung satu karakterpun)
“Jl.Beo 45/B” String yg mengandung huruf, angka, dan simbol
“123” String yg berisi angka 123. Hal ini berbeda dengan literal
123
Catt :
Penugasan literal string ke variabel string harus dilakukan melaui fungsi bernama strcpy()
Contoh (dalam C++)
#include <iostream.h>
#include <string.h>
int main()
{
char info[25];
strcpy(info, “Nama : Budi”);
cout << info;
cout << “n”;
strcpy(info, “Info: Mahasiswa”);
cout << info;
return 0;
}
String pada C selalu diakhiri dengan karater Null (0),
contohnya
0 1 2 3 4 5
U N T A N 0
Kps[0]
Kps[1]
Kps[4] Kps[5]
Kps[3]
Kps[2]
Indeks
Varia
bel
kps
Menampilkan Informasi ke layar
Fungsi printf() berguna untuk menampilkan
informasi ke layar, selain fungsi ini terdapat
dua fungsi penting yang berguna untuk
menampilkan keluaran, berupa puts() dan
putchar()
Contoh :
Puts(“Alpro 2”); // Menampilkan string
Putchar(“A”); //Menampilkan karakter A
Penentuan format pada printf
Kode Keterangan
%u Menampilkan bilangan bulat tak bertanda
%d atau %i Menampilkan bilangan bulat bertanda
%o Menampilkan bilangan bulat tak bertanda dalam bentuk sistem okltal
%x Menampilkan bilangan bulat tak bertanda dalam bentuk sistem
heksadesimal. Huruf dinyatakan dengan huruf kecil
%X Menampilkan bilangan bulat tak bertanda dalam bentuk sistem
heksadesimal. Huruf dinyatakan dengan huruf besar
%f Menampilkan bilngan real dengan notasi:dddd.dddddd
%e atau %E Menampilkan bilangan real dalam bentuk notasi sains
%g atau %G Menampilkan bilangan real dalam bentuk seperti %f, atau 5E
tergantung pada kepresisian data
1(huruf L kecil Awalan yang digunakan untuk menyatakan long int atau double.
Contoh:%1d untu long int atau %1f untuk double
%% Menyatakan simbol %
Contoh
Printf(“Cacah %2d”, 23);
Printf(“Cacah %3d”, 23);
Printf(“Cacah %4d”, 23);
C a c a h 2
C a c a h
3
2 3
C a c a h 2 3
5 2 0 0
Printf(“%8.2f”, 52.0);
Untuk mengatur penampilan
bilangan real, notasi
m.n
Dipakai untuk menentukan lebar
data secara keseluruhan (m) dan
untuk menentukan jumlah digit pecahan (n).
Contoh printf(“%8.2f”, 52.0)
Untuk mengatur agar suatu string
ditampilkan dalam ruang berukuran n
karakter dan diataur rata kiri terhadap
ruang yang tersedia, tanda minus perlu
diletakan antara % dan angka yang
menentukan lebar string. Contoh
Printf(“%8s”, “Hai”);
Printf(“%-8s”, “Hai”);
5 2 H a i
H a i
Mengenal Operator
Pada operasi 2 3, tanda + dinamakan
operator. Operator berupa simbol yang
digunakan untuk menyusun suatu
ekspresi, dengan melibatkan satu atau
beberapa operand.
2 + 3
Operand
Operand
Operator
Ekspresi
Macam-macam Operator
1. Operator Unary, Operator yang hanya
melibatkan sebuah perand.
Contoh : +1, -1
2. Operator binary, yaitu operator yg melibatkan
dua buah operand
Contoh : 2 + 3, 5 * 2, 5 > 2
3. Operator Tertiary, yaitu operator yang
melibatkan tiga buah operand.
Contoh :
a > b ? 1 : 0
Operator aritmatika
Operator ini digunakan untuk melakukan perhitungan aritmatika
Operator Prioritas Ket Contoh
- 1 Unary minus -1
+ 1 Unary plus +1
* 2 Perkalian 2 * 3 6
2 * 3.0 6.0
/ 2 pembagian 7/2 3
7/2.03.5
7.0/23.5
% 2 Sisa
Penjumlahan
7%21
8%32
8%20
+ 3 Penjumlahan 2 + 35
2 + 3.05.0
- 3 Penguranga 3 – 1  5
3 – 1.02.0
Contoh
Jarak lintasan peluru (X) dapat dihitung dengan menggunakan rumus :
Jarak = 2 x V0² x sin ά x cos ά x cos ά / g
#include <stdio.h>
#include <math.h>
Int main()
{
Double kecepatan = 32;
Sudut = 40;
Jarak = 2 * kecepatan * kecepatan * sin (sudut * 3.14/
qa180) * cos (sudut * 3.14 / 180) / 9.8;
Printf (“jarak = %f”, jakar);
Return 0;
}
Operator Pembanding
Operator pembanding atau
disebut juga operator
relasional adalah
operator yang berguna
untuk melakukan
pembandingan terhadap
dua buah nilai. Hasil
pembandingan bernilai 1
atau 0.
Operator Ket
> Lebih dari
>= Lebih dari atau
sama dengan
< Kurang dari
<= Kurang dari atau
sama dengan
!= Tidak sama
dengan
== Sama dengan
Contoh pemakaian operator pembanding
ekspresi Hasil
5 > 1 1 (Benar)
4 < 5 1 (Benar)
4 <= 3 0 (salah)
‘A’ > ‘B’ 0 (salah)
‘B’ > ‘A’ 1 (benar)
‘A’ < ‘a’ 1 (benar)
Operator Logika
Digunakan untuk
membentuk suatu
ekspresi
pembandingan dari
satu atau dua buah
ekspresi pembanding
Operator Ket
&& Operator
“dan”
|| Operator
“atau’
! operator
“bukan”
contoh
Ekspresi Ket
Kar >= ‘A’ && <= ‘Z’ Hasil berupa benar
hanya kalau kar berupa
huruf kapital
Kode == ‘a’ || kode ==
‘A’
Hasil berupa benar
kalau kode berupa huruf
a atau A
! (kar == ‘A’) Hasil berupa benar
kalau kar tidak berupa
huruf A
Operator Masukan
Dalam suatu program seringkali diperlukan
operasi masukan yang berasal dari keyboard
Fungsi Scanf()
Untu penanganan pemasukan data dari keyboard,
fungsi ini dapat dipakai untuk pemasukan
berbagai tipe data.
Syntak :
Scanf(“string kontrol”, argumen);
String kontrol dapat berupa : penentuan format,
kakarter spasi-putih, karakter spasi bukan spasi
putih
Penentuan format pada scanf
Kode Ket
%c Data yang dibaca berupa
sebuah karakter
%s Data yang dibaca berupa string
%i atau %d Data yg dibaca berupa sebuah
bilangan bulat
%e atau %f Data yg dibaca berupa sebuah
bil. Real
%u Data yg dibaca berupa sebuah
bil. Bulat tak bertanda
L (huruf L kecil) Awalan untuk membaca data
long int atau double. Contoh %id
Contoh pemakaian scanf()
Pernyataan Ket
Scanf(“%f”, &jarak) Pernyataan untuk membaca sebuah
bilanga real dan meletakkannya ke
var jarak yg bertipe float. Dalam hal ini
&jarak berarti ‘alamat dari variabel
jarak”
Scanf(“%d”,
&jumlah);
Pernyataan untuk membaca sebuah
bilangan bulat dan meletakkannya ke
variabel julah yang bertipe integer int
Scanf(“%id’, &jum-
penduduk);
Peryataan untuk membaca sebuah
bilangan bulat bertipe long int dan
meletakkannya ke variabel
jum_penduduk yang bertipe long int
Fungsi gets()
Syntak : gets(variabelString);
Bentuk diatas setara dengan scanf(“%s”, variabelString)
Contoh:
#include <stdio.h>
int main()
{char nama[35];
printf (“Nama: “);
gets(nama);
printf(“hai, %s. Selamat datang n’, nama);
return 0;
}
Operasi Seleksi
Bentuk Jika...Akhir-Jika
Pseudokode Kode C
JIKA kondis benar MAKA
pernyataan_1
…
SEBALIKNYA
pernyataan_2
…
AKHIR-JIKA
If (kondisi)
{
pernyataan_1;
…
}
else
{
pernyataan_;
…
}
JIKA kondisi benar MAKA
pernyataan
…
AKHIR-JIKA
If(kondisi)
{
pernyataan;
…
}
Kondisi pada pernyataan if harus ditulis
dalam tanda kurung. Jika di dalam { } hanya
terdapat sebuah pernyataan, tanda tsb bisa
Dibuang.
Bentuk COCOK…AKHIR-COCOK
Pseudokode Kode C
COCOK nilai
DENGAN nila1 MAKA
pernyataan-11
pernyataan-12
DENGAN nilai2 MAKA
pernyataan-21
pernyataan-22
DENGAN nilai3 MAKA
pernyataan-31
pernyataan-32
LAINNYA
pernyataan-n1
pernyataan-n2
AKHIR-COCOK
switch (nilai)
{
case nilai1:
pernyataan_11;
pernyataan_12;
break;
case nilai2:
pernyataan_21;
pernyataan_22;
break;
case nilai3:
pernyataan_31;
pernyataan_32;
break;
case nilai3:
pernyataan_31;
pernyataan_32;
break;
default:
pernyataan_n1
pernyataan_n2
break;
}
 Pernyataan break pada pernyataan
switch digunakan agar eksekusi
dilanjutkan ke pernyataan terletak
sesudah pernyataan switch
 Bagian default pada switch bersifat
opsional. Bagian ini hanya dijalankan
kalau tak ada satupun bagian case yang
cocok dengan nilai pada switch
 Pernyaaan break pada bagian default
bisa ditiadakan tanpa mengubah hasil
Contoh Seleksi Sederhana
#include <stdio.h>
Int main()
{
int bilangan;
printf (“Masukkan sebuah bilangan
bulat:”);
scanf (“%d”, &bilangan);
if (bilangan % 2 == 0)
printf (“Bilangan genap”);
else
printf (“Bilangan ganjil”);
return 0;
{
Contoh Seleksi Bersarang
Menentukan tahun kabisat
#include <stdio.h>
Int main()
{
int tahun;
printf (“Masukkan tahun:”);
scanf (“%d”, &tahun);
if (tahun % 4 !=0)
printf (“Bukan kabisatn”);
else
if ((tahun % 100 == 0) && (tahun % 400 !=0))
else
printf (“kabisat n”);
return 0;
{
Menentukan predikat lulus
IP Kumulatif Prediakat kelulusan
2.00 ≤ IP ≤ 2.75 Lulus memuaskan
2.75 < IP ≤ 3.50 Lulus Sangat
Memuaskan
3.50 < IP ≤ 4.00 Lulus dengan Pujian
#include <stdio.h>
Int main()
{
double ip;
printf (“IP Kumulatif:”);
scanf (“%lf”, &ip);
if (ip >= 2.00 && ip <= 2.75)
printf (“Lulus Memuaskan”);
else
if (ip > 2.75 && ip <= 3.50)
printf (“Lulus dngan pujiann”);
else
printf (“Data IP tidak validn);
return 0;
{
Latihan switch case
#include <stdio.h>
int main()
{
int kode_bulan;
printf(“masukkan kode bulan
(1..12);
scanf(“d”, &kode_bulan);
switch (kode_bulan)
{
case 1:
printf(“Januarin”);
break;
case 2:
printf(“Februarin”);
break;
case 3:
printf(“Maretn”);
break;
case 4:
printf(“Apriln”);
break;
case 5:
printf(“Mein”);
break;
case 6:
printf(“Junin”);
break;
case 7:
printf(“Julin”);
break;
case 8:
printf(“Agustusn”);
break;
case 9:
printf(“Septembern”);
break;
case 10:
printf(“Oktobern”);
break;
case 11:
printf(“Novembern”);
break;
case 12:
printf(“Desembern”);
break;
default:
printf(“Salah kode
bulann”)
}
return 0;
}
Bentuk Ulang…Akhir-Ulang
ULANG SELAMA kondisi
Pernyataan-1
…
Pernyataan-2
AKHIR-ULANG
While(kondisi)
{
pernyataan_1;
…
pernyataan_2;
}
Contoh : menampilkan deret bilangan berikut: 10
9
8
7
6
5
4
3
2
1
#include <stdio.h>
int main()
{
int bil;
bil = 10;
while (bil >= 1)
{
printf(“%dn”, bil);
bil = bil – 1;
}
return 0;
}
Latihan
Buatlah program yg meminta n buah
bilangan bulat dimasukkan dari key board
dan kemudian menampilkan rata-rata
#include <stdio.h>
int main ()
{
int n, pencacah;
double bil, jum, rata_rata;
printf (“%d”, &n);
jum = 0;
pencacah = 1;
while (pencacah <= n)
{
printf(“Bilangan %d=“, pencacah);
scanf(“%lf”, &bil);
jum =jum + bil;
pencacah = pencacah + 1;
}
rata-rata = jum / n;
printf(“Rata-rata = %lfn”, rata_rata);
return 0;
}
UNTUK…AKHIR-UNTUK Pernyataan for Hasil
UNTUK bil = 1 S/D 8
tampilkan(bil)
AKHIR-UNTUK
for(bil =1;bil<=8;bil++)
printf(“%dn”, bil);
Catt: bil++ identik dengan bil=bil+1
1
2
3
4
5
6
7
8
UNTUK bil = 1 S/D 8 STEP
tampilkan(bil)
AKHIR-UNTUK
for(bil =1;bil<=8;bil+=3)
printf(“%dn”, bil);
Catt: bil+= identik dengan bil=bil+3
1
4
7
UNTUK bil = 10 S/D 5 STEP -1
tampilkan(bil)
AKHIR-UNTUK
for(bil =8;bil>=5;bil--)
printf(“%dn”, bil);
Catt: bil-- identik dengan bil=bil-1
10
9
8
7
6
5
UNTUK bil = 10 S/D 5 STEP -2
tampilkan(bil)
AKHIR-UNTUK
for(bil =8;bil>=5;bil-=2)
printf(“%dn”, bil);
Catt: bil-=2 identik dengan bil=bil-2
8
6
Buatlah program untuk menyusun hasil seperti berikut :
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
#include <stdio.h>
int main()
{
int i, j, tinggi, bil;
printf(“Masukkan tinggi segitiga: “);
scanf(“%d”, &tinggi);
for (i=1; i<=tinggi; i++)
{
bil = i;
for (j=1; j<=i; j++)
{
printf (“%3d”, bil);
bil = bil + tinggi – j;
}
printf(“n”); /*pindah baris*/
}
return 0;
}
Mengenal tipe Struct
Dalam C terdapat tipe struct yang dapat dipakai untuk
menghimpun sejumlah data dengan tipe yang berbeda-
beda. Data yang diletakkan dalam sejumlah struct adalah
data yang terkait. Sebagai contoh, dimungkinkan untuk
untuk membuat tipe struct yang mengandung data NIP,
Nama, dan Gaji, Pendefinisiannya adalah sbb:
Struct data_pegawai
{
Int nip;
char nama[25];
long int gaji;
};
#include <stdio.h>
#include <string.h>
struct data_pegawai
{
int nip;
char nama[25];
long int gaji;
};
int main()
{
struct data_pegawai peg;
Peg.nip = 4567;
strcpy(peg.nama, “Budi”); //Menyalin Budi ke var nama
Peg.gaji = 120000L;
printf(“NIP : %dn”, peg.nip);
printf(“Nama : %-sn”, peg.nama);
printf(“Gaji : %ldn”, peg.gaji);
return 0;
}
Selain void di akhir fungsi selalu ada
perintah return.
Void main adalah Fungsi utama yg tdk
mengembalikan nilai 
ARRAY/LARIK
Definisi
 Array adalah tipe data terstruktur yang terdiri
dari sejumlah komponen-komponen/kumpulan
data yang mempunyai tipe sama (komponen tipe
/ byte, word, integer, real, bolean, char, string)
dan jumlah yang tetap.
 Banyaknya komponen dalam larik ditunjukkan
oleh suatu index, dimana tiap komponen di array
dapat diakses dengan menunjukkan nilai
indexnya
Di dalam algoritma, larik dinyatakan dengan
awalan huruf kapital dan notasi [ ] dipakai untuk
menyatakan data dalam larik. Contoh :
A  [1, 2, 3, 4]
Menyatakan larik A yang berisi data 1,2,3 dan 4
Pada contoh diatas larik memiliki 4 buah elemen.
Untuk menyatakan sebuah elemen dalam larik
dapat digunakan notasi berikut :
A [indeks]
Dalam hal ini indeks digunakan untuk menyatakan
posisi elemen, posis pertama diberi kode 0, posisi
kedua 1 dst. Gbr berikut menjelaskan notasi untuk
seluruh elemen dlm larik A.
0 1 2 3  Indeks
Larik A
tampilkan(A[2]) menampilkan elemen pd larik A
dengan indeks sama dgn 2.
A[2]  0 artinya pengisian nilai 0 ke elemen indeks
2 pada larik A
1 2 3 4
A[0]
A[1]
A[3]A[2]
Pada bahasa C/C++ Larik dideklarasikan dalam
bentuk :
Tipe _data nama_larik[jumlah _elemen]
(dlm hal ini jumlah elemen harus berupa konstanta)
Deklarasi Keterangan
Int cacah[4] Larik cacah mempunyai 4 buah
elemen bertipe int
Char vokal[5] Larik vokal mempunyai 5 buah
elemen bertipe char
Char kota[6] [20] Larik kota mempunyai 6 bertipe
string dengan panjang
maksimal sebesar 19 karakter
 Berikut contoh variabel bernama C yang
 mempunyai 7 lokasi memori yang semuanya
 bertipe int:
C[0] 10
C[1] 20
C[2] 30
C[3] 40
C[4] 75
C[5] 80
C[6] 12
Contoh
#include <stdio.h>
Int main()
{
Char kar[5];
Int I;
Kar[0] = ‘A’;
Kar[1] = ‘E’;
Kar[2] = ‘I’;
Kar[3] = ‘O’;
Kar[4] = ‘U’;
For (i=0; i<5; i++);
Printf (“%cn”, kar[ i ];
Return 0;
}
Output :
A
E
I
O
U
Latihan
OUTPUT:
NAMA L/P UMUR HOBBY
Andri L 19 Sport
Lia P 20 Membaca
Kiki L 18 Main Musik
Tia P 21 Hiking
Array Dimensi Dua
Contoh data mahasiswa baru di fakultas Teknik
2006-2009
Prodi 2006 2007 2008 2009
Teknik
Informatika
53 70 65 60
Teknik
Industri
10 13 21 15
Teknik
Elektro
86 132 242 195
Contoh di atas merupakan matrik L
berukuran 3 x 4 dapat dideklarasikan dalam
sebagai berikut: {[53, 70, 65, 60], [86, 132,
242, 195]} dan definisi variabel untuk setiap
elemen tersebut adalah:
0 1 2 3
0 L[0,0] L[0,0] L[0,0] L[0,3]
1 L[1,0] L[1,1] L[1,2] L[1,3]
2 L[2,0] L[2,1] L[2,2] L[2,3]
Larik Bertipe Rekaman
Elemen suatu larik bisa saja melibatkan tipe
rekaman (atau disebut struct pada C).
Contoh :
Simpul = REKAMAN
data1
data2
data3
AKHIR-REKAMAN
Untuk menyatakan data1 yang terdapat pada
simpul digunakan notasi berupa simpuldata1.
Di dalam C, tipe rekaman seperti di atas
dinyatakan dengan :
struct rek_simpul {
tipe data1;
tipe data2;
tipe data3;
};
struct rek_simpul simpul;
Untuk menyatakan field data1 diperlukan notasi
seperti berikut:
simpul.data1
Adapun contoh berikut menunjukkan bagaimana
mendeklarasikan sebuah larik yang bertipe
struct :
struct rek_pegawai {
int nip;
char nama[30];
};
struct rek_pegawai peg[5];
namanip
0
1
2
4
3
Larik peg dengan tipe elemen
berupa struct
Sepuluh mahasiswa mengikuti ujian dengan
nilai hasil berkisar antara 0 samapi
dengan 100. buat programnya untuk
membaca seluruh data tersebut dan
kemudian :
Hitung nilai rata-ratanya
Tampilkan mahasiswa yang gagal (yaitu
nilai Kurang dari 60)
#include <stdio.h>
int main()
{
struct mahasiswa{
char nama[25];
double nilai;
};
struct mahasiswa daftar [10];
int pencacah;
double jum;
int ada_gagal;
pencacah = 0;
while (pencacah < 10)
{
printf(“Nama Mahasiswa:”);
scanf(“%s”, daftar[pencacah]. Nama);
while (1)
{
pritnf(“Nilai:”);
scanf(“%lf”,
&daftar[pencacah].nilai);
if (daftar[pencacah].nilai >== 0 &&
daftar[pencacah].nilai <= 100)
break;
else
printf(“Nilai harus terletak anatara
0 sampai dengan 100n”);
pencacah++;
}
/*Jumlahkan Semua nilai*/
jum=0;
pencacah = 0;
while(pencacah < 10)
{
jum =jum + daftara[pencacah].nilai;
Pencacah++;
}
/*Menampilkan mahasiswa yang gagal*/
printf(“siswa yang gagaln”);
ada_gagal = 0;
pencacah= 0;
while(pencacah<10)
{
if(daftar[pencacah].nilai<60)
{
ada_gagal = 1;
printf(“%sn”,
daftar[pencacah].nama);
}
pencacah++;
}
if(ada_gagal == 0)
printf(“tak adan”);
return 0;
}
pencacah++;
}
/*Jumlahkan Semua nilai*/
jum=0;
pencacah = 0;
while(pencacah < 10)
{
jum =jum + daftara[pencacah].nilai;
Pencacah++;
}
/*Menampilkan mahasiswa yang gagal*/
printf(“siswa yang gagaln”);
ada_gagal = 0;
pencacah= 0;
while(pencacah<10)
{
if(daftar[pencacah].nilai<60)
{
ada_gagal = 1;
printf(“%sn”, daftar[pencacah].nama);
}
pencacah++;
}
if(ada_gagal == 0)
printf(“tak adan”);
return 0;
Fungsi Rekursif
Fungsi rekursif adalah suatu fungsi yang
memanggil dirinya sendiri, artinya fungsi
tersebut dipanggil di dalam tubuh fungsi
sendiri.
int faktorial (int n)
{
int counter, hasil = 1;
for (counter = n;counter > = 1, counter--
hasi*=coun{
int counter, hasil = 1;
for (counter = n;counter > = 1, counter-- hasil
*=counter;
return hasil;
}
Fungsi tersebut menunjukkan bahwa nilai faktorial
dihitung menggunakan looping sehingga
melakukan proses sebagai berikut:
Hasil = 1;
Hasil = hasil * n; artinya hasil = n
Hasil = hasil 8 (n – 1);artinya hasil = n x (n – 1);
Demikian seterusnya sampai b bernilai 1, atau jika
dituliskan sekaligus menjadi:
Faktorial = n! = n x (n – 1) x (n – 2) ….x 1
Fungsi ini dapat dituliskan dalam bentuk:
Faktorial (n) = n! = n x (n -1) !
Yang menunjukkan sifat rekursif dari fungsi, yaitu
(n – 1)!. Oleh karena itu, faktorial yang telah ditulis
dalam program C++ sebelumnya,dapat ditulis
kembali dalam bentuk rekursif sebagai berikut:
Int faktorial(int n)
{
if (n==0)
return 1;
else
return (n * faktorial (n- 1));
}
#include <iostream.h>
int faktorial(int n)
{
if (n==1)
return(1);
else
return (n*faktorial(n-1));
}
void main()
{
int x;
cout<<"Mencari Nilai Faktorial n"<<"Masukkan nilai x:";
cin>>x;
cout<<"Nilai Faktorial dari "<<x<<" adalah "<<faktorial(x);
}
POINTER
Pointer adalah variabel yang berisi alamat memori sebagai
nilainya dan berbeda dengan variabel biasa yang berisi
nilai tertentu. Dengan kata lain, pointer berisi alamat dari
variabel yang mempunyai nilai tertentu.
Bentuk umum dari pernyataan variable pointer dalam C
adalah:
Type *variabel name
Ket:
 Type adalah tipe dasar pointer
 Variabel name adalah nama variabel pointer
 * adalah operator memori yang fungsinya untuk mengembalikan
nilai variabel pada alamatnya yang ditentukan oleh operand.
Membuat program yang akan menampilkan suatu nilai dalam suatu
variabel tertentu dan menampilkan juga alamat suatu pointer yang
isinya sama dengan yang ditunjuk oleh variabel tadi.
#include <iostream.h>
void main()
{
int v = 7, *p;
p = &v;
cout<<"Nilai v = "<<v ;
cout<<" nDengan alamat = "<<&v;
cout<<" nNilai *p = "<<*p;
cout<<" nDengan alamat = "<<p;
}
Operator Pointer
Ada beberapa operator yang bisa digunakan dalam pointer.
Operator-operator itu adalah: oprator alamat (yang
dilambangkan dengan simbol &) adalah operator unary
yang mengembalikan alamat dari operandnya.
Sebagai contoh, diasumsikan deklarasi sebagai berikut:
int y = 5;
int *yptr;
Maka pernyataan:
yptr = &y;
Pernyataan ini mengandung arti bahwa alamat dari
variabel y ditujukan kepada variabel pointer yptr.
Perhatikan contoh program berikut ini:
#include <iostream.h>
int main()
{
int *ptr, num;
ptr = &num;
*ptr = 100;
cout<<num<<" ";
(*ptr) ++;
cout<<num<<" ";
cout<<(*ptr)*2<<"n";
return 0;
}
STRING
 String merupakan gabungan dua buah karakter
atau lebih. String dapat berupa konstanta dan
variabel, Contoh pada konstanta: cout<<”Topik
terakhir adalah String”<<endl;. suatu konstanta
string ditulis dengan awal dan akhiran tanda
petik ganda ( “ )
 Karakter null merupakan ciri khas pengakhit
string pada c++. String kosong adalah string
yang tidak berisi sesuatu karakter-pun. ( “ “ ).
Variabel string adalah variabel yang dipakai
untuk menyimpan string,
 contoh: char teks[10]
#include <iostream.h>
void main()
{
char teks[13];
cout<<"Masukan sebuah atau beberapa kata:";
cin>>teks;
cout<<"Yang Anda masukan : "<<teks<<endl;
}
 Dari output di atas, dapat dilihat bahwa cin
hanya membaca sebuah kata, disebabkan
operator >> pada cin hanya membaca
masukan hingga terdapat spasi, tab,
ataupun enter.
 Untuk mengatasi hal tersebut,
menggunakan fungsi get() pada cin yaitu
dengan
 cin.get() atau cin.get(teks, 13) atau
cin.get(teks, sizeof(teks));
#include <iostream.h>
void main()
{
char teks[13];
cout<<"Masukan sebuah atau beberapa kata:";
cin.get(teks,sizeof(teks));
cout<<"Yang Anda masukan : "<<teks<<endl;
}
2 Inisialisasi string
Ada beberapa cara untuk melakukan
inisialisasi pada string. Perhatikan contoh
di bawah ini :
char warna[ ] = {‘y’, ‘e’, ‘l’, ‘l’, ‘o’, w’};
Atau
char warna[ ] = “yellow”;
Prototipe Fungsi Keterangan
strcpy(s1, s2) Menyalin string s2 ke s1
strncpy(s1, s2, n) Menyalin string S2 ke s1 sebanyak n karakter
strcat(s1, s2) Menggabungkan dua string s1 dan s2
strncat(s1, s2, n) Menggabungkan n karakter s2 ke s1
strcmp(s1, s2) Membandingkan string s1 dengan s2,
- Nilai negatif, apabila s1 < s2
- Nilai nol, apabila s1 == s2
- Nilai positif s1 > s2
strlen(s1) Menentukan panjang dari suatu string
Perhatikan contoh berikut ini (penggunaan strcpy dan
strncpy)
#include <iostream.h>
#include <string.h>
void main()
{
char x[ ] ="Happy Birthday to You";
char y[25], z[15];
cout<<"String pada variabel x :" <<x;
cout<<"nString pada variabel y :" <<strcpy(y,x);
strncpy(z, x, 14); //Tidak menyalin karakter null
z[14] = '0'; //Karakter null
cout<<"nString pada variabel z :" <<z;
}
Jawaban Latihan (pencarian Data)
#include <stdio.h>
Int cari (int data[ ], int n, int k)
{
Int posisi, I, ketemu;
If (n <= 0)
Poisisi = -1;
Else
{
Ketemu = 0;
i=n-1;
While ((i>= 0) && ! Ketemu)
If (data[i] == k)
{
Posisi = I;
Ketemu = 1;
}
Else
I --;
If (!ketemu)
Posisi = -1;
} return posisi;
}int main()
{int data [8] = {6,2,7,2,5,8,4,2,9};
Int dicari = 8;
Printf (“posisi %d dalam larik data; %dn, divari, cari(data, 8, dicari));
Return 0;
}
SUBRUTIN
Sebuah program yang besar biasanya
disusun atas sejumlah bagian yg lebih kecil
yg dinamakan subrutin atau subprogram.
Tujuannya untuk memudahkan
pengelolaan/pengembangan program
Program
subrutin_a()
subrutin_b()
subrutin_c()
Penulisan Algoritma untuk subrutin
SUBRUTIN NamaSubrutin(daftar-parameter)
Pernyataan-1
….
Pernyataan-2
AKHIR-SUBRUTIN
Dalam hal ini, bagian
SUBRUTIN NamaSubrutin(daftar-parameter)
Disebut dengan judul subrutin.
Sebuah subrutin dapat memberikan nilai balik ataupun tidak. Nilai balik adalah
nilai yg diberikan ke pemanggilnya. Nilai ini ditentukan melalui notasi :
NILAI-BALIK nilai
Contoh :
SUBRUTIN hitung_keliling_kotak(panjang, lebar)
Keliling2 x(panjang + lebar)
NILAI-BALIK keliling
AKHIR-SUBRUTIN
Pencarian Data
Pencarian Data
Pencarian merupakan tindakan untuk
mendapatkan suatu data dalam kumpulan
data.
Contohnya : Menemukan nomor telp pada
buku telp, mencari istilah dalam kamus
Pencarian Sekuensial (pencarian linear)
Merupakan model pencarian paling
sederhana yang dilakukan terhadap suatu
kumpulan data. L[i]=k
L [10,9,4,6,4,3,2,5], dimanakah posisi 4
yang pertama?dalam hal ini k adalah 4
dan k ditemukan pada posisi dengan
indeks berupa 2
Algoritma
Untuk menghasilkan Nilai balik berupa :
 -1 jika data yang dicari tidak ditemukan
dan
 Bilangan antara 0 sampai dengan n-1
(dengan n adalah jumlah elemen larik) jika
data dicari ditemukan.
SUBRUTIN cari(L, n, k)
JIKA n ≤ 0 MAKA
posisi  -1
SEBALIKNYA
ketemu  SALAH
i  0
ULANG SELAMA (i<n-1) DAN (TIDAK ketemu)
JIKA k = L[i] MAKA
posisi  i
ketemu  BENAR
SEBALIKNYA
i I + 1
AKHIR-JIKA
AKHIR ULANG
JIKA TIDAK ketemu MAKA
posisi  -1
AKHIR-JIKA
AKHIR-JIKA
NILAI-BALIK posisi
AKHIR-SUBRUTIN
#include <stdio.h>
int cari(int data[ ], int n, int k)
{
int posisi, i, ketemu;
if(n <= 0)
posisi = -1;
else
{
ketemu = 0;
i = 1;
while ((i < n-1) && ! Ketemu)
if (data[i] == k)
{
posisi = i;
ketemu = 1;
}
else
i++;
if (!ketemu)
posisi = -1;
} return posisi;
}int main()
{int data [8] = {6,7,8,5,7,8,1,9};
int dicari = 8;
printf (“posisi %d dalam larik data; %dn, dicari, cari(data, 8,
dicari));
return 0;
Hasil
Posisi 5 dalam larik data: 3
Algoritma & pemrograman 2
#include <stdio.h>
int cari (int data[ ], int n, int k)
{
int posisi, i, ketemu;
if (n <= 0)
poisisi = -1;
else
{
ketemu = 0;
i=n-1;
while ((i>= 0) && ! ketemu)
if (data[i] == k)
{
posisi = i;
ketemu = 1;
}
else
i--;
if (!ketemu)
posisi = -1;
} return posisi;
}int main()
{int data [8] = {6,2,7,2,5,8,4,2,9};
int dicari = 8;
printf (“posisi %d dalam larik data; %dn, dicari, cari(data, 8, dicari));
return 0;
Hasil
Posisi 8 dalam larik data: 5
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2
Algoritma & pemrograman 2

More Related Content

PPT
Bab 3. pengenalan algoritma
Arif Punk Street
 
PPT
Dasar dasar algoritma - 3 kontrol-1
Rachmat Narendra
 
PPTX
listiati univ bung hata (1110013211051) Algoritma dan flowchart
Maryanto Sumringah SMA 9 Tebo
 
PPT
Dasar dasar algoritma - 2
Rachmat Narendra
 
PPTX
Algoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Fitri Ratna Dewi
 
PPT
3.algoritma dasar
Putri Damayanti
 
PPTX
2 struktur dasar algoritma dan notasi algoritmik pseudo-code
Anand Reverse
 
PDF
Struktur Algoritma
daffa12
 
Bab 3. pengenalan algoritma
Arif Punk Street
 
Dasar dasar algoritma - 3 kontrol-1
Rachmat Narendra
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
Maryanto Sumringah SMA 9 Tebo
 
Dasar dasar algoritma - 2
Rachmat Narendra
 
Algoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Fitri Ratna Dewi
 
3.algoritma dasar
Putri Damayanti
 
2 struktur dasar algoritma dan notasi algoritmik pseudo-code
Anand Reverse
 
Struktur Algoritma
daffa12
 

What's hot (20)

PDF
Struktur Runtunan Algoritma
casnadi
 
PPTX
konsep & struktur algoritma
Rohwiyanto Oi
 
PDF
Laporan Praktikum Algoritma
EnvaPya
 
PDF
Pengenalan bahasa c++
Alvin Setiawan
 
PPTX
ALGORITMA dan PEMROGRAMAN
Bang Jo
 
DOCX
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanie Indah
 
PPTX
Wisnu
wisnupurnomoaji
 
PDF
Algoritma flowchart
Irwin andriyanto
 
DOC
modul algoritma Bab 4
Eko Widyanto Napitupulu
 
PPT
Struktur Level Data
Dimara Hakim
 
PPT
Dasar dasar algoritma - 1-1
Rachmat Narendra
 
PDF
1. variable identifier dan_tipe_data
Roziq Bahtiar
 
PDF
Pengulangan for Algoritma
casnadi
 
PDF
Alpro tutor
Roziq Bahtiar
 
PPT
Teori bahasa otomata pertemuan 2
nhiyabelle
 
DOC
2 konsep dasar pascal
achieasik89
 
PDF
Modul Logika dan algoritma
linda_rosalina
 
DOCX
laporan algoritma dan pemprograman 1
bejarangkunjui
 
PDF
Looping Algoritma
Firdaus1212
 
PPT
Pertemuan_2
kartiria sonata
 
Struktur Runtunan Algoritma
casnadi
 
konsep & struktur algoritma
Rohwiyanto Oi
 
Laporan Praktikum Algoritma
EnvaPya
 
Pengenalan bahasa c++
Alvin Setiawan
 
ALGORITMA dan PEMROGRAMAN
Bang Jo
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanie Indah
 
Algoritma flowchart
Irwin andriyanto
 
modul algoritma Bab 4
Eko Widyanto Napitupulu
 
Struktur Level Data
Dimara Hakim
 
Dasar dasar algoritma - 1-1
Rachmat Narendra
 
1. variable identifier dan_tipe_data
Roziq Bahtiar
 
Pengulangan for Algoritma
casnadi
 
Alpro tutor
Roziq Bahtiar
 
Teori bahasa otomata pertemuan 2
nhiyabelle
 
2 konsep dasar pascal
achieasik89
 
Modul Logika dan algoritma
linda_rosalina
 
laporan algoritma dan pemprograman 1
bejarangkunjui
 
Looping Algoritma
Firdaus1212
 
Pertemuan_2
kartiria sonata
 
Ad

Similar to Algoritma & pemrograman 2 (20)

PPTX
Minggu 4 - Notasi Pseudocode.pptx
AnnaUrnika1
 
PPT
Pengenalan konsep pemrograman
purispace
 
PDF
Materi matakuliah bahasa c
Izhan Nassuha
 
DOC
Materi ap#2
Niken Halimy
 
PDF
M04b dasar program c
Billy Alhamra
 
PDF
Dasar c
Toni Yulianto
 
PDF
Tutorial basic of c++ lesson 1 ind ver
Qrembiezs Intruder
 
PPTX
Algoritma dan Pemrograman
Farah Imaniar Rettyana
 
PPTX
Bahasa pemograman
EDIS BLOG
 
PPT
Pengenalan Bahasa C
guestaf3e8f4
 
PDF
Tugas kelompok
Aidil Kun
 
PPT
Struktur dan tipe data
Muhammad Fahmi
 
PDF
Praktikum fungsi dasar bahasa c
Izhan Nassuha
 
PDF
Bahan dpk-io-array-fungsi
Jevri Ardiansah
 
PDF
Modul c++
Kiki MochRifki
 
PPTX
Algoritma dan Pemrograman
Diana Anggraini
 
PDF
C++
gun_bona
 
PDF
Modul algoritma dan pemograman
PANJI_ADITYAN
 
PDF
Modul algoritma dan pemograman
Institude Technology Bandung
 
PPTX
Bahasa Pemrograman C++
Rangga Ananto
 
Minggu 4 - Notasi Pseudocode.pptx
AnnaUrnika1
 
Pengenalan konsep pemrograman
purispace
 
Materi matakuliah bahasa c
Izhan Nassuha
 
Materi ap#2
Niken Halimy
 
M04b dasar program c
Billy Alhamra
 
Dasar c
Toni Yulianto
 
Tutorial basic of c++ lesson 1 ind ver
Qrembiezs Intruder
 
Algoritma dan Pemrograman
Farah Imaniar Rettyana
 
Bahasa pemograman
EDIS BLOG
 
Pengenalan Bahasa C
guestaf3e8f4
 
Tugas kelompok
Aidil Kun
 
Struktur dan tipe data
Muhammad Fahmi
 
Praktikum fungsi dasar bahasa c
Izhan Nassuha
 
Bahan dpk-io-array-fungsi
Jevri Ardiansah
 
Modul c++
Kiki MochRifki
 
Algoritma dan Pemrograman
Diana Anggraini
 
Modul algoritma dan pemograman
PANJI_ADITYAN
 
Modul algoritma dan pemograman
Institude Technology Bandung
 
Bahasa Pemrograman C++
Rangga Ananto
 
Ad

Recently uploaded (20)

PDF
Jual Alpha Geo GNSS Matrix III Receiver Merges Long-Range Laser+AR
Budi Minds
 
PPTX
PPT PEMANFAATAN ENERGI GELOMBANG DENGAN METODE TAPERED CHANNEL SYSTEM_WAFI AU...
WafiNeotech
 
PDF
Jual Alpha Geo GNSS Matrix VI Receiver Merges Visual , AR And Laser
Budi Minds
 
PPTX
Analisis Kebutuhan Air Bersih Menggunakan Metode SIG
RifqiAziz14
 
PPT
METHODE PROJECT WIKA MEP - HATI" KESETRUM.ppt
PasyaHumendru2
 
PDF
Jual AR Real-Scene Stakeout GNSS Receiver L100 PRO+
Budi Minds
 
PPTX
Analisa kebutuhan air bersih berbasis SIG.pptx
RifqiAziz14
 
PDF
Cara Membatalkan Pengajuan Pinjaman LazBon
caramembatalkanlazbo
 
PPTX
Teknologi Fermentasi Teknik Kimia 2023 15
egivia20
 
PPT
FLOWCHARJJJJJJJJJJJJJJJJJJJT PROGRAM_2_3yes.ppt
ARIWIHARTO1
 
PPTX
DASARPENGUKURAN TOPOGRAFI UNTUK PEKERJAAN JALAN1.pptx
ArKur1
 
PPTX
201510-Bandung-AplikasiAIS-UntukMendukungDSS-SEMAR.pptx
UnggulSYudhotomo
 
PDF
Jual Alpha Geo Smart Laser AR RTK Matrix II For Any Surveying Project
Budi Minds
 
PDF
Jual Alpha Geo GNSS Receiver NetBOX2 For Any Surveying Project
Budi Minds
 
PDF
Jual Stasiun Total Manual Leica FlexLine TS03
Budi Minds
 
PDF
Pengantar Konsep Desain Interior for student
gziplan01
 
PDF
Jual Leica TS01: Pintu masuk ke Total Stations Leica Geosystems
Budi Minds
 
PDF
Presentasi Materi Ventilasi Bagian 5.pdf
gziplan01
 
PPTX
SEMINAR HASIL PENELITIAN DUKUNG SOEKARNO 183210001 02-07-2025.pptx
muhammadhafif1010
 
PPTX
PPT FLOUT SYSTEM WAFI AULIA ROHMAN_221047017.pptx
WafiNeotech
 
Jual Alpha Geo GNSS Matrix III Receiver Merges Long-Range Laser+AR
Budi Minds
 
PPT PEMANFAATAN ENERGI GELOMBANG DENGAN METODE TAPERED CHANNEL SYSTEM_WAFI AU...
WafiNeotech
 
Jual Alpha Geo GNSS Matrix VI Receiver Merges Visual , AR And Laser
Budi Minds
 
Analisis Kebutuhan Air Bersih Menggunakan Metode SIG
RifqiAziz14
 
METHODE PROJECT WIKA MEP - HATI" KESETRUM.ppt
PasyaHumendru2
 
Jual AR Real-Scene Stakeout GNSS Receiver L100 PRO+
Budi Minds
 
Analisa kebutuhan air bersih berbasis SIG.pptx
RifqiAziz14
 
Cara Membatalkan Pengajuan Pinjaman LazBon
caramembatalkanlazbo
 
Teknologi Fermentasi Teknik Kimia 2023 15
egivia20
 
FLOWCHARJJJJJJJJJJJJJJJJJJJT PROGRAM_2_3yes.ppt
ARIWIHARTO1
 
DASARPENGUKURAN TOPOGRAFI UNTUK PEKERJAAN JALAN1.pptx
ArKur1
 
201510-Bandung-AplikasiAIS-UntukMendukungDSS-SEMAR.pptx
UnggulSYudhotomo
 
Jual Alpha Geo Smart Laser AR RTK Matrix II For Any Surveying Project
Budi Minds
 
Jual Alpha Geo GNSS Receiver NetBOX2 For Any Surveying Project
Budi Minds
 
Jual Stasiun Total Manual Leica FlexLine TS03
Budi Minds
 
Pengantar Konsep Desain Interior for student
gziplan01
 
Jual Leica TS01: Pintu masuk ke Total Stations Leica Geosystems
Budi Minds
 
Presentasi Materi Ventilasi Bagian 5.pdf
gziplan01
 
SEMINAR HASIL PENELITIAN DUKUNG SOEKARNO 183210001 02-07-2025.pptx
muhammadhafif1010
 
PPT FLOUT SYSTEM WAFI AULIA ROHMAN_221047017.pptx
WafiNeotech
 

Algoritma & pemrograman 2

  • 2. Algoritma  Asal kata Algoritma (algorism -algorithm) berasal dari nama Abu Ja’far Muhammad ibn Musa Al- Khuwarizmi  Ilmuan Persia yang menulis kitab “al jabar w’al- muqabala”(rules of restoration and reduction – aturan pemugaran dan pengurangan)  Tahun 825 M  Berasal dari Iran  Masuk Indonesia tahun 1980-an
  • 3. Definisi Algoritma  Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. <>Urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat- lompat. <>(Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)  Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. <>Alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. <>Tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. <>(Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
  • 4. Review Algoritma 1  Buatlah algoritma untuk mencari sisi miring dari suatu segitiga siku-siku, jika diketahui panjang sisi yang membentuk sudut siku-siku.  Menghitung usia berdasarkan tahun (saja) lahir dan tahun (saja) sekarang
  • 5.  C dan C++ merupakan bahasa pemrograman yang tidak memiliki kepanjangan apapun.  C Diciptakan oleh Dennis Ritchie (1972)  C++ diciptakan oleh Bjarne Stroustroup (1982) merupakan pengembangan dari bhs C dan mendukung pemrograman Berorientasi Objek Bahasa C
  • 6. Kode sumber : pertama.c #include <stdio.h> Int main() { printf (“Selamat Belajar Cn”); return 0; }
  • 7. Output Program Program di atas menampilkan tulisan Selamat Belajar C Ke layar
  • 8. Penjelasan Program #include <stdio.h> Int main() { printf (“Selamat Belajar Cn”); return 0; } Menyertakan berkas header stdio.h Tipe kode keluar program Awal tubuh fungsi main() Pernyataan untuk menyatakan string Pernyataan untuk memberi kode keluar program Akhir tubuh fungsi main()
  • 9. Penjelasan Program (Lanjt.)  Berkas header (berekstensi.h) adalah berkas yg berisi prototipe fungsi, definisi konstanta, dan definis variabel. Prototipe fungsi berupa judul suatu fungsi yg dilengkapi dengan argumen dan tipe argumen serta tipe nilai balik untuk fungsi yg memberikan nilai balik. Ini merupakan persyaratan selama kompilasi. Fungsi adalah kumpulan kode C yg diberi nama dan ketika nama tsb dipanggil maka kumpulan kode tsb dijalankan.  Praprosessor #include adalah suatu perintah yg digunakan untuk mengatur kompiler agar membaca berkas header yg disertakan dibelakang kata include saat pelaksanaan kompilasi
  • 10. Penjelasan Program (Lanjt.)  Main() adalah fungsi yg akan dijalankan pertama kali ketikan program dieksekusi. Kata int di depan main() menyatakan bahwa program memberikan nilai balik yg bertipe int. Tipe int adalah tipe yg menyatakan bilangan bulat.  Nilai balik program ditentukan oleh pernyataan return. Pada program di depan , return 0 menyatakan bahwa nilai balik program adalah nol. Nilai balik nol biasa digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yg di bebankannya.  Pernyataan di dalam C adalah suatu perintah yg dapat berdiri sendiri dalam melaksanakan suatu aksi dan dijalankan ketika program dieksekusi. Setiap pernyataan ditulis dengan diakhiri tanda titi-koma (;). Pada program di depan, ada dua buah pernyataan, yaitu : 1. printf (“Selamat Belajar Cn”); 2. return 0; Printf() adalah suatu fungsi yg prototipenya terdapat dalam berkas stdio.h. Yang berada dalam tanda kurung yg mengikuti printf pada program di depan disebut string. String adalah deretan karakter yg ditulis didalam tanda petik ganda (“)
  • 11. Perbedaaan dengan C++  Berkas header yg digunakan bukan berupa stdio.h melainkan iostream.h  Pernyataan untuk menampilkan keluaran berupa cout.  Untuk menyatakan inputan berupa cin
  • 12. Identifier Identifier adalah suatu nama yg dugunakan dalam program untuk menyatakan variabel, fungsi, dll. Aturan umum yg berlakuk dalam membuat pengenal baik pda C maupun C++ :  Berawalan huruf kapital, huruf kecil atau karakter garis bawah (_)  Bagian berikutnya dapat berupa huruf , angka (0..9), atau karakter garis bawah Catt : Haruf kecil dan huruf kapital dibedakan pada pengenal
  • 13. Tipe Data Tipe Keterangan char Menyatakan sebuah karakter (bisa berupa huruf seperti A dan a, digit seperti 0 atau 7, atau simbol seperti * dan &) double Menyatakan bilang titik mengambang (bil. Real) dengan ketelitian tinggi float Menyatakan bilang titik mengambang (bil. Real) dengan ketelitian rendah int Menyatakan bilang bulat anatara -32768 s.d 32767 long int Menyatakan bilang bulat yg berkisar antar -2147483648 s/d 2147483648
  • 14. Variabel Variabel adalah suatu nama yg menyatakan tempat dalam memori komputer yg digunakan untuk menyimpan suatu nilai dan nilainya dapat diubah sewaktu-waktu ketika program sedang dieksekusi. 24 Misalnya, dulu berisi 23 Sekarang berisi 24
  • 15. Mendeklarasikan Variabel Pendeklarasian variabel digunakan untukmemesan lokasi dalam memori komputer dan menetukan tipe dari data yg dapat disimpan dalam variabel. Bentuk pendeklarasiannya adalah : tipe_data nama variabel; Contoh : int n; char ch; long int jum_penduduk; double jarak; Jika ada beberapa var dengan tipe yg sama pendeklarasian dilakukan dengan menggunakan sebuah pernyataan. Contoh : Int i, j, k;
  • 16. Memberi nilai ke variabel Bentuk : Variabel = nilai; Contoh : n = 7;
  • 17. Literal/Konstanta Menyatakan nilai yg tetap di dalam program.Contoh : 2.3 (literal bilangan titik mengambang) 10 (literal bilangan bulat) ‘K’ (sebuah karakter) Tipe Keterangan int Berupa bil. Bulat antara -32768s/d32767. tanda pemisah ribuan tidak boleh digunakan long int Berupa bil.bulat antara -2147483648 s/d 2147483647. Tanda pemisah ribuan ribuan tdk boleh digunakan. Tanda L atau 1perlu disertakan dibagian literal untuk menyatakan long int secara eksplisit. Cont.:4276898L float Harus ditulis dengan akhiran F atau f. Tanda pecahan berupa titik. Notasi sains seperti 2.2e+04 diperkenankan (artinya 2,2 x 104 ). Huruf e dapat ditulis dengan E double Seperti pada float,tetapi tidak perlu akhiran F atau f char Literal ditulis dengan awalan dan akhiran petik tunggal (‘). Di dalam tanda petik tsb terdapat satu karakter. Literal bertipe char juga dapat mengandung dua karakter atau lebih dengan karakter pertama berupa . Pd keadaan spt ini, deretan karakter dalam tanda petik tunggal tsb tetap menyatakan sebuah karakter
  • 18. Karakter EscapeKarakter Keterangan 0 Karakter NULL (Tulisannya berupa dan angka nol) a Karakter bel b Karakter backspace f Formfeed n Linefeed (disebut newline atau pindah baris) r Carriage return t Tab horisontal v Tab vertikal Karakter ’ Karakter petik tunggal ” Karakter petik ganda ? Karakter tanda tanya DDD Menyatakan sebuah karakter yg nilai ASCII nya sama dengan nilai oktal DDD xHH Menyatakan sebuah karakter yg nilai ASCII nya sama dengan nilai heksadesimal HH
  • 19. String String berarti deretan karakter, sebuah string dapat tidak mengandung karakter sama sekali. Konstanta string ditulis dengan awalan dan akhiran tanda petik ganda. Contoh : String Keterangan “Yogya” String dengan panjang 5 karakter “Y” String dengan panjang 1 karakter. Literal ini berbeda dengan literal karakter. Sebagaiman diketahui, literal karakter ditulis dengan awalan dan akhiran petik tunggal “” String kosong (tidak mengandung satu karakterpun) “Jl.Beo 45/B” String yg mengandung huruf, angka, dan simbol “123” String yg berisi angka 123. Hal ini berbeda dengan literal 123 Catt : Penugasan literal string ke variabel string harus dilakukan melaui fungsi bernama strcpy()
  • 20. Contoh (dalam C++) #include <iostream.h> #include <string.h> int main() { char info[25]; strcpy(info, “Nama : Budi”); cout << info; cout << “n”; strcpy(info, “Info: Mahasiswa”); cout << info; return 0; }
  • 21. String pada C selalu diakhiri dengan karater Null (0), contohnya 0 1 2 3 4 5 U N T A N 0 Kps[0] Kps[1] Kps[4] Kps[5] Kps[3] Kps[2] Indeks Varia bel kps
  • 22. Menampilkan Informasi ke layar Fungsi printf() berguna untuk menampilkan informasi ke layar, selain fungsi ini terdapat dua fungsi penting yang berguna untuk menampilkan keluaran, berupa puts() dan putchar() Contoh : Puts(“Alpro 2”); // Menampilkan string Putchar(“A”); //Menampilkan karakter A
  • 23. Penentuan format pada printf Kode Keterangan %u Menampilkan bilangan bulat tak bertanda %d atau %i Menampilkan bilangan bulat bertanda %o Menampilkan bilangan bulat tak bertanda dalam bentuk sistem okltal %x Menampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal. Huruf dinyatakan dengan huruf kecil %X Menampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal. Huruf dinyatakan dengan huruf besar %f Menampilkan bilngan real dengan notasi:dddd.dddddd %e atau %E Menampilkan bilangan real dalam bentuk notasi sains %g atau %G Menampilkan bilangan real dalam bentuk seperti %f, atau 5E tergantung pada kepresisian data 1(huruf L kecil Awalan yang digunakan untuk menyatakan long int atau double. Contoh:%1d untu long int atau %1f untuk double %% Menyatakan simbol %
  • 24. Contoh Printf(“Cacah %2d”, 23); Printf(“Cacah %3d”, 23); Printf(“Cacah %4d”, 23); C a c a h 2 C a c a h 3 2 3 C a c a h 2 3
  • 25. 5 2 0 0 Printf(“%8.2f”, 52.0); Untuk mengatur penampilan bilangan real, notasi m.n Dipakai untuk menentukan lebar data secara keseluruhan (m) dan untuk menentukan jumlah digit pecahan (n). Contoh printf(“%8.2f”, 52.0)
  • 26. Untuk mengatur agar suatu string ditampilkan dalam ruang berukuran n karakter dan diataur rata kiri terhadap ruang yang tersedia, tanda minus perlu diletakan antara % dan angka yang menentukan lebar string. Contoh Printf(“%8s”, “Hai”); Printf(“%-8s”, “Hai”); 5 2 H a i H a i
  • 27. Mengenal Operator Pada operasi 2 3, tanda + dinamakan operator. Operator berupa simbol yang digunakan untuk menyusun suatu ekspresi, dengan melibatkan satu atau beberapa operand. 2 + 3 Operand Operand Operator Ekspresi
  • 28. Macam-macam Operator 1. Operator Unary, Operator yang hanya melibatkan sebuah perand. Contoh : +1, -1 2. Operator binary, yaitu operator yg melibatkan dua buah operand Contoh : 2 + 3, 5 * 2, 5 > 2 3. Operator Tertiary, yaitu operator yang melibatkan tiga buah operand. Contoh : a > b ? 1 : 0
  • 29. Operator aritmatika Operator ini digunakan untuk melakukan perhitungan aritmatika Operator Prioritas Ket Contoh - 1 Unary minus -1 + 1 Unary plus +1 * 2 Perkalian 2 * 3 6 2 * 3.0 6.0 / 2 pembagian 7/2 3 7/2.03.5 7.0/23.5 % 2 Sisa Penjumlahan 7%21 8%32 8%20 + 3 Penjumlahan 2 + 35 2 + 3.05.0 - 3 Penguranga 3 – 1  5 3 – 1.02.0
  • 30. Contoh Jarak lintasan peluru (X) dapat dihitung dengan menggunakan rumus : Jarak = 2 x V0² x sin ά x cos ά x cos ά / g #include <stdio.h> #include <math.h> Int main() { Double kecepatan = 32; Sudut = 40; Jarak = 2 * kecepatan * kecepatan * sin (sudut * 3.14/ qa180) * cos (sudut * 3.14 / 180) / 9.8; Printf (“jarak = %f”, jakar); Return 0; }
  • 31. Operator Pembanding Operator pembanding atau disebut juga operator relasional adalah operator yang berguna untuk melakukan pembandingan terhadap dua buah nilai. Hasil pembandingan bernilai 1 atau 0. Operator Ket > Lebih dari >= Lebih dari atau sama dengan < Kurang dari <= Kurang dari atau sama dengan != Tidak sama dengan == Sama dengan
  • 32. Contoh pemakaian operator pembanding ekspresi Hasil 5 > 1 1 (Benar) 4 < 5 1 (Benar) 4 <= 3 0 (salah) ‘A’ > ‘B’ 0 (salah) ‘B’ > ‘A’ 1 (benar) ‘A’ < ‘a’ 1 (benar)
  • 33. Operator Logika Digunakan untuk membentuk suatu ekspresi pembandingan dari satu atau dua buah ekspresi pembanding Operator Ket && Operator “dan” || Operator “atau’ ! operator “bukan”
  • 34. contoh Ekspresi Ket Kar >= ‘A’ && <= ‘Z’ Hasil berupa benar hanya kalau kar berupa huruf kapital Kode == ‘a’ || kode == ‘A’ Hasil berupa benar kalau kode berupa huruf a atau A ! (kar == ‘A’) Hasil berupa benar kalau kar tidak berupa huruf A
  • 35. Operator Masukan Dalam suatu program seringkali diperlukan operasi masukan yang berasal dari keyboard Fungsi Scanf() Untu penanganan pemasukan data dari keyboard, fungsi ini dapat dipakai untuk pemasukan berbagai tipe data. Syntak : Scanf(“string kontrol”, argumen); String kontrol dapat berupa : penentuan format, kakarter spasi-putih, karakter spasi bukan spasi putih
  • 36. Penentuan format pada scanf Kode Ket %c Data yang dibaca berupa sebuah karakter %s Data yang dibaca berupa string %i atau %d Data yg dibaca berupa sebuah bilangan bulat %e atau %f Data yg dibaca berupa sebuah bil. Real %u Data yg dibaca berupa sebuah bil. Bulat tak bertanda L (huruf L kecil) Awalan untuk membaca data long int atau double. Contoh %id
  • 37. Contoh pemakaian scanf() Pernyataan Ket Scanf(“%f”, &jarak) Pernyataan untuk membaca sebuah bilanga real dan meletakkannya ke var jarak yg bertipe float. Dalam hal ini &jarak berarti ‘alamat dari variabel jarak” Scanf(“%d”, &jumlah); Pernyataan untuk membaca sebuah bilangan bulat dan meletakkannya ke variabel julah yang bertipe integer int Scanf(“%id’, &jum- penduduk); Peryataan untuk membaca sebuah bilangan bulat bertipe long int dan meletakkannya ke variabel jum_penduduk yang bertipe long int
  • 38. Fungsi gets() Syntak : gets(variabelString); Bentuk diatas setara dengan scanf(“%s”, variabelString) Contoh: #include <stdio.h> int main() {char nama[35]; printf (“Nama: “); gets(nama); printf(“hai, %s. Selamat datang n’, nama); return 0; }
  • 40. Bentuk Jika...Akhir-Jika Pseudokode Kode C JIKA kondis benar MAKA pernyataan_1 … SEBALIKNYA pernyataan_2 … AKHIR-JIKA If (kondisi) { pernyataan_1; … } else { pernyataan_; … } JIKA kondisi benar MAKA pernyataan … AKHIR-JIKA If(kondisi) { pernyataan; … }
  • 41. Kondisi pada pernyataan if harus ditulis dalam tanda kurung. Jika di dalam { } hanya terdapat sebuah pernyataan, tanda tsb bisa Dibuang.
  • 42. Bentuk COCOK…AKHIR-COCOK Pseudokode Kode C COCOK nilai DENGAN nila1 MAKA pernyataan-11 pernyataan-12 DENGAN nilai2 MAKA pernyataan-21 pernyataan-22 DENGAN nilai3 MAKA pernyataan-31 pernyataan-32 LAINNYA pernyataan-n1 pernyataan-n2 AKHIR-COCOK switch (nilai) { case nilai1: pernyataan_11; pernyataan_12; break; case nilai2: pernyataan_21; pernyataan_22; break; case nilai3: pernyataan_31; pernyataan_32; break; case nilai3: pernyataan_31; pernyataan_32; break; default: pernyataan_n1 pernyataan_n2 break; }
  • 43.  Pernyataan break pada pernyataan switch digunakan agar eksekusi dilanjutkan ke pernyataan terletak sesudah pernyataan switch  Bagian default pada switch bersifat opsional. Bagian ini hanya dijalankan kalau tak ada satupun bagian case yang cocok dengan nilai pada switch  Pernyaaan break pada bagian default bisa ditiadakan tanpa mengubah hasil
  • 44. Contoh Seleksi Sederhana #include <stdio.h> Int main() { int bilangan; printf (“Masukkan sebuah bilangan bulat:”); scanf (“%d”, &bilangan); if (bilangan % 2 == 0) printf (“Bilangan genap”); else printf (“Bilangan ganjil”); return 0; {
  • 45. Contoh Seleksi Bersarang Menentukan tahun kabisat #include <stdio.h> Int main() { int tahun; printf (“Masukkan tahun:”); scanf (“%d”, &tahun); if (tahun % 4 !=0) printf (“Bukan kabisatn”); else if ((tahun % 100 == 0) && (tahun % 400 !=0)) else printf (“kabisat n”); return 0; {
  • 46. Menentukan predikat lulus IP Kumulatif Prediakat kelulusan 2.00 ≤ IP ≤ 2.75 Lulus memuaskan 2.75 < IP ≤ 3.50 Lulus Sangat Memuaskan 3.50 < IP ≤ 4.00 Lulus dengan Pujian
  • 47. #include <stdio.h> Int main() { double ip; printf (“IP Kumulatif:”); scanf (“%lf”, &ip); if (ip >= 2.00 && ip <= 2.75) printf (“Lulus Memuaskan”); else if (ip > 2.75 && ip <= 3.50) printf (“Lulus dngan pujiann”); else printf (“Data IP tidak validn); return 0; {
  • 48. Latihan switch case #include <stdio.h> int main() { int kode_bulan; printf(“masukkan kode bulan (1..12); scanf(“d”, &kode_bulan); switch (kode_bulan) { case 1: printf(“Januarin”); break; case 2: printf(“Februarin”); break; case 3: printf(“Maretn”); break; case 4: printf(“Apriln”); break; case 5: printf(“Mein”); break; case 6: printf(“Junin”); break; case 7: printf(“Julin”); break; case 8: printf(“Agustusn”); break; case 9: printf(“Septembern”); break; case 10: printf(“Oktobern”); break; case 11: printf(“Novembern”); break; case 12: printf(“Desembern”); break; default: printf(“Salah kode bulann”) } return 0; }
  • 49. Bentuk Ulang…Akhir-Ulang ULANG SELAMA kondisi Pernyataan-1 … Pernyataan-2 AKHIR-ULANG While(kondisi) { pernyataan_1; … pernyataan_2; }
  • 50. Contoh : menampilkan deret bilangan berikut: 10 9 8 7 6 5 4 3 2 1 #include <stdio.h> int main() { int bil; bil = 10; while (bil >= 1) { printf(“%dn”, bil); bil = bil – 1; } return 0; }
  • 51. Latihan Buatlah program yg meminta n buah bilangan bulat dimasukkan dari key board dan kemudian menampilkan rata-rata
  • 52. #include <stdio.h> int main () { int n, pencacah; double bil, jum, rata_rata; printf (“%d”, &n); jum = 0; pencacah = 1; while (pencacah <= n) { printf(“Bilangan %d=“, pencacah); scanf(“%lf”, &bil); jum =jum + bil; pencacah = pencacah + 1; } rata-rata = jum / n; printf(“Rata-rata = %lfn”, rata_rata); return 0; }
  • 53. UNTUK…AKHIR-UNTUK Pernyataan for Hasil UNTUK bil = 1 S/D 8 tampilkan(bil) AKHIR-UNTUK for(bil =1;bil<=8;bil++) printf(“%dn”, bil); Catt: bil++ identik dengan bil=bil+1 1 2 3 4 5 6 7 8 UNTUK bil = 1 S/D 8 STEP tampilkan(bil) AKHIR-UNTUK for(bil =1;bil<=8;bil+=3) printf(“%dn”, bil); Catt: bil+= identik dengan bil=bil+3 1 4 7 UNTUK bil = 10 S/D 5 STEP -1 tampilkan(bil) AKHIR-UNTUK for(bil =8;bil>=5;bil--) printf(“%dn”, bil); Catt: bil-- identik dengan bil=bil-1 10 9 8 7 6 5 UNTUK bil = 10 S/D 5 STEP -2 tampilkan(bil) AKHIR-UNTUK for(bil =8;bil>=5;bil-=2) printf(“%dn”, bil); Catt: bil-=2 identik dengan bil=bil-2 8 6
  • 54. Buatlah program untuk menyusun hasil seperti berikut : 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 #include <stdio.h> int main() { int i, j, tinggi, bil; printf(“Masukkan tinggi segitiga: “); scanf(“%d”, &tinggi); for (i=1; i<=tinggi; i++) { bil = i; for (j=1; j<=i; j++) { printf (“%3d”, bil); bil = bil + tinggi – j; } printf(“n”); /*pindah baris*/ } return 0; }
  • 55. Mengenal tipe Struct Dalam C terdapat tipe struct yang dapat dipakai untuk menghimpun sejumlah data dengan tipe yang berbeda- beda. Data yang diletakkan dalam sejumlah struct adalah data yang terkait. Sebagai contoh, dimungkinkan untuk untuk membuat tipe struct yang mengandung data NIP, Nama, dan Gaji, Pendefinisiannya adalah sbb: Struct data_pegawai { Int nip; char nama[25]; long int gaji; };
  • 56. #include <stdio.h> #include <string.h> struct data_pegawai { int nip; char nama[25]; long int gaji; }; int main() { struct data_pegawai peg; Peg.nip = 4567; strcpy(peg.nama, “Budi”); //Menyalin Budi ke var nama Peg.gaji = 120000L; printf(“NIP : %dn”, peg.nip); printf(“Nama : %-sn”, peg.nama); printf(“Gaji : %ldn”, peg.gaji); return 0; }
  • 57. Selain void di akhir fungsi selalu ada perintah return. Void main adalah Fungsi utama yg tdk mengembalikan nilai 
  • 59. Definisi  Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen/kumpulan data yang mempunyai tipe sama (komponen tipe / byte, word, integer, real, bolean, char, string) dan jumlah yang tetap.  Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya
  • 60. Di dalam algoritma, larik dinyatakan dengan awalan huruf kapital dan notasi [ ] dipakai untuk menyatakan data dalam larik. Contoh : A  [1, 2, 3, 4] Menyatakan larik A yang berisi data 1,2,3 dan 4 Pada contoh diatas larik memiliki 4 buah elemen. Untuk menyatakan sebuah elemen dalam larik dapat digunakan notasi berikut : A [indeks]
  • 61. Dalam hal ini indeks digunakan untuk menyatakan posisi elemen, posis pertama diberi kode 0, posisi kedua 1 dst. Gbr berikut menjelaskan notasi untuk seluruh elemen dlm larik A. 0 1 2 3  Indeks Larik A tampilkan(A[2]) menampilkan elemen pd larik A dengan indeks sama dgn 2. A[2]  0 artinya pengisian nilai 0 ke elemen indeks 2 pada larik A 1 2 3 4 A[0] A[1] A[3]A[2]
  • 62. Pada bahasa C/C++ Larik dideklarasikan dalam bentuk : Tipe _data nama_larik[jumlah _elemen] (dlm hal ini jumlah elemen harus berupa konstanta) Deklarasi Keterangan Int cacah[4] Larik cacah mempunyai 4 buah elemen bertipe int Char vokal[5] Larik vokal mempunyai 5 buah elemen bertipe char Char kota[6] [20] Larik kota mempunyai 6 bertipe string dengan panjang maksimal sebesar 19 karakter
  • 63.  Berikut contoh variabel bernama C yang  mempunyai 7 lokasi memori yang semuanya  bertipe int: C[0] 10 C[1] 20 C[2] 30 C[3] 40 C[4] 75 C[5] 80 C[6] 12
  • 64. Contoh #include <stdio.h> Int main() { Char kar[5]; Int I; Kar[0] = ‘A’; Kar[1] = ‘E’; Kar[2] = ‘I’; Kar[3] = ‘O’; Kar[4] = ‘U’; For (i=0; i<5; i++); Printf (“%cn”, kar[ i ]; Return 0; } Output : A E I O U
  • 65. Latihan OUTPUT: NAMA L/P UMUR HOBBY Andri L 19 Sport Lia P 20 Membaca Kiki L 18 Main Musik Tia P 21 Hiking
  • 66. Array Dimensi Dua Contoh data mahasiswa baru di fakultas Teknik 2006-2009 Prodi 2006 2007 2008 2009 Teknik Informatika 53 70 65 60 Teknik Industri 10 13 21 15 Teknik Elektro 86 132 242 195
  • 67. Contoh di atas merupakan matrik L berukuran 3 x 4 dapat dideklarasikan dalam sebagai berikut: {[53, 70, 65, 60], [86, 132, 242, 195]} dan definisi variabel untuk setiap elemen tersebut adalah: 0 1 2 3 0 L[0,0] L[0,0] L[0,0] L[0,3] 1 L[1,0] L[1,1] L[1,2] L[1,3] 2 L[2,0] L[2,1] L[2,2] L[2,3]
  • 69. Elemen suatu larik bisa saja melibatkan tipe rekaman (atau disebut struct pada C). Contoh : Simpul = REKAMAN data1 data2 data3 AKHIR-REKAMAN
  • 70. Untuk menyatakan data1 yang terdapat pada simpul digunakan notasi berupa simpuldata1. Di dalam C, tipe rekaman seperti di atas dinyatakan dengan : struct rek_simpul { tipe data1; tipe data2; tipe data3; }; struct rek_simpul simpul;
  • 71. Untuk menyatakan field data1 diperlukan notasi seperti berikut: simpul.data1 Adapun contoh berikut menunjukkan bagaimana mendeklarasikan sebuah larik yang bertipe struct : struct rek_pegawai { int nip; char nama[30]; }; struct rek_pegawai peg[5];
  • 72. namanip 0 1 2 4 3 Larik peg dengan tipe elemen berupa struct
  • 73. Sepuluh mahasiswa mengikuti ujian dengan nilai hasil berkisar antara 0 samapi dengan 100. buat programnya untuk membaca seluruh data tersebut dan kemudian : Hitung nilai rata-ratanya Tampilkan mahasiswa yang gagal (yaitu nilai Kurang dari 60)
  • 74. #include <stdio.h> int main() { struct mahasiswa{ char nama[25]; double nilai; }; struct mahasiswa daftar [10]; int pencacah; double jum; int ada_gagal; pencacah = 0; while (pencacah < 10) { printf(“Nama Mahasiswa:”); scanf(“%s”, daftar[pencacah]. Nama); while (1) { pritnf(“Nilai:”); scanf(“%lf”, &daftar[pencacah].nilai); if (daftar[pencacah].nilai >== 0 && daftar[pencacah].nilai <= 100) break; else printf(“Nilai harus terletak anatara 0 sampai dengan 100n”); pencacah++; } /*Jumlahkan Semua nilai*/ jum=0; pencacah = 0; while(pencacah < 10) { jum =jum + daftara[pencacah].nilai; Pencacah++; } /*Menampilkan mahasiswa yang gagal*/ printf(“siswa yang gagaln”); ada_gagal = 0; pencacah= 0; while(pencacah<10) { if(daftar[pencacah].nilai<60) { ada_gagal = 1; printf(“%sn”, daftar[pencacah].nama); } pencacah++; } if(ada_gagal == 0) printf(“tak adan”); return 0; }
  • 75. pencacah++; } /*Jumlahkan Semua nilai*/ jum=0; pencacah = 0; while(pencacah < 10) { jum =jum + daftara[pencacah].nilai; Pencacah++; } /*Menampilkan mahasiswa yang gagal*/ printf(“siswa yang gagaln”); ada_gagal = 0; pencacah= 0; while(pencacah<10) { if(daftar[pencacah].nilai<60) { ada_gagal = 1; printf(“%sn”, daftar[pencacah].nama); } pencacah++; } if(ada_gagal == 0) printf(“tak adan”); return 0;
  • 77. Fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi sendiri.
  • 78. int faktorial (int n) { int counter, hasil = 1; for (counter = n;counter > = 1, counter-- hasi*=coun{ int counter, hasil = 1; for (counter = n;counter > = 1, counter-- hasil *=counter; return hasil; }
  • 79. Fungsi tersebut menunjukkan bahwa nilai faktorial dihitung menggunakan looping sehingga melakukan proses sebagai berikut: Hasil = 1; Hasil = hasil * n; artinya hasil = n Hasil = hasil 8 (n – 1);artinya hasil = n x (n – 1); Demikian seterusnya sampai b bernilai 1, atau jika dituliskan sekaligus menjadi: Faktorial = n! = n x (n – 1) x (n – 2) ….x 1
  • 80. Fungsi ini dapat dituliskan dalam bentuk: Faktorial (n) = n! = n x (n -1) ! Yang menunjukkan sifat rekursif dari fungsi, yaitu (n – 1)!. Oleh karena itu, faktorial yang telah ditulis dalam program C++ sebelumnya,dapat ditulis kembali dalam bentuk rekursif sebagai berikut: Int faktorial(int n) { if (n==0) return 1; else return (n * faktorial (n- 1)); }
  • 81. #include <iostream.h> int faktorial(int n) { if (n==1) return(1); else return (n*faktorial(n-1)); } void main() { int x; cout<<"Mencari Nilai Faktorial n"<<"Masukkan nilai x:"; cin>>x; cout<<"Nilai Faktorial dari "<<x<<" adalah "<<faktorial(x); }
  • 83. Pointer adalah variabel yang berisi alamat memori sebagai nilainya dan berbeda dengan variabel biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari variabel yang mempunyai nilai tertentu. Bentuk umum dari pernyataan variable pointer dalam C adalah: Type *variabel name Ket:  Type adalah tipe dasar pointer  Variabel name adalah nama variabel pointer  * adalah operator memori yang fungsinya untuk mengembalikan nilai variabel pada alamatnya yang ditentukan oleh operand.
  • 84. Membuat program yang akan menampilkan suatu nilai dalam suatu variabel tertentu dan menampilkan juga alamat suatu pointer yang isinya sama dengan yang ditunjuk oleh variabel tadi. #include <iostream.h> void main() { int v = 7, *p; p = &v; cout<<"Nilai v = "<<v ; cout<<" nDengan alamat = "<<&v; cout<<" nNilai *p = "<<*p; cout<<" nDengan alamat = "<<p; }
  • 85. Operator Pointer Ada beberapa operator yang bisa digunakan dalam pointer. Operator-operator itu adalah: oprator alamat (yang dilambangkan dengan simbol &) adalah operator unary yang mengembalikan alamat dari operandnya. Sebagai contoh, diasumsikan deklarasi sebagai berikut: int y = 5; int *yptr; Maka pernyataan: yptr = &y; Pernyataan ini mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer yptr. Perhatikan contoh program berikut ini:
  • 86. #include <iostream.h> int main() { int *ptr, num; ptr = &num; *ptr = 100; cout<<num<<" "; (*ptr) ++; cout<<num<<" "; cout<<(*ptr)*2<<"n"; return 0; }
  • 88.  String merupakan gabungan dua buah karakter atau lebih. String dapat berupa konstanta dan variabel, Contoh pada konstanta: cout<<”Topik terakhir adalah String”<<endl;. suatu konstanta string ditulis dengan awal dan akhiran tanda petik ganda ( “ )  Karakter null merupakan ciri khas pengakhit string pada c++. String kosong adalah string yang tidak berisi sesuatu karakter-pun. ( “ “ ). Variabel string adalah variabel yang dipakai untuk menyimpan string,  contoh: char teks[10]
  • 89. #include <iostream.h> void main() { char teks[13]; cout<<"Masukan sebuah atau beberapa kata:"; cin>>teks; cout<<"Yang Anda masukan : "<<teks<<endl; }
  • 90.  Dari output di atas, dapat dilihat bahwa cin hanya membaca sebuah kata, disebabkan operator >> pada cin hanya membaca masukan hingga terdapat spasi, tab, ataupun enter.  Untuk mengatasi hal tersebut, menggunakan fungsi get() pada cin yaitu dengan  cin.get() atau cin.get(teks, 13) atau cin.get(teks, sizeof(teks));
  • 91. #include <iostream.h> void main() { char teks[13]; cout<<"Masukan sebuah atau beberapa kata:"; cin.get(teks,sizeof(teks)); cout<<"Yang Anda masukan : "<<teks<<endl; }
  • 92. 2 Inisialisasi string Ada beberapa cara untuk melakukan inisialisasi pada string. Perhatikan contoh di bawah ini : char warna[ ] = {‘y’, ‘e’, ‘l’, ‘l’, ‘o’, w’}; Atau char warna[ ] = “yellow”;
  • 93. Prototipe Fungsi Keterangan strcpy(s1, s2) Menyalin string s2 ke s1 strncpy(s1, s2, n) Menyalin string S2 ke s1 sebanyak n karakter strcat(s1, s2) Menggabungkan dua string s1 dan s2 strncat(s1, s2, n) Menggabungkan n karakter s2 ke s1 strcmp(s1, s2) Membandingkan string s1 dengan s2, - Nilai negatif, apabila s1 < s2 - Nilai nol, apabila s1 == s2 - Nilai positif s1 > s2 strlen(s1) Menentukan panjang dari suatu string
  • 94. Perhatikan contoh berikut ini (penggunaan strcpy dan strncpy) #include <iostream.h> #include <string.h> void main() { char x[ ] ="Happy Birthday to You"; char y[25], z[15]; cout<<"String pada variabel x :" <<x; cout<<"nString pada variabel y :" <<strcpy(y,x); strncpy(z, x, 14); //Tidak menyalin karakter null z[14] = '0'; //Karakter null cout<<"nString pada variabel z :" <<z; }
  • 95. Jawaban Latihan (pencarian Data) #include <stdio.h> Int cari (int data[ ], int n, int k) { Int posisi, I, ketemu; If (n <= 0) Poisisi = -1; Else { Ketemu = 0; i=n-1; While ((i>= 0) && ! Ketemu) If (data[i] == k) { Posisi = I; Ketemu = 1; } Else I --; If (!ketemu) Posisi = -1; } return posisi; }int main() {int data [8] = {6,2,7,2,5,8,4,2,9}; Int dicari = 8; Printf (“posisi %d dalam larik data; %dn, divari, cari(data, 8, dicari)); Return 0; }
  • 97. Sebuah program yang besar biasanya disusun atas sejumlah bagian yg lebih kecil yg dinamakan subrutin atau subprogram. Tujuannya untuk memudahkan pengelolaan/pengembangan program Program subrutin_a() subrutin_b() subrutin_c()
  • 98. Penulisan Algoritma untuk subrutin SUBRUTIN NamaSubrutin(daftar-parameter) Pernyataan-1 …. Pernyataan-2 AKHIR-SUBRUTIN Dalam hal ini, bagian SUBRUTIN NamaSubrutin(daftar-parameter) Disebut dengan judul subrutin. Sebuah subrutin dapat memberikan nilai balik ataupun tidak. Nilai balik adalah nilai yg diberikan ke pemanggilnya. Nilai ini ditentukan melalui notasi : NILAI-BALIK nilai Contoh : SUBRUTIN hitung_keliling_kotak(panjang, lebar) Keliling2 x(panjang + lebar) NILAI-BALIK keliling AKHIR-SUBRUTIN
  • 100. Pencarian Data Pencarian merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data. Contohnya : Menemukan nomor telp pada buku telp, mencari istilah dalam kamus
  • 101. Pencarian Sekuensial (pencarian linear) Merupakan model pencarian paling sederhana yang dilakukan terhadap suatu kumpulan data. L[i]=k L [10,9,4,6,4,3,2,5], dimanakah posisi 4 yang pertama?dalam hal ini k adalah 4 dan k ditemukan pada posisi dengan indeks berupa 2
  • 102. Algoritma Untuk menghasilkan Nilai balik berupa :  -1 jika data yang dicari tidak ditemukan dan  Bilangan antara 0 sampai dengan n-1 (dengan n adalah jumlah elemen larik) jika data dicari ditemukan.
  • 103. SUBRUTIN cari(L, n, k) JIKA n ≤ 0 MAKA posisi  -1 SEBALIKNYA ketemu  SALAH i  0 ULANG SELAMA (i<n-1) DAN (TIDAK ketemu) JIKA k = L[i] MAKA posisi  i ketemu  BENAR SEBALIKNYA i I + 1 AKHIR-JIKA AKHIR ULANG JIKA TIDAK ketemu MAKA posisi  -1 AKHIR-JIKA AKHIR-JIKA NILAI-BALIK posisi AKHIR-SUBRUTIN
  • 104. #include <stdio.h> int cari(int data[ ], int n, int k) { int posisi, i, ketemu; if(n <= 0) posisi = -1; else { ketemu = 0; i = 1; while ((i < n-1) && ! Ketemu) if (data[i] == k) { posisi = i; ketemu = 1; } else i++; if (!ketemu) posisi = -1; } return posisi; }int main() {int data [8] = {6,7,8,5,7,8,1,9}; int dicari = 8; printf (“posisi %d dalam larik data; %dn, dicari, cari(data, 8, dicari)); return 0;
  • 105. Hasil Posisi 5 dalam larik data: 3
  • 107. #include <stdio.h> int cari (int data[ ], int n, int k) { int posisi, i, ketemu; if (n <= 0) poisisi = -1; else { ketemu = 0; i=n-1; while ((i>= 0) && ! ketemu) if (data[i] == k) { posisi = i; ketemu = 1; } else i--; if (!ketemu) posisi = -1; } return posisi; }int main() {int data [8] = {6,2,7,2,5,8,4,2,9}; int dicari = 8; printf (“posisi %d dalam larik data; %dn, dicari, cari(data, 8, dicari)); return 0;
  • 108. Hasil Posisi 8 dalam larik data: 5