Anda di halaman 1dari 122

ALGORITMA &

PEMOGRAMAN 1

OLEH :
Septiana Imadhi Rastri , S.Kom
Persentasi Nilai
Tugas 10 %
Quis 10 %
UTS 40 %
UAS 40 %
PENGANTAR ALGORITMA
PEMROGRAMAN
ALGORITMA

Definisi
Urutan langkah-langkah untuk memecahkan masalah
Kamus Besar Bahasa Indonesia:
Algoritma adalah urutan logis pengambilan putusan
untuk pemecahan masalah
Contoh Algoritma dalam kehidupan nyata:
Jika seorang mahasiswa akan memasak mie rebus,pasti
akan melakukan suatu langkah-langkah tertentu sehingga
masakannya jadi.

Jika seseorang ingin mengirim surat kepada kenalannya di


tempat lain, langkah yang harus dilakukan adalah:
 Menulis surat
 Surat dimasukkan ke dalam amplop tertutup
 Amplop ditempeli perangko secukupnya.
 Pergi ke Kantor Pos terdekat untuk mengirimkannya
KRITERIA ALGORITMA
Input: algoritma dapat memiliki nol atau lebih inputan
dari luar.
Output: algoritma harus memiliki minimal satu buah
output keluaran.
Definiteness (pasti): algoritma memiliki instruksi-instruksi
yang jelas dan tidak ambigu.
Finiteness (ada batas): algoritma harus memiliki titik
berhenti (stopping role).
Effectiveness (tepat dan efisien): algoritma sebisa mungkin
harus dapat dilaksanakan dan efektif. Contoh instruksi
yang tidak efektif adalah: A = A + 0 atau A = A * 1
PENULISAN ALGORITMA
Dalam bahasa natural (Bahasa Indonesia, Bahasa
Inggris,dan bahasa manusia lainnya)
 Tapi sering membingungkan (ambiguous)

Menggunakan flow chart (diagram alir)


 Bagus secara visual akan tetapi repot kalau algoritmanya panjang

Menggunakan pseudo-code
 Sudah lebih dekat ke bahasa pemrograman, namun sulit
 dimengerti oleh orang yang tidak mengerti pemrograman
ALGORITMA: Bahasa Natural
1. Ambil bilangan pertama dan set maks sama dengan
bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan maks
3. Apa bila bilangan kedua lebih besar dari maks, set maks
sama dengan bilangan kedua
4. Ambil bilangan ketiga dan bandingan dengan maks
5. Apabila bilangan ketiga lebih besar dari maks, set maks
sama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar. Tayangkan
hasilnya
ALGORITMA: pseudo-code
maks ← bilangan pertama
if (maks < bilangan kedua)
maks ← bilangan kedua
if (maks < bilangan ketiga)
maks ← bilangan ketiga
ALGORITMA: Flow Chart
SIMBOL FLOWCHART
Flow Direction Symbols (Simbol penghubung alur)
Processing Symbols (Simbol proses).
Input-output Symbols (Simbol input-output)
PEMBUATAN FLOWCHART

Tidak ada kaidah yang baku.


Flowchart = gambaran hasil analisa suatu masalah
Flowchart dapat bervariasi antara satu pemrogram dengan
pemrogram lainnya.
Secara garis besar ada 3 bagian utama:
 Input
 Proses
 Output
Hindari pengulangan proses yang tidak perlu dan logika
yang berbelit sehingga jalannya proses menjadi singkat.
Jalannya proses digambarkan dari atas ke bawah dan
diberikan tanda panah untuk memperjelas.
Sebuah flowchart diawali dari satu titik START dan diakhiri
dengan END.
CONTOH FLOWCHART
Pengenalan Bahasa C
Defenisi Program
Adalah kumpulan-kumpulan intruksi-intruksi
tersendiri yang biasanya disebut source code yang
dibuat oleh programer
Program adalah kumpulan instruksi atau perintah
yang disusun sedimikianrupa sehingga
mempunyai urutan nalar yang tepat untuk
menyelesaikan suatu persoalan.
Instruksi (Statement) adalah Syntax (cara
penulisan) sesuai dengan bahasa pemograman
yang digunakan.
Mempunyai komponen-komponen : input, output,
proses,percabangan, dan perulangan.
Sejarah C
Di ciptakan pada tahun 1983 oleh Bjarne stroustrup,
lab. Bell AT & T
Merupakan perkembangan dari bahasa C
Pada mulanya C++ disebut “ a better C
Kelebihan & Kekurangan Bahasa C
Kelebihan Bahasa C
 Bahasa C tersedia hampir di semua jenis computer.
 Kode bahasa C sifatnya adalah portable dan fleksibel
untuk semua jenis computer.
 Bahasa C hanya menyediakan sedikit kata-kata kunci,
hanya terdapat 32 kata kunci.
 Proses executable program bahasa C lebih cepat
 Dukungan pustaka yang banyak.
 C adalah bahasa yang terstruktur
 Bahasa C termasuk bahasa tingkat menengah

Kekurangan Bahasa C
 Banyaknya Operator serta fleksibilitas penulisan
program kadang-kadang membingungkan pemakai.
 Bagi pemula pada umumnya akan kesulitan
