Anda di halaman 1dari 23

KATA PENGANTAR

Alhamdulillah, atas berkat rahmat dan karunia dari Allah SWT, penulis dapat
menyelesaikan penulisan laporan Algoritma dan Pemograman I ini dengan baik.

Penulisan laporan Algoritma ini dimaksudkan untuk memenuhi salah satu tugas
mata mata kuliah Algoritma dan Pemrograman. Penulis menyadari bahwa isi dari laporan ini
masih jauh dari sempurna, Ketidak sempurnaan ini disebabkan oleh masih terbatasnya
kemampuan pengetahuan dan pengalaman yang dimiliki penulis. Oleh karena itu demi
kesempurnaan saran dan kritik dari semua pihak yang bersifat membangun serta memberikan
dorongan sangat penulis harapkan.

Dalam melaksanakan praktik ini, penulis tidak lepas dari bantuan dukungan dan
bimbingan dari berbagai pihak. Pada kesempatan ini pula, penulis mengucapkan terima kasih
kepada Allah SWT atas rahmat dan hidayah-Nya yang diberikan kepada penulis, Ibu Siti
Aminah, selaku Dosen Pembimbing, dan kepada semua pihak serta orangtua yang telah
membantu dalam kegiatan Laporan yang tidak dapat disebutkan satu persatu. Semoga amal
baik mereka mendapat balasan yang lebih baik dari Allah SWT.

Penulis sangat berharap mudah-mudahan laporan Algortima ini dapat bermanfaat


khususnya bagi penulis dan umumnya bagi pembaca.

Bandung, 21 September 2015

Penulis
BAB I PENDAHULUAN

1.1 Dasar Teori

Algoritma secara umum, diartikan sebagai strategi pemecahan masalah.algoritma


terdiri dari susunan langkah-langkah yang dijamin dapat dikerjakan dalam selang waktu
tertentu tanpa memperdulikan aturan suatu bahasa pemograman tertentu.

Software yang dipakai dalam praktikum kali ini adalah salah satu software yang
sudah lama di kenal oleh masyarakat khususnya oleh para pelajar yaitu software Dev C++.
Software Dev C++ digunakan untuk membuat sebuah program nyata dengan menggunakan
bahasa pemograman. Program merupakan kumpulan instruksi-instruksi atau perintah yang
disusun sedimikan rupa sehingga mempunyai urutan logis yang dapat menyelesaikan suatu
permasalahan. Bahasa pemograman yang dipakai dalam software ini adalah bahasa
pemograman C++.

Algoritma mempunyai 5 ciri penting menurut Donald E. Knuth dalam bukunya


berjudul The Art of Computer programming, yaitu diantaranya :

1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Program


yang tidak pernah berhenti adalah program yang berisi algoritma yang salah.

2. Setiap langkah yang dilakukan didefinisikan dengan tepat dan tidak berarti banyak
(ambiguous).

3. Algoritma memiliki nol atau lebih masukan (inpu). Input adalah besaran yang memiliki
hubungan masukan.

4. Algorima mempunyai satu atau lebih keluaran(output). Keluaran ialah besaran yang
memiliki hubungan dengan masukan.

5. Algoritma harus efektif. Setiap langkah harus sederhana sehingga dapat dikerjakan
dalam sejumlah waktu yang masuk akal dan agar dapat diterjemahkan oleh bahasa
pemograman dengan mudah.
BAB II
2.1 Pemecahan Masalah

2.1.1 Latihan Soal 1


