Algoritma dan Pemrograman 2 merupakan mata kuliah yang membahas tentang asal usul algoritma, definisi algoritma, contoh algoritma, bahasa pemrograman C dan C++ beserta penjelasan tentang komponen-komponennya seperti variabel, tipe data, operator, input-output, dan string.
Algoritma dan pemrograman - Disusun oleh Fitri Ratna DewiFitri Ratna Dewi
Materi yang terdapat dalam salindia ini berdasarkan beberapa referensi buku dan situs web. Semoga bisa bermanfaat bagi yang mau belajar algoritma dan pemrograman ataupun sebagai bahan ajar untuk dibahas lebih lanjut. Keep learning and don't forget to share.
Algoritma dan pemrograman - Disusun oleh Fitri Ratna DewiFitri Ratna Dewi
Materi yang terdapat dalam salindia ini berdasarkan beberapa referensi buku dan situs web. Semoga bisa bermanfaat bagi yang mau belajar algoritma dan pemrograman ataupun sebagai bahan ajar untuk dibahas lebih lanjut. Keep learning and don't forget to share.
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;
}
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()
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 %
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.03.5
7.0/23.5
% 2 Sisa
Penjumlahan
7%21
8%32
8%20
+ 3 Penjumlahan 2 + 35
2 + 3.05.0
- 3 Penguranga 3 – 1 5
3 – 1.02.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
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;
}
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
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 simpuldata1.
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];
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;
}
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:
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]
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)
Keliling2 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;