menggunakan pointer
Aturan umum penulisan bahasa C++
Bahasa C++ membedakan penulisan huruf besar dan kecil.
Untuk memberi komentar pada suatu statement
(keadaan), dapat menggunakan /* di awal dan */ di akhir
atau // dalam satu baris.
Awal dan akhir subroutine atau fungsi harus diapit kurung
kurawal.
Setiap statement harus diakhiri tanda titik koma.
Setiap variabel yang digunakan wajib dideklarasikan
terlebih dahulu.
Include adalah salah satu pengarah prepocessor directive
yang tersedia pada C++.
Preprocessor selalu dijalankan terlebih dahulu pada saat
proses kompilasi terjadi.
Bentuk umumnya :
# include <nama_file>

 # include <iostream.h> : diperlukan pada program yang melibatkan


objek cout
 # include <conio.h> : diperlukan bila melibatkan clrscr(),yaitu
perintah untuk membersihkan layar.
 # include <iomanip.h> : diperlukan bila melibatkan setw() yang bermanfaat
untuk mengatur lebar dari suatu tampilan data.
 # include <math.h> : diperlukan pada program yang menggunkan operasi sqrt
() yang bermanfaat untuk operasi matematika
kuadrat.
Fungsi main () adalah fungsi yang menjadi inti dari
program dan merupakan awal dan akhir eksekusi. Fungsi
ini harus ada dalam setiap program. Tanda kurawal buka
{ merupakan tanda awal fungsi main dan tanda kurawal
tutup } merupakan tanda berakhirnya fungsi main.

Perintah-perintah dasar C++


 cout <<
Merupakan perintah yang biasa dipakai untuk menampilkan suatu
keluaran pada layar.
Contoh: cout << “Lab. Pemrograman Komputer”;
cout << “Jurusan Teknik Informatika\n”;
 cin >>
Merupakan perintah yang berguna untuk memasukan data, yang
selanjutnya didefinisikan sebagai data variabel.
contoh: int age;
cin >> age;

• Konstanta adalah nilai numeris/karakter yang tetap atau tidak


berubah. Dalam C++ ada 4 kelas konstanta, yaitu:
1. Konstanta integer, berupa integer biasa, integer panjang (long int)
dan integer tak bertanda (unsigned integer). Nilainya dapat berupa
desimal, oktal atau hexadesimal.
2. Konstanta floating point, dapat mengandung nilai pecahan, yang
biasa ditulis dalam bentuk pecahan biasa maupun bentuk
eksponensial dan selalu dinyatakan dalam double, kecuali jika
diakhiri dengan F atau f (menyatakan konstanta float).
3. Konstanta string, merupakan deretan karakter yang diawali dan
diakhiri dengan tanda petik ganda (“...“). Juga dapat mengandung
karakter yang menggunakan tanda \ yang disebut karakter escape
(escape sequence).
4. Konstanta karakter, selalu diawali dan diakhiri dengan tanda petik
tunggal (‘...’). Beberapa konstanta karakter dapat diawali dengan
tanda \ (penempatannya setelah tanda petik tunggal).
- Tipe Data Dasar
© Tipe bilangan bulat (Integer)
© Tipe Bilangan rill (floating point)
© Tipe Karakter atau string
© Tipe logika (boolean)
- Tipe Data Bentukan
- Enumerasi
TIPE DATA
 Tipe data Adalah suatu nilai yang dapat dinyatakan dalam bentuk
konstanta atau variabel dan operator. Pada dasarnya tipe data terdiri
dari :

1. Tipe bilangan bulat (integer) adalah suatu tipe data yang di


gunakan untuk menyimpan nilai-nilai yang berbentuk bulat
(bilangan yang tidak mengandung koma), misalnya 10,23,200 dsb.
2. Tipe bilangan rill (floating point) adalah Tipe data yang
digunakan untuk menyimpan nilai-nilai bilangan riil (bilangan yang
mengandung koma), misalnya 2.13, 5.64, 1.98 dan lainnya.

3. Karakter adalah tipe data untuk menyimpan sebuah karakter atau


gabungan karakter yang mempresentasikan sebuah karakter
misalnya karakter-karakter sbb :
 Penulisan nilai sebuah karakter dinyatakan didalam dua buah tanda
petik satu (‘) sbb:

4. String merupakan tipe data yang berupa kumpulan karakter (satuatu


lebih) yang berada didalam dua buah tanda petik dua (“).
Tipe Data Bentukan
Tipe data bentukan adalah suatu tipe data yang
didefenisikan sendiri untuk memenuhi kebutuhan
program yang kita buat.
Yang termaksud kedalam tipe data bentukan
adalah tipe array(larik) dan struktur.
Enumerasi
Enumerasi adalah suatu tipe data yang nilainya telah
didefenisikan secara pasti pada saat pembuatan tipe.
Tipe ini umumnya digunakan untuk menyatakan
sesuatu yang nilainya sudah pasti, seperti nama hari,
nama bulan, jenis kelamin dsb.
-Variabel
© Batasan penamaan variabel
© Lingkup variabel
© Variabel global
© Variabel lokal
-Jenis-Jenis variabel
© Variabel OtomatisVariabel Statis
© Variabel Register
Variabel
 Variabel adalah Suatu pengenal didalam program yang berguna untuk
menyimpan nilai dari tipe data tertentu.

 Batasan Penamaan Variabel


 Nama variabel tidak boleh berupa angka ataupun karakter yang berupa