1. Buat program Algoritma untukmengevaluasi polynomial 3x2-5x = 6 dengan x
merupakan dari user
2. Buat Algoritma untuk konversi suhu dari Celcius dan Farenhait/
F=C*1,8 + peluang.
Input : Suhu dalam Celsius
Output : Suhu dalam Farenhait.
3. Memenghitung nilai peroleh Premix, Premium dan Solar dalam liter, untuk:
Baca surat nilai, simpan dalam Variabel Uang
Simpan nilai 1500 pada konstanta Premix
Simpan nilai 1000 pada konstanta Premium
Simpan nilai 600 pada konstanta Solar
Hitung Uang dibagi Premix, simpan hasilnya pada variabel LPremix
Hitung Uang dibagi Premium, simpan hasil pada variabe LPremium
Hitung Uang dibagi Solar, simpan hasilnya pada variabel LSolar
Tampilkan LPremix, LPremium, dan Lsolar
4. Sebuah truk berangkat dari A menuju B dengan kecepatan rata-rata 60km/jam. Dua jam
kemudian sebuah sedan berangkat dari A menuju B dengan kecepatan rata-rata 90
km/jam. Pada kilometer berapa dari A, sedan tersebut menyusul truk.
Simpan nilai 60 pada konstanta KT
Simpan nilai 90 pada konstanta KS
Hitung 2 kali KT dibagi dengan hasil pengurangan KS dengan KT, simpan hasilnya
dalam variabel W.
Hitung KS dikali W, simpan dalam variabel KM
Tampilkan nilai KM
(2 * KT) + (KT * W) = (KS * W)
(2 * KT) = (KT * W) - (KS* W)
(2 * KT) = (KS - KT) * W
W = (2 * KT) / (KS - KT)
(Lampiran Pengerjaan dihalaman berikutnya)
2.1.2 Latihan soal 2
1. Buat Algoritma dari studi kasus dan buat asumsi jika diperlukan. Diketahui data
NIM,Nilai UTS, Nilai Hadir, Nilai Tugas, dan Nilai Quiz. Hitung total Nilai Tengah
Semester(NTS) dengan rumus penjumlahan dari 40% Nilai UTS, 25% Nitai Tugas,
25% Nilai Quis, dan 10% Nilai Hadir. Dari NTS dapat diseleksi NIM yang akan
mengikuti ujian perbaikan. NIM yang boleh mengikuti ujian perbaikan adalah yang
memiliki NTS lebih kecl dari 60. Tampilkan NIM, NTS, dan pesan yang menyatakan
mengikuti perbaikan.
2. Diketahui data pegawai sebanyak30 orang gaji yang diterima terdiri dari gaj pokok,
tunjangan (dihitung 15% dari gaji pokok), dan upah lembur (dihitung perjam) 3% dari
gaji pokok.
Input : Nomor Pegawai(NIP), Gaji Pokok, Jumlah jam lebur
Output: NIP,Gaji Pokok, Tunjangan, Upah Lembur, Total gaji yang diterima.
3. Buat Algoritma untuk memeriksa 3 bilangan yang d input, tampilakan (output) bilangan
yang paling besar dan paling kecil, lalu periksalah apakah bilangan tersebut bilangan
positif atau bilangan negative.

(Lampiran Pengerjaan dihalaman berikutnya)


2.2 Notasi Algoritma

2.2.1 Latihan soal 1


1. Buat flowchart untuk mencari data yang paling besar dari sejumlah data yang
diberikan/ diinputkan.
2. Di dalam menentukan lulus dan tidaknya seseorang siswa di dilakukan 2 kali
pengujuan:
Jika Nilai 1>=60 SiswaLULUS
Jika Nilai I<60 maka lakukan Nr(Nilai, Nilai 2) /2
Jika nila Nr >= 70 Maka siswa LULUS
Jika Nr < maka siswa TIDAK LULUS
Buat Flowchart dari soal diatas .
3. Telusuri flowchart dan mencari harga X serta membuat tabel pengujian berdasa nilai X
dan I
4. Mengisi symbol-simbol yang masih belum terisi dan hasil akhir harga X (keluarannya)
sama dengan harga akhir dengan hasil harga X pada soal no 3.
5. Memperhatikan flowchart yang ada lalu menganalisis berdasa flowchat dengan nilai
n=10 dan nilai awal x=4
6. Membuat tabel dan menampilkan hasilnya
7. Buatlah flowchart untuk menghitung harga x1 dan x2 dengan rumus ABC {persamaan
kuadrat}

D= b2 - 4 * a * c (D=nilai Diskriminan)

Jika D>0 maka mempunyai dua akar riil yang berlainan: x1 dan x2

Jika D=0 maka mempunyai dua akar riil yang sama: x1 sama dengan x2

Jika D<0 maka tidak mempunyai harga riil x1 dan x2 (imaginer)

8. Membuat flowchart dan mengkonversikan nilai angka menjadi nila huruf.

(Lampiran Pengerjaan dihalaman berikutnya)


2.3 Pemograman C++
2.3.1 Percobaan tentang program mengenal tipe dan penggunaan format data

Analisis
Pada percobaan 1 program tersebut terdapat empat tipe data dasar yang berbeda,
yaitu:
Int: int atau integer adalah tipe data yang terdiri dari bilangan bulat. Contohnya 32767
Float: float adalah tipe data real yang mempunyai presisi-tunggal.
Contohnya 339.2345678f
Double : double adalah tipe data real yang mempunyai presisi-ganda.
Contohnya 3.4567e+40
Char: char adalah tipe data karakter. Contohnya S
Pada program di atas juga terdapat fungsi printf yang berfungsi untuk menampilkan
output ke layar.

