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
#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

What's hot

Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
casnadi
 
konsep & struktur algoritma
konsep & struktur algoritmakonsep & struktur algoritma
konsep & struktur algoritmaRohwiyanto Oi
 
Laporan Praktikum Algoritma
Laporan Praktikum AlgoritmaLaporan Praktikum Algoritma
Laporan Praktikum Algoritma
EnvaPya
 
ALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMANALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMAN
Bang Jo
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanie Indah
 
Wisnu
WisnuWisnu
Algoritma flowchart
Algoritma flowchartAlgoritma flowchart
Algoritma flowchart
Irwin andriyanto
 
modul algoritma Bab 4
modul algoritma Bab 4modul algoritma Bab 4
modul algoritma Bab 4
Eko Widyanto Napitupulu
 
Struktur Level Data
Struktur Level DataStruktur Level Data
Struktur Level DataDimara Hakim
 
Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1
Rachmat Narendra
 
1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_data1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_dataRoziq Bahtiar
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritma
casnadi
 
Teori bahasa otomata pertemuan 2
Teori bahasa otomata pertemuan 2Teori bahasa otomata pertemuan 2
Teori bahasa otomata pertemuan 2nhiyabelle
 
2 konsep dasar pascal
2   konsep dasar pascal2   konsep dasar pascal
2 konsep dasar pascalachieasik89
 
Modul Logika dan algoritma
Modul Logika dan algoritmaModul Logika dan algoritma
Modul Logika dan algoritma
linda_rosalina
 
laporan algoritma dan pemprograman 1
laporan algoritma dan pemprograman 1laporan algoritma dan pemprograman 1
laporan algoritma dan pemprograman 1
bejarangkunjui
 
Looping Algoritma
Looping AlgoritmaLooping Algoritma
Looping Algoritma
Firdaus1212
 
Pertemuan_2
Pertemuan_2Pertemuan_2
Pertemuan_2
kartiria sonata
 

What's hot (20)

Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
 
konsep & struktur algoritma
konsep & struktur algoritmakonsep & struktur algoritma
konsep & struktur algoritma
 
Laporan Praktikum Algoritma
Laporan Praktikum AlgoritmaLaporan Praktikum Algoritma
Laporan Praktikum Algoritma
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
ALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMANALGORITMA dan PEMROGRAMAN
ALGORITMA dan PEMROGRAMAN
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
Wisnu
WisnuWisnu
Wisnu
 
Algoritma flowchart
Algoritma flowchartAlgoritma flowchart
Algoritma flowchart
 
modul algoritma Bab 4
modul algoritma Bab 4modul algoritma Bab 4
modul algoritma Bab 4
 
Struktur Level Data
Struktur Level DataStruktur Level Data
Struktur Level Data
 
Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1
 
1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_data1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_data
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritma
 
Alpro tutor
Alpro tutorAlpro tutor
Alpro tutor
 
Teori bahasa otomata pertemuan 2
Teori bahasa otomata pertemuan 2Teori bahasa otomata pertemuan 2
Teori bahasa otomata pertemuan 2
 
2 konsep dasar pascal
2   konsep dasar pascal2   konsep dasar pascal
2 konsep dasar pascal
 
Modul Logika dan algoritma
Modul Logika dan algoritmaModul Logika dan algoritma
Modul Logika dan algoritma
 
laporan algoritma dan pemprograman 1
laporan algoritma dan pemprograman 1laporan algoritma dan pemprograman 1
laporan algoritma dan pemprograman 1
 
Looping Algoritma
Looping AlgoritmaLooping Algoritma
Looping Algoritma
 
Pertemuan_2
Pertemuan_2Pertemuan_2
Pertemuan_2
 

Similar to Algoritma & pemrograman 2

M04b dasar program c
M04b dasar program cM04b dasar program c
M04b dasar program cBilly Alhamra
 
Dasar c
Dasar cDasar c
Dasar c
Toni Yulianto
 
Algoritma dan Pemrograman
Algoritma dan PemrogramanAlgoritma dan Pemrograman
Algoritma dan Pemrograman
Diana Anggraini
 
Awal dasar belajar c++
Awal dasar belajar c++Awal dasar belajar c++
Awal dasar belajar c++farizky berian
 
Bahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsiBahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsi
Jevri Ardiansah
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asliNadya Olivia
 
Mengenal fungsi scanf() dan printf()
Mengenal fungsi scanf() dan printf()Mengenal fungsi scanf() dan printf()
Mengenal fungsi scanf() dan printf()
Rahmat Rijal
 
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...desiyu
 
Modul pd
Modul pdModul pd
Modul pd
inggar tri
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
Braga Rezpect
 
Dasar dasar turbo pascal
Dasar dasar turbo pascalDasar dasar turbo pascal
Dasar dasar turbo pascal
Duriani
 
Tipe data
Tipe dataTipe data
Tipe data
kafin0607
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascalfhnx
 
Minggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptxMinggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptx
AnnaUrnika1
 
Dasar pemrograman basic
Dasar pemrograman basicDasar pemrograman basic
Dasar pemrograman basicYang Terluka
 
Tugas kelompok
Tugas kelompokTugas kelompok
Tugas kelompok
Aidil Kun
 

Similar to Algoritma & pemrograman 2 (20)

M04b dasar program c
M04b dasar program cM04b dasar program c
M04b dasar program c
 
Dasar c
Dasar cDasar c
Dasar c
 
Algoritma dan Pemrograman
Algoritma dan PemrogramanAlgoritma dan Pemrograman
Algoritma dan Pemrograman
 
Awal dasar belajar c++
Awal dasar belajar c++Awal dasar belajar c++
Awal dasar belajar c++
 
Bahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsiBahan dpk-io-array-fungsi
Bahan dpk-io-array-fungsi
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Mengenal fungsi scanf() dan printf()
Mengenal fungsi scanf() dan printf()Mengenal fungsi scanf() dan printf()
Mengenal fungsi scanf() dan printf()
 
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
 
Pemrograman #11
Pemrograman #11Pemrograman #11
Pemrograman #11
 
Laporan
LaporanLaporan
Laporan
 
Modul pd
Modul pdModul pd
Modul pd
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Dasar dasar turbo pascal
Dasar dasar turbo pascalDasar dasar turbo pascal
Dasar dasar turbo pascal
 
Tipe data
Tipe dataTipe data
Tipe data
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
 
Minggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptxMinggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptx
 
Dasar pemrograman basic
Dasar pemrograman basicDasar pemrograman basic
Dasar pemrograman basic
 
Tugas kelompok
Tugas kelompokTugas kelompok
Tugas kelompok
 
Alwin pascal-02
Alwin pascal-02Alwin pascal-02
Alwin pascal-02
 
Alwin pascal-02
Alwin pascal-02Alwin pascal-02
Alwin pascal-02
 

Recently uploaded

NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptxNADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
nadiafebianti2
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
rhamset
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
muhammadiswahyudi12
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
jayakartalumajang1
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Tsabitpattipeilohy
 
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
AdityaWahyuDewangga1
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
delphijean1
 
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptxMetode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
ssuser2537c0
 
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
AnandhaAdkhaM1
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
HADIANNAS
 
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
indahrosantiTeknikSi
 

Recently uploaded (11)

NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptxNADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
 
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
 
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptxMetode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
 
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
 
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
 

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
  • 106.
  • 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