angka.
Contoh :
int 234; /*SALAH, karena nama variabel berupa angka */
int 3Dimensi; /*SALAH, karena nama variabel diawali oleh
angka */
int S1; /*BENAR, karena nama variabel diawali oleh
huruf */
 Nama variabel tidak boleh mengandung spasi.
Contoh:
float Bilangan Riil; /* SALAH,karena mengandung spasi */
float BilanganRiil; /* BENAR */
float _BilanganRiil; /* BENAR */
float Bilangan_Riil; /* BENAR */

 Nama variabel tidak boleh menggunakan karakter-karakter yang


merupakan simbol (@,?,#,!,dll) meskipun karakter tersebut terletak
ditengah atau dibelakang nama variabel.
Contoh :
int # lima; /*SALAH */
int enam@; /*SALAH */
int tu?juh; /*SALAH */
 Nama variabel tidak boleh menggunakan kata kunci maupun makro
yang telah didefenisikan.
Contoh :
int void;/*SALAH */
int return; /*SALAH */

 Lingkup Variabel

 Variabel Global
adalah variabel yang dideklerasikan diluar fungsi,baik fungsi utama
maupun fungsi pendukung lainnya.

 Variabel Lokal
adalah variabel yang dideklerasikan didalam sebuah fungsi sehingga
hanya dapat dikenali dan diakses oleh fungsi itu saja.
Jenis-jenis Variabel
 Variabel otomatis
Adalah variabel yang hanya dikenal didalam suatu blok saja (dalam
tanda {…} )),baik itu dalam blok pemilihan, pengulangan ataupun
fungsi.
 Variabel Statis
adalah suatu variabel yang menyimpan nilai permanen dalam memori
(menyimpan nilai akhir yang diberikan).
 Variabel Eksternal
adalah variabel yang menuliskan sintax program kedalam file yang
terpisah dengan tujuan untuk modularisasi program.
 Variabel Register
Adalah suatu variabel yang menyimpan nilai di dalam register CPU
(Central Proccessing Unit).
Operator
1. Operator Assignment
2. Operator Unary
© Increment
© Pre-increment
© Post increment
© Descrement
3. Operator Binary
© Operator Aritmatika
© Operator Logika
© OperatorRelasional
© Operator Bitwise
4. Operator Ternary
Operator
 Operator adalah simbol atau tanda yang jika diletakkan pada dua
buah operan dapat menghasilkan sebuah hasil.

1. Operator Assignment adalah suatu operator penugasan yang


digunakan untuk memasukkan nilai ke dalam suatu variabel.
Operator ini dilambangkan dengan tanda (=)
2. Operator Unary adalah operator yang digunakan untuk melakukan
operasi-operasi matematik yang hanya melibatkan satu buah
operand.
Yang termasuk dalam operator unary adalah :
 Increment adalah suatu proses yang menaikkan (menambahkan nilai
dengan nilai 1).
 Pre-increment adalah menaikkan nilai yang terdapat pada sebuah
variabel sebelum nilai dari variabel tersebut diproses didalam
program.
 Post increment adalah menaikkan nilai yang terdapat pada
sebuah variabel setelah nilai dari variabel tersebut di proses
didalam program.
 Descrement adalah kebalikan dari increment yang merupakan proses
penurunan nilai dengan nilai 1.
3. Operator Binary adalah operator yang digunakan untuk melakukan
operasi yang melibatkan dua buah operand.Operator binary di
golongkan menjadi 4 jenis yaitu : aritmatika,logika, relasional dan
bitwise.
 Operator Aritmatika adalah operator yang berfungsi
untuk melakukan operasi-operasi aritmatika seperti
penjumlahan, pengurangan,perkalian, dan pembagian.
 Operator Logika adalah operator digunakan di dalam operasi yang
hanya dapat menghasilkan nilai benar (true) dan salah (false).
Yang termasuk operator logika adalah :

 Operasi AND akan memberikan nilai benar apabila semua


operandnya bernilai benar, selain itu operasi ini akan menghasilkan
nilai salah.
 Operasi OR akan menghasilakan nilai salah apabila semua nilai
operannya salah.
 Operator NOT (!) Adalah operasi yang menghasilkan nilai ingkaran
(negasi) dari nilai operand yang diberikan.
 Operator Relasional adalah operator yang di gunakan untuk
menentukan relasi atau hubungan dari dua buah nilai atau operand.
Yang termasuk dalam operator relasional :

 Operator Bitwise adalah operator yang digunakan untuk


menyelesaikan operasi-operasi bilangan dalam bentuk biner yang di
lakukan bit demi bit.
Yang termasuk operator bitwise:

 Operator ^ (eksklusif OR) merupakan Operasi XOR akan


memberikan nilai benar apabila hanya dapat satu buah operand
yang bernilai benar.
 Operator >> (Shift Reght) Di gunakan untuk melakukan
penggeseran bit ke kanan sebabyak nilai yang di defenisikan.
 Operator << (Shift left) Merupakan kebalikan dari operator shift
right yang artinya dapat melakukan pergeseran bit ke arah kiri
sebanyak nilai yang didefinisikan.
4. Operasi Ternary
Operator yang melibatkan tiga buah operand.
Operator ini dilambangkan dengan tanda ?: berguna untuk melakukan
pemilihan terhadap nilai tertentu dimana pemilihan tersebut
didasarkan atasekspresi tertentu.
INPUT DAN OUTPUT
 Input Data