2.3.2 Program Operasi Aritmatika


Analsis :
Pada percobaan 2 dioprasikan operasi Aritmatika seperti tanda tambah ( +), kurang(-),
kali(*), dan operator lainya .

2.3.3 Program Modulus

Analisis :
Modulus digunakan untuk mencari sisa dari hasil pembagian dua bilangan. Operasi modulus
dalam C++ menggunakan tanda %. Contoh penggunaannya seperti dalam program adalah :
a % b = 0, artinya sisa pembagian a oleh b adalah 0. Jika dimasukkan angka a=14 dan b=2,
maka a % b = 2 karena 14 dibagi 2 adalah 7 sisa 0.

2.3.4 Program Modulus

Analisis :
Pada percobaan ini kita bisa mencari diskriminan dari bilangan yang sudah diketahui
2.3.5 Program penggunaan Pre dan Post Increment operator

Analisis :
Pre-increment adalah penambahan nilai suatu variable sebelum diganti oleh variable lain,
contoh yaitu loop = ++count, variable count akan menambah nilai terlebih dahulu setelah itu
menjadi nilai dari variable loop. Sebaliknya, post-increment adalah penambahan nilai
variable setelah diproses menjadi variable lain, contoh dari program di atas adalah loop =
count++, artinya count akan menjadi nilai loop dahulu, lalu terjadi penambahan nilai variable
tersebut.

2.3.6 Percobaan 6 perbedaan formatx%q,%e dan %f

Analisis :
Format e %e : untuk menampilkan bilangan real dalam notasi eksponensial atau
berpangkat.
Format f %f : untuk menampilkan bilangan real seperti decimal. Meskipun bilangan
berupa 1, 2 atau 3, bilangan tersebut tetap akan ditulis decimal.
Format g %g : untuk menampilkan bilangan real dalam bentuk notasi yang
bergantung pada kepresisian data. Namun, digit 0 tidak akan ditampilkan jika
bilangan bukan decimal.
2.3.7 Program medan data

Analsis :
Program medan data ini merupakan program untuk menampilkan beberapa kata yang
memiliki posisi berbeda. Garis pertama, tertulis abad yang berposisi rata kiri.

2.3.8 menghitung keliling dan luas lingkaran

Analisis :
Alur dari program tersebut adalah jari-jari diinputkan, lalu mengolah data tersebut sehingga
mendapatkan luas dan keliling lingkaran. Kemudian, hasil dari pengolahan tersebut dibuat
sebagai output. Dan angka yang dgunakan bernilai real jadi memakai float dala programnya.
2.3.9 Latihan percobaan

1. Buat program Algoritma untukmengevaluasi polynomial 3x2-5x = 6 dengan x


merupakan dari user

2. Buat Algoritma untuk konversi suhu dari Celcius dan Farenhait/


F=C*1,8 + peluang.
Input : Suhu dalam Celsius
Output : Suhu dalam Farenhait.

3. Memenghitung nilai peroleh Premix, Premium dan Solar dalam liter, untuk:
Baca surat nilai, simpan dalam Variabel Uang
Simpan nilai 1500 pada konstanta Premix
Simpan nilai 1000 pada konstanta Premium
Simpan nilai 600 pada konstanta Solar
Hitung Uang dibagi Premix, simpan hasilnya pada variabel LPremix
Hitung Uang dibagi Premium, simpan hasil pada variabe LPremium
Hitung Uang dibagi Solar, simpan hasilnya pada variabel LSolar
Tampilkan LPremix, LPremium, dan Lsolar

4. Sebuah truk berangkat dari A menuju B dengan kecepatan rata-rata 60km/jam. Dua jam
kemudian sebuah sedan berangkat dari A menuju B dengan kecepatan rata-rata 90
km/jam. Pada kilometer berapa dari A, sedan tersebut menyusul truk.
Simpan nilai 60 pada konstanta KT
Simpan nilai 90 pada konstanta KS
Hitung 2 kali KT dibagi dengan hasil pengurangan KS dengan KT, simpan hasilnya
dalam variabel W.
Hitung KS dikali W, simpan dalam variabel KM
Tampilkan nilai KM
(2 * KT) + (KT * W) = (KS * W)
(2 * KT) = (KT * W) - (KS* W)
(2 * KT) = (KS - KT) * W
W = (2 * KT) / (KS - KT)
2.4 Statement Pengendali
2.4.1 Percobaan pengunanaan if-else