a. Scanf ( )
b. Gets ( )
c. cin
d. getchar ( )
 Output Data
a. Printf ( )
b. Puts ( )
c. Putchar ( )
d. Cprintf ( )
e. Cout
Input Data
a. Scanf ( )
 Digunakan untuk memasukkan berbagai jenis data.
 Terdapat dalam file header: stdio.h
 Sintaks
Scanf ( “<format>”, &Variabel);
 Keterangan :
Simbol & merupakan pointer yang digunakan untuk
menunjuk kealamat variabel memori yang di tuju.
Penentu format scanf
b. gets( )
Digunakan untuk memasukkan data string

 Sintaks
gets (nama-variabel-array);
c. Cin
– Merupakan sebuah object didalam C++ yang
digunakan untuk memasukkan data.
– Terdapat di dalam file.header : iostream.h
 Sintaks :
Cin >> <var>;
 Catatan:
– Untuk mendapatkan sebuah inputan data yang
mengandung spasi, dapat menggunakan :
Cin.getline (<var>, sizeof (<var>))
d. getchar
– Digunakan untuk membaca sebuah karakter dengan
sifat karakter yang dimasukkan tidak perlu diakhiri
dengan menekan tombol enter dan karakter yang
dimasukkan tidak akan ditampilkan dilayar.
– Terdapat di dalam file header: conio.h
OUTPUT
a. Printf ( )
– Fungsi output yang paling umum digunakan.
– Terdapat di dalam file header : stdio.h
 Sintaks :
Printf (“format”, arg1,arg2…);
 Keterangan :
 Format berupa keterangan yang akan ditampilkan
kelayar beserta penentu formatnya.
 Penentu format di gunakan untuk menentukan jenis
data apa yang akan ditampilkan dilayar.
 Argumen dapat berupa variabel, konstanta,atau
ekspresi.
Penentu format pada printf
b. Puts
 Digunakan untuk mencetak string kelayar.
 Pencetak akan diakhiri dengan karakter newline (ke
baris baru).
 Terdapat dalam file header: stdio.h

 Sintaks:
Puts (<string yang ditampilkan>);
c. Putschar
 Menampilkan sebuah karakter kelayar
 Pencetakan karakter tidak diakhiri dengan karakter
newline.
 Terdapat dalam file header : stdio.h

 Sintaks
Putschar (<kar>);
d. Cprintf ( )
 Memiliki fungsi yang mirip dengan printf.
 Dapat menampilkan tulisan dengan warna.
 Terdapat dalam file header: stdio.h

 Sintaks :
Cprintf ( “<format>”,arg1, arg2,….);
e. Cout ( )
– Merupakan object dalam C++ yang digunakan untuk
menampilkan data kelayar.
– Terdapat dalam file header : iostream.h
– Dapat digabungkan dengan pengguna escape
sequence character.
 Contoh:
Cout << “Hello Word” <<endl;
Cout <<“Pilihan anda salah\a\n”;
Penggunaan Escape Sequence Character
Penggunaan Escape Sequence
Character
Penyeleksian Kondisi
Statement if
Satu kasus (if tunggal sederhana)
Dua kasus (if-else)
Lebih dari dua kasus (if-else-if… else)

Statement Switch
Penyeleksian Kondisi
Statement if
Ada 3 bagian dalam mengklasifikasi pemilihan
dengan menggunakan statemen if yaitu :
pemilihan yang didasarkan atas satu kasus, dua
kasus atau lebih dari dua kasus.
Satu kasus
Pemilihan jenis ini adalah pemilihan yang paling
sederhana karena hanya mengandung satu kondisi
yang akan diperiksa.

masuk
salah

kondisi
benar

Statemen di
dalam blok
kontrol

keluar
Bentuk umum dari statemen if untuk satu kasus
yakni :
If (kondisi)
Statement_yang _akan_dieksekusi;

If (kondisi) {
Statement_yang _akan_dieksekusi 1
Statement_yang_akan_dieksekusi 2;
….
}
Dua Kasus
Bentuk pemilihan ini merupakan perluasan dari
bentuk pertama, statemen yang akan dilakukan
apabila kondisi yang diperiksa bernilai salah (tidak
terpenuhi).

Cara yang digunakan yaitu dengan menambah


kata kunci else didalam blok pengecekan.

Statemen ini biasa dikenal dengan statemen


if-else.
masuk
salah

kondisi

benar
Statemen jika Statemen jika
Kondisi Kondisi tidak
terpenuhi terpenuhi

keluar
Bentuk umum untuk melakukan pemilihan dua
kasus yakni :
If (kondisi)
Statement_jika _kondisi_benar;

else
Statement_jika_kondisi_salah;

If (kondisi) {
Statement_jika _kondisi_benar1;
Statement_jika _kondisi_benar2;
….
} else {
Statement_jika_kondisi_salah1;
Statement_jika_kondisi_salah2;
….
}
Lebih dari dua kasus
Pada pemilihan jenis ini diizinkan untuk
menempatkan beberapa (lebih dari satu) kondisi
sesuai dengan kebutuhan program.
Bentuk umum dari pemilihan ini yaitu :

If (kondisi1) {
Statement_yang _akan_dieksekusi;

} else if (kondisi2) {
Statement_yang_akan_dieksekusi;

} else {
Statement_alternatif; /* apabila semua kondisi diatas tidak terpenuhi */

}
Statement Switch
Statement switch digunakan untuk melakukan
pemilihan terhadap ekspresi atau kondisi yang
memiliki nilai-nilai konstan.
Ekspresi yang didefenisikan harus menghasilkan
bilangan bulat atau karakter.
Kata kunci yang digunakan untuk mendefinisikan
nilai-nilai konstanta yakni case
Dalam melakukan pemilihan harus
menambahkan statement break pada setiap nilai
yang didefenisikan.
Bentuk umum statement switch
Switch (ekspresi) {
case nilai_konstan1:
{
statement_yang_akan_dieksekusi;

break;
}
case nilai_kostan2:
{
statement_yang_akan_dieksekusi;

break;
}

default:
{
statement_alternatif; /* apabila nilai diatas tidak terpenuhi */

}
}
Tugas
 Buatlah algoritma dan flow chat untuk kasus di bawah ini :
Sebuah aturan untuk menonton sebuah film tertentu sbb :
Jika usia penonton lebih dari 17 tahun maka diperbolehkan dan
apabila kurang dari 17 tahun maka tidak di perbolehkan nonton
PERULANGAN
Struktur for
Struktur while
Struktur do-while
Struktur for
Struktur for digunakan untuk menuliskan jenis
pengulangan yang banyaknyasudah pasti atau
telah diketahui sebelumnya.
Bentuk umum dari pendefinisian struktur for
(untuk sebuah statement) :
for (ekspresi1; ekspresi2 ; ekspresi3)
statement_yang_akan_diulang;

Sedangkan untuk dua statement atau lebih


for (ekspresi1; ekspresi2 ; ekspresi3) {
statement_yang_akan_diulang1;
statement_yang_akan_diulangi2;

}
Keterangan:

Ekspresi1 digunakan sebagaiproses inisialisasi


variabel yang akan dijadikan sebagai pencacah
(counter) dari proses pengulanga, dengan kata lain
ekspresi ini akan di jadikan sebagai kondisi awal.
Ekspresi2 digunakan sebagai kondisi akhir,yaitu
kondisidimana proses pengulangan harus
dihentikan.perlu diketahui bahwa pengulangan
masih akan dilakukan selagi kondisi akhir bernilai
benar.
Ekspresi3 digunakan untuk menaikkan
(increment) atau menurunkan (decrement) nilai
variabel yang digunakan sebagai pencacah.
Struktur while
Pada struktur pengulangan jenis ini kondisi akan
diperiksa dibagian awal. Hal ini menyebabkan
kemungkinan bahwa apabila ternyata kondisi yang
didefenisikan tidak terpenuhi (bernilai salah),
maka prose pengulangan tidak akan pernah
dilakukan.
Bentuk umum dari struktur while:
while ( ekspresi ) {
Statemen_yang_akan_diulang1 ;
Statemen_yang_akan_diulang2 ;

}
Struktur do-while
Pada struktur do-while kondisi diletakkan di akhir
blok pengulangan. Hal ini menyebabkan bahwa
statemen yang terdapat didalam blok pengulangan
pasti akan dievakuasi minimal satu kali, walaupun
kondisinya bernilai salah sekalipun.
Struktur do-while ini banyak digunakan untuk
kasus-kasus pengulangan yang tidak
mempedulikan benar atau salahnya kondisi pada
saat memulai proses pengulangan.
Bentuk umum dari struktur pengulangan do-while:

do {
Statemaen_yang_akan_diulang;


} while ( ekspresi ) ; / * ingat tanda semicolon ( ; ) * /
Tugas
Buatlah algoritma dan diagam alir (flow chat) untuk
menghitung luas lingkaran ?
Statement Peloncatan
© Menggunakan kata kunci break
© Menggunakan kata kunci continue
© Menggunakan kata kunci goto
Statement Peloncatan
Statement ini pada umumnya digunakan dalam
sebuah proses pengulangan, yang menentukan apakah
pengulangan akan diteruskan, dihentikan atau
dipindahkan kestatement lain didalam program.
3 buah kata kunci yang digunakan untuk melakukan
proses peloncatan yaitu :
Break,
continue,
goto
Menggunakan kata kunci break
Statement break digunakan untuk menghentikan
sebuah pengulangan dan program akan langsung
meloncat ke statement yang berada dibawah blok
pengulangan.
Menggunakan kata kunci continue
Statement continue digunakan untuk
melanjutkan proses pengulangan.
Menggunakan kata kunci goto
Kata kunci goto yang digunakan agar program
dapat meloncat ke baris tertentu yang kita pilih.
Adapun untuk menentukan baris tsb harus
membuat suatu label yakni :
© Dengan menempatkan tanda colon atau titik dua (:) di
belakangnya, misalnya LBL:,LABEL:,mylabel:
Statemen goto ini dapat ditempatkan dimana saja
sesuai dengan kebutuhan program.
UJIAN TENGAH SEMESTER
MATA KULIAH : ALGORITMA DAN PEMOGRAMAN
WAKTU : 75 MENIT
DOSEN : SEPTIANA IMADHIRASTRI, S.KOM

1. Apa yang dimaksud dengan :