Analisis :
Program pengkondisian diatas merupakan program yang menggunakan perintah if dan
else.. Jika kondisi setelah if bernilai benar maka akan masuk pada perintah satu,
sedangkan jika bernilai salah maka akan masuk pada perintah yang kedua.

2.4.2 Percobaan pengunanaan if-else

Analisis
Pada program ini digunakan kondisi IF untuk menyeleksi suatu kondisi tunggal. Bila
proses terpenuhi seperti nilai < 70 (nilai kurang dari 70) atau bernilai benar , maka nilai
tersebut jelek, namun bila sebaliknya maka pernyataan bernilai salah.
2.4.2.1 Kondisi yang terjadi bila if (nilai<70) diubah menjadi if(nilai>70)

Analisis :
Pada program diatas kondisi yang terjadi bernilai salah sehingga saat nilai = 70
sedangkan syarat kondisi yang nilainya bagus nilai>70 sehinnga kondisi akhir adalah
nilai yang didapat jelek.

2.4.2.2 Kondisi yang terjadi bila if (nilai<70) diubah menjadi if (nilai<=70)

Analisis :
Kondisi saat nilai = 70 bernilai benar dengan pernyataan nilai<=70 maka kondisi akhir
yang keluar adalah nilai nya bagus.
2.4.2.3 Kondisi yang terjadi bila inputan dinamis sesuai nilai yang dimasukan

Analisis :
Untuk membuat program dengan inputan dinamis hanya dengan menambahkan syntax printf
dengan menmpilkan output penginputan nilai lalu nilai itu di inputkan kedalam program dan
dimasukan dalam kondisi if.

2.4.3 Penggunan if else

2.4.3.1 kondisi yang terjadi bila else dihapus


Analisis :
Syntax else if di atas merupakan syntax percabangan bila ingin menyatakan kondisi lebih dari
satu.

2.4.4 Kondisi Switch, Case dan Default

Analisis :
Program di atas adalah program yang memakai fungsi switch, case dan default. Fungsi ini
digunakan untuk memilih perintah yang dilakukan apabila suatu variable bernilai yang telah
ditentukan. Contohnya dalam program di atas nilai yang diinputkan adalah 5, maka yang
keluar adalah output muhammad surya iksanuddin. Namun bila nilai yang diinput adalah
angka 1 maka outpunya Muhammda, bila nilai yang diinput 2 maka outputnya Surya, dan bila
nilai 3 yang di input maka outputnya Iksanudin.

2.4.5 Menghitung huruf vocal


Analisis : Program ini adalah program yang berfungsi untuk menyeleksi dan menghitung
huruf vocal dalam suatu rangkaian kata. Program ini menggunakan pengkondisian switch,
case, dan default. Adapun pengkondisian IF di bagian akhir untuk menentukan output.
Variabel yang ada di program ini adalah :
jum (Variabel ini bertipe data integer karena fungsinya untuk menghitung atau
counter. Variabel ini awalnya bernilai nol. Dalam setiap statement case, variable
ini akan dioperasikan menggunakan operator increment atau jum=jum+1.)
nama (Variabel ini digunakan sebagai input. Variabel ini bertipe karakter maka
dari itu dideklarasikan sebagai char. Variabel ini akan masuk ke dalam kondisi
switch,case dan default.)

2.4.6 Menampilakan Deret Bilangan dengan FOR

Analisa :
Program ini adalah contoh dari penggunaan for. Untuk nilai i dari 0 sampai 100 dilakukan
percobaan dengan menggunakan fungsi modulus, apabila i mod 2 dan 3 bernilai 0, maka i
akan dicetak, hingga mendapat nilai seperti di atas.
2.4.7 Menampilkan deret dari 0-20

Analisis :
Program merupakan contoh penggunaan pengulangan while. i awalnya bernilai 0, lalu
selama i nya lebih kecil dari 20, maka cetak nilai i dan tambah 1 pada nilai i hingga
outputnya seperti yang ada di gambar.

2.4.8 Menampilkan deret menurun dari 20 sampai 0

Analisis :
Program ini menggunakan struktur do...while... dengan i mula-mula 20, lalu selama i lebih
dari aatau sama dengan 0, maka cetak nilai i dan kurangi nilai 1 dengan 1. Sebenarnya fungsi
dari for, while, dan do...while... sangat mirip sekali, yang membedakan hanya cara penulisan
saja. Dan kondisi akhir menjadi deret yang menurun di outputnya.
2.5 Latihan Soal
2.5.1 Latihan Soal Struktur IF dan Switch
1. Program flowchart disamping
START

Input a

Yes
A<0
Negatif

No
Yes
A>0 Positif

No

Nol

FINISH