a. Karakter
b. Tipe data
c. Variable
2. Buatlah algoritma dan flowchat untuk menghitung nilai uang
dalam bentuk dollar, pesos dan Yen, adapun inputannya adalah
rupiah dengan rumus :
Dollar = Rupiah / 10000
Yen = Rupiah / 5000
Pesos = Rupiah / 3000’
3. Buatlah algoritma dan flowchat untuk menghitung nilai dari
persamaan berikut :
Hitunglah nilai x dengan a, b, c sebagai nilai inputan
ARRAY (Larik)
Array adalah suatu variabel yang merepresentasikan
daftar (list) atau kumpulan data yang memiliki tipe
data sama.
Elemen array adalah setiap data yang terdapat dalam
array tersebut menempati alamat memori yang
berbeda.
Untuk mengakses nilai dari suatu element
array ,maka akan menggunakan indeks dari array
tersebut.
Indeks array dimulai dari angka 0, bukan 1.
Ilustrasi sebuah array
Nilai ke-1 Nilai ke- 2 … Nilai ke-N Nilai elemen array

Alamat ke-1 Alamat ke-2 … Alamat ke-N Alamat elemen array


0 1 … N-1 Indeks element array

Untuk mendeklerasikan suatu array satu dimensi


adalah dengan menggunakan tanda [] (bracket).
Adapun bentuk umu dari pendeklarasian tsbt adalah :

Tipe_data nama_array [banyak_elemen] ;

Contoh : nama A sebanyak 100 element data yang


bertipe int :
Int A [100];
Cara untuk memasukkan nilai ke dalam setiap elemen array
adalah :
A [0] = 1
A [1] = 2
A [2] = 3
A [3] = 4
A [4] = 5
A [5] = 6
...
A [99] = 100
INISIALISASI ARRAY
Saat array dideklarasikan,apabila tidak melakukan inisialisasi
nilai secara eksplisit terhadap elemen-elemen
didalamnya,maka kompilator C akan secarah
otomatismengeset nilai dari setiap elemen tsbt ke nol.
Cara untuk melakukan inisialisasi nilai terhadap elemen array,
contoh:
Int A [5] ={ 10, 20, 30, 40, 50 }
Int B [5] = { 10 };
Int C [5] = { 10, 0, 30};
Array A melukukan inisialisasi terhadap kelima element array,
yaitu dengan nilai 10, 20, 30, 40,dan 50 sehingga array A dapat
digambarkan sbb:
10 20 30 40 50
A [0] A [1] A [2] A [3] A [4]

Array B melekukan inisialisasi tehadap elemen pertama saja,


yaitu dengan nilai 10. artinya elemen lainnya masih kosong
sehingga
10 dapat digambarkan
0 0 sbb: 0 0
B [0] B [1] B [2] B [3] B [4]
Array C melakukan inisialisasi terhadap elemen ke-1 dan ke-3,
yaitu dengan nilai 10 dan 30. sehingga dapat digambarkan sbb:
10 0 30 0 0

C [0] C [1] C [2] C [3] C [4]


ARRAY KONSTAN
Sama pada variabel biasa, elemen array juga dapat dibuat
menjadi konstan, artinya nilai tidak dapat di ubahselama
program berjalan.
Bentuk umum dari array konstan yaitu :
Const tipe_data nama_array [N] = { nilai1, nilai2, …, nilaiN} :

Nilai-nilai yang terdapat pada array konstan hanya digunakan


untuk kepentingan akses program.misalnya nilai tsb akan
digunakan untuk melakukan proses perkalian,seperti yang
For ( int j=0 ; j<3; j++)
terdapat dlm sintak berikut :
printf ( “ %d x %d = %d\n” , A[j], j, (A[j] * j ) ) ;
}
ARRAY SEBAGAI PARAMETER
Digunakan untuk mengetahui nilai rata-rata dari elemen-
elemen array yang bertipe float.
Contoh sintak program sbb:
# include <stdio.h>

# define MAX 100

/* fungsi untuk memasukkan nilai kedalam elemen array */


Void inputArray ( float A[] , int N) {
for ( int j=0; j<N; j++) (
printf (“A[%d] = “ , j); scanf (“%d”, &A[j]);
}
}

/* fungsi untuk menghitung nilai rata-rata */


Float HitungRata-rata (float A[] , int N) {
float jumlah = 0;
for (int j =0; j<N; j++) {
jumlah += A[j] ;
}
return (jumlah /N)
}
Masukkan banyaknya elemen yang diinginkan : 5
A [0] = 12.50
A [0] = 14.13
A [0] = 10.74
A [0] = 15.88
A [0] = 16.35

Nilai rata-rata = 13.92


ARRAY SEBAGAI TIPE DATA BENTUKKAN
# include <stdio.h>

typedef int LARIK [100]

/*mendefenisikan fungsi untuk menghitung jumlah (sum) dari elemen array */


Int JumlahArray (int A[], int N) {
int Jumlah = 0;
for (int j = 0 ; j<N; j++) {
jumlah += A[j];
}
return jumlah :
}