Analisis :
Program ini menggunakan kondisi IF. Fungsi dari program ini yaitu untuk menemukan
kondisi yang benar ataupun sesuai nilai a yang dimasukan.
2. Buat flowchart dan Program untuk dapat menyelesaikan persamaan kuadrat dengan
rumus berikut

Input : ab.c
Output : x1,x2, atau tidak mempunyai nilai
Clue b2-4ac = determinan, jika determinan bernilai nnegatif maka
tidak adanya nilainya.

3. Membuat program dari tabel ini

Analisis :
Program diataas merupakan pengembangan dari statistic yang diubah dalam bentuk tabel dan
menjadi sebuah program.
4. Membuat program Nama-nama bulan

Analisis :
Program diatas menggunkan switch case sehinnga nanti bilaa kita memasukan nilai bulan ke-,
maka output itu bulan yang ke-n tersebut

5. Program untuk mencetak tampilan berikut dengan pengulangan for ataupun while.

Analisis :
Pada program ini menggunakan while dengan batas yang tiap berkurang itu dikurangi
1 sehingga dapat terurut dari jumlah terbesar ke terkecil.
6. Menuliskan Loop yang meghitung penjumlahan setiap bilangan integer ketiga
berikutnya, dimulai dengan i=2 (ialah 2+5+8+11+..) untuk seluruh nilai yang kecil dari
20.

Analisis :
Program ini menggunakan pengulangan while untuk mendapatkan angka berurutan
dengan i=2 dan kurang dari 20.
7. Buat program untuk mencetak 10 angka bilangan prima pertama 2,3,5,7,11,13,.

Analisis :
Untuk menemukan 10 bilangan pertama prima dari program yang ini yaitu
menggunakan pengulangan for sebanyak dua kali dan kondisi IF. Dengan
menggunakan permisalan a, b, c. Permisalan a sebagai batas .
BAB V PENUTUP

Kesimpulan

Setelah melakukan praktikum Algoritma, dapat disimpulkan bahwa Algoritma


merupakan strategi pemecahan masalah secara beraturan dan logis dan terlepas dari bahasa
pemrograman. Sebelum menggunakan bahasa pemrograman kita wajib memiliki kemampuan
dalam memecahkan masalah secara logis terlebih dahulu. Dengan menganalisis dulu untuk
membedakan mana out ataupun input.

Dalam seminggu praktikum pertama kita mempelajari dasar-dasar algoritma dan dan
bahasa C. Hal-hal yang kita pelajari dapat dibagi menjadi 3bagian: Dasar-dasar bahasa
pemrograman dan statement pengendali. Berikut ini beberapa aturan dasar dalam program
C++ :

a. Pembuatan file mengikuti kaidah penamaan dos (8 karakter nama & max 3 karakter
untuk extention)
b. Keyword harus ditulis dalam huruf kecil
c. Variable harus di awali huruf atau symbol( _ ) dan tidak boleh sama dengan kata
kunci C++ karena kata kunci compiler akan di batalkan
d. Penulisan program (penamaan fungsi,variable dan kostanta) bersifat case sensitive
e. Pernyataan dalam C++ boleh menggunakan symbol /* */ atau / /
f. Setiap pernyataan ekspresi dalam program harus diakhiri dengan titik koma ( ; )

Struktur statement pengendali terbagi menjadi 2, yaitu : Struktur Kondisi dan


struktur Perulangan. Struktur kondisi digunakan untuk menyeleksi data input untuk
dilanjutkan ke proses inggaprogram beres. Strukur kondisi memiliki 3 bentuk, yaitu: Struktur
Kondisi if, if else, switch case default. Sedangkan struktur perulangan memiliki 3
bentuk, yaitu: For to do, while, dan Do while.
Algoritma mempunyai 5 ciri penting menurut Donald E. Knuth dalam bukunya
berjudul The Art of Computer programming, yaitu diantaranya :
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Program yang
tidak pernah berhenti adalah program yang berisi algoritma yang salah.

2. Setiap langkah yang dilakukan didefinisikan dengan tepat dan tidak berarti banyak
(ambiguous).

3. Algoritma memiliki nol atau lebih masukan (inpu). Input adalah besaran yang memiliki
hubungan masukan.

4. Algoritma mempunyai satu atau lebih keluaran(output). Keluaran ialah besaran yang
memiliki hubungan dengan masukan.

5. Algoritma harus efektif. Setiap langkah harus sederhana sehingga dapat dikerjakan dalam
sejumlah waktu yang masuk akal dan agar dapat diterjemahkan oleh bahasa pemograman
dengan mudah.