Int main ( ) {

/* mendeklerasikan variabel x dengan tipe LARIK dengan inisialisasi 5 elemen */


LARIK X = { 10,20, 30, 40, 50 );
/* Menampilkan nilai yang terdapat pada elemen ke-1 sampai ke-5 array x */
for (int j = 0; j<5; j++) {
printf (“A [%d] = %d\n” , j, x [j] ) ;
}
/*menampilkan jumlah elemen array x dengan memenggil fungsi JumlahArray */
printf (“\n\jumlah = %d”, JumlahArray (x, 5) );

return 0;

}
A [0] = 10
A [1] = 20
A [2] = 30
A [3] = 40
A [4] = 50

Jumlah = 150
ARRAY MULTIDIMENSI
ARRAY DUA DIMENSI
array dua dimensi adalah array yang memiliki dua buah
subskrip, yaitu baris dan kolom.
Bentuk umum dari array dua dimensi ini adalah

tipe_data nama_array [banyak_baris] [banyak_kolom];


Contoh matrik 3x2
# include <stdio.h>

Int main (void) {


/*membuat tipe data bentukkan untuk merepresentasikan matrik ordo 3x2 */
typedef int Matrik32 [3] [2];

/*mendeklerasikan variabel A, B dan C yang bertipe Matrik 32 */


matrik 32 A, B, C;

/*mendeklerasikan variabel j dan k untuk indeks pengulangan */


int j, k;

/*mengisikan nilai kedalam elemen-elemen matrik A*/


printif (“mengisikan elemen matrik A:\n”);
for (j = 0; j<3; j++) {
for (k=0; k<2; k++) {
printf (“A[%d] [%d] = “, j, k); scanf (“%d”, &B[j] [k]);
}
}

/*mengisi nilai kedalam elemen-elemen matrik B*/


Printf (“\n mengisikan elemen matrik B:\n”);
For (j=0; j<3; j++) {
for (k=0; k<2; k++) {
printf (“B[%d] [%d] = “, j, k); scanf (“%d”, &B[j] [k]);
}
}
/*melakukan penjumlahan matrik A dan B dan menyimpannya kedalam matrik C */
For (j=0; j<3; j++) {
for (k=0; k<2; k++) {
C[j] [k] =A[j] [k] +B[j] [k] ;
}
}

/*menampilkan hasil penjumlahan matrik diatas */


Printf (“\nHasil penjumlahan matrik A dan B:\n”);
For (j=0; j<3; j++) {
for (k=0; k<2; k++) {
printf (“C[%d] [%d] = %d\n”, j, k, c[j] [k]);
}
}
Return 0;
}
Hasil program
Mengisikan elemen matrik A:
A [0] [0] = 10
A [0] [1] = 20
A [1] [0] = 30
A [1] [1] = 40
A [2] [0] = 50
A [3] [1] = 60

Mengisikan elemen matrik B:


B [0] [0] = 10
B [0] [1] = 20
B [1] [0] = 30
B [1] [1] = 40
B [2] [0] = 50
B [3] [1] = 60

Hasil penjumlahan matrik A dan B:


B [0] [0] = 20
B [0] [1] = 40
B [1] [0] = 60
B [1] [1] = 80
B [2] [0] = 100
B [3] [1] = 120
Array Tiga dimensi
adalah array yang memiliki tiga subskrip.
Bentuk umum dari array tiga dimensi ini adalah :

tipe_data nama_array [banyaknya_elemen_pada_sumbu_x]


[banyaknya_elemen_pada_sumbu_Y]
[banyaknya_elemen_pada_sumbu_z];
Tugas
 Buat algoritma program untuk menghitung total pembayaran dari
pembelian seorang pelanggan toko. Dalam masalah ini ada ketentuan,
apabila pembelian pelanggan tersebut sama dengan atau melebihi Rp.
100.000, maka pelanggan mendapat diskon 10% , jika tidak pelanggan
tersebut hanya mendapat diskon 5 %.
STRING (Array dari karakter)

String merupakan suatu pointer ke tipe char sehingga


tipe string ini direpresentasikan dengan tipe char* atau
dengan menggunakan array dari tipe char.
String akan diapit oleh tanda petik ganda (“”)
Suatu string selalu diakhiri dengan karakter null (‘\0’ ,
bukan berarti nol)
Menampilkan string ke layar
Untuk menampilkan suatu string ke suatu alat
keluaran (misalnya monitor) dapat menggunkan
fungsi printf ( )yang diikuti dengan format %s atau
dengan menggunakan fungsi puts ( )
maupun cputs( ).
Membaca string dari keyboard
#include <stdio.h>

Int main (void) {


/*mendeklerasikan variabel S yang bertipe string */
char *S;

/*melakukan input string dengan fungsi scanf ( ) */


printf (“masukkan nama lengkap anda : “); scanf ( ) */

/*menampilkan string yang telah disimpan ke dalam variabel S */


printf (“ Hai %s, apa kabarmu?”, s);

return 0;
}

Masukkan nama lengkap anda : Camelia panatarani


Hai Camelia, apa khabarmu?
#include <stdio.h>

Int main (void) {


/* mendeklerasikan variabel S yang bertipe string */
char *S;

/*melakukan input string dengan fungsi gets ( ) */


printf (“masukkan nama lengkap anda : “); gets ( ) */

/* menampilkan string yang telah disimpan kedalam variabel S */


printf (“Hai %s, apa kabarmu?”, S);

return 0;
}

Masukkan nama lengkap anda : Camelia panatarani


Hai Camelia panatarani, apa khabarmu?
Fungsi operasi string
1. Fungsi strcat ( )
prototipe dari fungsi ini adalah :

Char *strcat (char *str1, char* str2);

fungsi strcat ( ) akan menambahkan salinan dari string


str2 kebagian akhir string1.disini karakter null yang
terdapat pada string str1 akan dipindahkan kebagian
akhir dari string baru hasil pengggabungan.
Contoh

# include <stdio.h>
# include <string.h>

Int main (void) {


char s1 [50] =“pemograman”;
char s2 [21] = “menggunakan Bahasa C”;
strcat (s1, s2) ;
printf (“%s, s1);
return 0;
}

Pemograman menggunakan bahasa C


2. Fungsi strcpy ( )
prototipe dari fungsi ini adalah:
Char *strcpy (char *str1, char *str2);

fungsi ini akan melakukan penyalinan (copy) dari


string2 ke string1 (termasuk juga karakter null)
3. Fungsi strcmp ( )
prototipe dari fungsi ini adalah

Int strcmp (char *str1, char *str2);

fungsi ini akan mengembalikan nilai bilangan bulat


(integer) sebagai hasil perbandingan dua buah string
yaitu str1 dan str2.
4. Fungsi strlwr ( )
prototipe dari fungsi ini adalah

Char *strlwr (char *str)

fungsi ini akan menyebabkan string str berubah


menjadi huruf kecil.
5. Fungsi strupr ( )
prototipe dari fungsi ini adalah
Char *strupr (char *str);

fungsi ini merupakan kebalikan dari fungsi strlwr ( ),


dimana fungsinya adalah untuk mengubah suatu string
ke dalam bentuk huruf besar (kapital).
6. Fungsi strlen ( )
Berfungsi untuk memperolehjumlah karakter dari
suatu string.
prototipe dari fungsi ini adalah
Strlen (string)
Fungsi operasi karakter
1. islower ( )
Fungsi akan menghasilkan nilai benar (bukan nol) jika
karakter merupakan huruf kecil.
Bentuk umumnya : islower (char);

2. isupper ( )
Fungsi akan menghasilkan nilai benar (bukan nol) jika
karakter merupakan huruf kapital.
Bentuk umumnya: isupper (char);
2. Isdigit ( )
Fungsi akan menghasilkan nilai benar (bukan nol) jika
karakter merupakan sebuah digit.
Bentuk umumnya : isdigit (char);

3. tolower ( )
Fungsi akan mengubah huruf kapital menjadi huruf
kecil
Bentuk umumnya: tolower (char);
4. toupper ( )
Fungsi akan mengubah huruf kecil menjadi huruf
besar.
Bentuk umumnya : toupper (char);
Fungsi operasi matematika
1. sqrt ( )
Digunakan untuk menghitung akar dari sebuah
bilangan.
Bentuk umum : sqrt (bilangan)

2. pow ( )
Digunakan untuk menghitung pemangkatan suatu
bilangan.
Bentuk umum : pow (bilangan, pangkat);
3. Sin ( ), cos ( ), tan ( )
Masing-masing digunakan untuk menghitung nilai
sinus, cosinus, tangen dari suatu sudut.
Bentuk umum:
sin (sudut)
cos (sudut)
tan (sudut)
4. atof ( )
Digunakan untuk mengkonversi nilai string menjadi
bilangan bertipe doubel.
Bentuk umum: atof (char x)

5. atoi ( )
Digunakan untuk mengkonversi nilai string menjadi
bilangan bertipe integer.
Bentuk umum: atoi (char x)
5. Div ( )
Digunakan untuk menghitung hasil pembagian dari
sisa pembagian.
Bentuk umum :
Strukturnya :
6. max ( )
Digunakan untuk menentukan nilai maksimal dari dua
buah bilangan.
Bentuk umum : max (bilangan1, bilangan2)

7. min ( )
Digunakan untuk menentukan bilangan terkecil dari
dua buah bilangan.
Bentuk umum : min (bilangan1, bilangan2)
POINTER
Pointer (variabel penunjuk) adalah suatu variabel yang berisi
alamat memori dari suatu variabel lain.
Operator pointer ada 2 macam yakni:
Operator &
 bersifat unary (hanya memerlukan satu operand saja)
 Menghasilkan alamat dari operandnya

Operator *
 Bersifat unary (hanya memerlukan satu operand saja)
 Menghasilkan niulai yang berada pada sebuah alamat
Bentuk umum:

Tipe_data *nama_pointer;

Contoh:

Dalam bentuk pointer, ditulis :


Andi = &Budi; // baris 1
Budi = *(&Budi); // baris 2

Subtitusi pernyataan di baris 2 :


Andi = *Andi;
OPERASI POINTER
Operasi penugasan
suatu variabel pointer seperti halnya variabel yang lain , juga
bisa mengalami operasi penugasan nilai dari suatu variabel
pointer dapat disalin ke variabel pointer yang lain.
Operasi aritmatika
suatu variabel pointer hanya dapat dilakukan operasi aritmatika
dengan nilai integer saja. Operasi yang biasa dilakukan adalah
operasi penambahan dan pengurangan. Operasi penambahan
dengan suatu nilai menunjukkan lokasi data berikutnya (indek
selanjutnya) dalam memori.Begitu juga operasi pengurangan.
 Oprasi logika
suatu pointer juga dapat dikenai operasi logika

Anda mungkin juga menyukai