Anda di halaman 1dari 21

TUGAS DESIGN ANALISA ALGORITMA

Nama :

 dwi abriyantoro (12043073)


 Moh yanu rudiayanto(12043019)
 Budi kristianto(12043115)

Kelas : E

Jurusan : TEKNIK INFORMATIKA (SORE)


Terdapat suatu masalah dalam desaign analisa algoritma

1. Diketahui 3 variabel P,Q, dan R. Buat algoritma sehingga output yang dihasilkan adalah nilai
P=Q,nilaiQ=R,nilai R=P, ditanya algoritma?

Jawab :

o Notasi 1

Suatu variable p dapat diartikan sebagai rumus penambahan dan pengurangan begitu juga
perkalian dan pembagian dengan menggunakan bilangan ganjil/genap sehingga dapat
menghasilkan nilai yang sama terhadap variable yang lain, meskipun disetiap variable berbeda
rumus pada akhirnya.

o NOTASI 1

- Langkah 1 : menggunakan algoritma variable peubah


- Langkah 2 : proses penggunaan algoritma peubah

o NOTASI 2 :

Sintaks : P = Q
Algoritma : P <- Q
Arti : Bahwa Nilai P diberi harga Nilai Q
Nilai P akan SAMA DENGAN nilai Q dan Nilai Q TETAP

- Contoh Soal 1:
Diketahui P=0, Q=5 dan R=10. Diberikan algoritma P=Q, Q=R, maka nilai P, Q, R sekarang ?
Jawab
Diketahui P = 0, Q = 5, R = 10
P = Q –> Pada saat ini nilai dari Variabel P akan diberi nilai dari Variabel Q (P = 5)
Q = R –> Pada saat ini nilai dari Variabel Q akan diberi nilai dari Variabel R (Q = 10)
Maka nilai P, Q dan R sekarang adalah P = 5, Q = 10 dan R = 10

- Contoh Soal 2:
Diketahui Algoritma P=10, P=P+1 dan Q = P. Berapakah nilai P dan Q ?

Jawab
Algoritma:
P = 10 –> Pada saat ini nilai dari Variabel P akan diberi nilai 10
P = P + 1 –> Pada saat ini nilai dari Variabel P yang baru adalah nilai dari variabel P yang lama
ditambah 1 (10 + 1 = 11)
Q = P –> Pada saat ini nilai dari variabel Q diberi nilai dari variabel P yang baru (Q =11)

- Contoh Soal 3:
Diketahui 3 varibael peubah P, Q dan R. Agar isi Q ditaruh di P, isi R ditaruh di Q dan isi P
ditaruh di R,maka Algoritma yang dapat ditulis adalah ..?

Jawab
Agar isi Q ditaruh di P, algoritma yang dapat ditulis adalah (P <- Q atau P=Q)
Agar isi R ditaruh di Q, algoritma yang dapat ditulis adalah (Q <- R atau Q=R)
Agar isi P ditaruh di R, algoritma yang dapat ditulis adalah (R <- P atau R=P)

mulai

DIMISALKAN VARIABEL
p=0,VARIABEL Q=5,R=10
Rumus : P=0, Q=5, R=10

MASUKKAN NILAI VARIABEL P


Input P = .........................

DENGAN MENGUNAKAN VARIABEL


Jika diminta niai variable P, PEUBAH,NILAI VARIABEL P AKAN
DIBERI NILAI VARIABEL Q
maka diberi nilai variable Q

Output P=Q
HASIL DARI PROSES DENGAN
MENGGUNAKAN VARRIABEL PEUBAH
Input Q =.............

Jika diminta nilai variable Q,


maka beri nilai variable R

Output Q=R

Input R=.............

Jika diminta Nilai variable R, maka


berikan nilai variable P
Output R=P

selesai

2. Seorang petani akan bepergian kekota dengan membawa seekor kambing , anjing dan
tempat yang ketiganya memiliki berat yang tidak jauh berbeda. Ditengah jalan petani harus
menyebrangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut
tidak diperbolehkan membawa bawaannya sekaligus mengingat kapasitas kekutan perahu
tersebut, dan untuk melaluinya petani harus membawa satu persatu bawaannya.

Ditanya : berapakali petani tersebut harus melalui jembatan dengan memperhatikan bahwa
kambing makan rumput anjing makan kambing?

o NOTASI 1 :

- Langkah 1 : tujuh kali menyebrangkan dan nol kali lewat jembatan


- Langkah 2 : cara menyebrangkanya

o NOTASI 2

saya selesaikan kali ini adalah anjing.


Kita harus menyebrangkan ketiga objek yaitu rumput,kammbing dan serigala. Setiap
penyebrangan hanya bisa membawa satu objek. Jangan meninggalkan 2 objek yang
berhubungan, misalnya sayuran dengan domba atau domba dengan serigala.
Cara Menyelesaikannya sama dengan game iq penyebrangan yang kemarin, kita harus
menyebrangkan objek yang tingkatannya lebih tinggi.
1. Sebrangkan domba
 2. Setelah di sebrang, keluarkan dombanya lalu nyebrang lagi
3. Sebrangkan sayuran
4. Setelah di sebrang, Keluarkan sayurnya masukkan dombanya lalu nyebrang lagi
5. Keluarkan dombanya, masukkan serigala, nyebrang lagi
6. Keluarkan serigala, nyebrang lagi
7. Masukkan dombanya, nyebrang lagi lalu keluarkan
Selesai....
mulai

Perahu,dayung,petani,sebrangkan kambing,anjing,rumput,dari
A ke B

PERSIAPAAN PERAHU DAN DAYUNG MEMASUKKAN KAMBING TERLEBIH DAHULU


PETANI MEMILAH AGAR KEDUA
Masukkan kambing
BINATANG TIDAK BERTEMU

PROSES MENYEBRANG KAMBING DARI A


Proses menyebrangkan ke B KE B

KELUARKAN KAMBING DARI Keluarkan kambing


PERAHU

Proses meyebrang ke A

Masukkan rumput

Proses menyebrang ke B

KELUARKAN RUMPUT
DARI PERAHU SETELAH
Keluarkan rumput dan masukkan kambing SAMPAI KE B LALU
MASUKKAN KAMBING

Proses menyebrang ke A

Keluarkan kambing dan masukkan anjing

Proses menyebrang ke B

Keluarkan anjing

Proses menyebrang ke A

Masukkan kambing

Proses menyebrang ke B
Keluarkan kambing

selesai

3. Bagaimana caranya untuk menyeberangkan tiga orang wanita yang sedang dikejar
oleh Tiga orang pria ke sisi pulau yang ada diseberang pulau?

W1 = Wanita 1
W2 = Wanita 2
W3 = Wanita 3
P1 = pria1
P2 = Pria2
P3 = Pria3
NOTASI 1
- Langkah 1: delapan kali menyebrangkan dan nol kali lewat jembatan
- Langkah 2 : cara menyebrangkannya

NOTASI 2
Cara menyelesaikannya yaitu :
1. Sebrangkan P1 dan P2 terlebih dahulu
2. Setelah sampai disebrangkan, keluarkan P1
3. Lalu sebrangkan P2 dan masukkan P3 lalu sebrangkan mereka
4. Keluarkan P2 sebrangkan P3
5. Keluarkan P3 sebrangkan W1 dan W2
6. Keluarkan W1 masukkan P1, lalu sebrangkan mereka
7. Keluarkan P1 masukkan W3, lalu sebrangkan mereka
8. Keluarkan W2 dan W3, lalu sebrangkan P2
Setelah itu biarkan P1, P2, P3 disebrang sana..
selesai...
Mulai

Menyebrangkan 3 gadis dari kejaran 3 cowok sangar dengan perahu dan


dayung

Masukkan cow1 dan cow 2 Siapkan perahu dan


dayung untuk
Proses menyebrangkan menyebrangkan 3gadis
gadis 1 dan cow 1 Proses menyebrang dari kejaran 3cow sangar
menggunakan perahu dan
dayung
Keluarkan cow 1
Keluarkan cow 1 dari perahu

Proses menyebrang

sebrangkan cow 2 masukkan cow 3


Menyebrangkan cow 2
dan memasukkan cow 3
Proses menyebrang
kedalam perahu

Keluarkan cow 2

Proses menyebrang

Tuurunkan cow 3 masukkan gadis 1 dan 2

Proses menyebrang

Turunkan gadis 1 naikkan cow 1

Proses menyebrang

Turunkan cow 1 masukkan gadis 3

Proses menyebrang

Turunkan gadis 2 dan 3 naikkan cow 2

Proses menyebrang
Keluarkan cow 2 dan biarkan ke sebrang

selesai
Refisi Tugas UTS

Soal !

1. Buatlah notasi 1,2 dan flowchart

o penjumlahan 3 bilangan factorial !


o penjumlahan matriks beda dimensi !

jawab :

o penjumlahan 3 bilangan factorial !

Notasi 1

Melakukan perhitungan untuk fungsi matematis penjumlahan factorial yaitu dengan

(n) sebuah peristiwa yang saling lepas

(c1) banyak cara pada pperistiwa pertama

(c2) banyak cara pada peristiwa kedua

(c3) banyak cara pada peristiwa ketiga dst

Sehingga dapat disimpulkan rumus penjumlahan c1+c2+c3+.....+N

Dengan bentuk secara umum penulisan factorial untuk bilangan asli (n) dapat ditulis

n!=nx(n-1)x(n-2)x....x2x1

Misal : 5!+4!+3!=(5x4x3x2x1)+(4x3x2x1)+(3x2x1)=150

Sehinggga suatu bilangan jika difaktorialkan akan membentuk sebuah perkalian deret dan jika
dilakukan penjumlahan dalam bentuk factorial dapat menghasilkan billangan bulat. Jadi dalam hal
inipemilihan suatu jenis variable atau objek penampung untuk hasil dari (n) atau penjumlahan
factorial boleh beracuan hanya pada bilangan bilangan bulat. Seelain itu dalam penjumlahan
factorial jika menemukan suatu bilangan adalah (0!) maka hsail dari (0!=1) karena itu sudah
ketetapan.
Notasi 2

o siapkan bilangan bulat


o jenis variable (n) dalah integer
o menentukan angka untuk mewakili 3 bilangan yang akan difaktorialkan
o masukkan angka pertamaa kedalam variable (n)
o jika sudah dimasukkan maka factorial angka pertama dengan menggunakan rumus factorial
o sampai angka pertama sudah diketahui hasil factorialnya maka masukkan angka kedua
o jika sudah dimasukkan angka kedua maka factorialkan
o sampai angka kedua sudah diketahui hasil faktorialnya maka masukkan angka ketiga
o jika sudah dimasukkan angka ketiga maka faktorialkan
o sampai angka ketiga suddah diketahui hasil faktorialnya maka hasil factorial dari angka
pertama, angka kedua dan ketiga
o sampai akhirnya menghasilkan hasil angka dari penjumlahan 3 bilangan yang telah
difaktorialkan
o apakah (n) adalah nol
o jika (n) adalah nol maka hasil adalah 1
o jika (n) tidak sama dengan nol maka (n) melakukan perkalian deret atau factorial
Mulai

Mial variabelA=5,B=4,C-3
A=5,B=4,C=3

Input A,B,C
Proses peritungan inputan dengan rumusan nx(n-1).... misal
5!=5x4x3x2x1
Proses perhitungan inputan A

mi

Output nilai A Hasil dari factorial nilai A 5!

Proses perhitungan inputan B

Output nilai B

Proses perhitungan inputan C

Output nilai C

Jika terdapat nilai 0 pada variable A,B,C


Apakah nilai variable A,B,C ada yang =
0

nPn=n!/(n-n)!/0! n!=n!/0!
Poses perhitungan dengan
0!=n!/n!=1 jadi 0!=1
bilangan 0

Output nilai dari variable = 0 adalah 1

Proses pengulangan
Apakah variable A,B,C ≠ 0 atau looping

Jika tidak maka proses penjumlahan dari


hasil output A,B,C

hasil

selesai
o penjumlahan matriks beda dimensi

Notasi 1 :

Melakukan penjumlahan suatu matriks mempunyai ukuran yang disebut ordo. Ordo matriks
berbentuk axb dengan a banyak baris dan b banyak kolom dalam setiap penjumlahan matiks dapat
dirumuskan sebagai berikut dengan dimensi yang sama :

A B E F A+E B+F
C D G H C+G D+H

Jika penjumlahan matriks dengan ordo yang berbeda maka didalam setiap kotak bilangan matriks
yang akan dijumlahkan dengan bilngan matriks lainnya yang berbeda dimensi atau ordo dengan
rumusan baris + baris, sehinga dapat mennghasilkan nilai dari bilangan itu sendiri dan akan
menyisakan satu kolom sisa yang tidak dapat dijumlahkan lagi dengan matiks dimensi lawan.
Sehingga bilangan tersebut tetap tidak terproses. Dalam hal ini pemilihan suatu jenis variable atau
objek penampung untuk hasil dari penjumlahan matriks tidak bisa diproses atu ERROR.

Notasi 2 :

- membuat matriks dengan ukuran yang dikehendaki


- masukkan suatu bilangan kedalam elemen/anggota matriks pertama
- jika sudah terbentuk matriks pertama maka membuat matriks kedua
- pada pembuatan matriks kedua harus disesuaikan dengan ukuran/tipe pada matriks
pertama
- sampai pembentukan matriks kedua maka masukkan bilangan pada elemen/anggota matriks
kedua
- dilebihkan dalam jumlah baris dan kolom 1 deret
- jika sudah terbentuk matriks pertama dan kedua maka dilakukan penjumlahan
- pada penjumlahan dua matriks tersebut elemen-elemen yang dijumlahkan adalah elemen
yang pasti atau letaknya sama
- jika ada elemen yang tidak terjumlahkan maka hasilnya adalah error
- jika ingin mendapatkan hasil yang bulat maka lakukan penjulahan dengan dimensi yang
sama
mulai

Misalkan matriks pada ordo yang


sama
A= B=
2 3 6 7
4 5 8 9

Pemilihan baris A dengan B


Input A,B

Proses penjumlahan baris A(2 3)


dengan B(6 7) Proses penjumlahan baris A dengan B sehingga menghasilkan
matriks baru(hasil) (2+6 3+7)

Output nilai baris 1A dengan 1B


kedalam matriks hasil (c) Hasil kedalam matriks C
2+6 3+7

Proses penjumlahan baris A(4 5)


dengan B(8 9)

Output nilai baris 2A


dengan 2B

Hasil dari dua kolom berdaarkan baris+baris ke dalam


Hasil dari kedua matriks masuk dalam matriks
matriks C

2+6 3+7
4+8 5+9

Memulai kembali dengan


berbeda ordo/dimensi
A= 2 3 B= 6 7 8
4 5 9 10 11

Mennyiapkan dua matriks


yang berbeda ordo
Input A,B

Proses penjumlahan baris A(2 3) dengan Masukkan angka kedalam


B(6 7 8) elemen matriks

Output ERROR
Proses penjumlahan dengan ordo yang
berbeda A(2 3) dengan B(6 7 8) terjadi
kesalahan dalam proses karena C(2+6 3+7
) angka 8 tidak terproses

Dilakukan pengulangan/looping 8

selesai
Tugas UAS

Algoritma untuk membandingkan 2 bilangan

Algoritma untuk membandingkan 2 bilangan

1. Mulai
2. Inputkan A,B
3. Cek apakah A>B ?
 - Jika “ya” tulis A
 - Jika “tidak” tulis B
4. selesai

FLOWCHART:

Source code

#include <stdio.h>
#include <conio.h>

main()
{
int i,j;
char ulang;
atas:

clrscr();
printf(“Program perbandingan 2 bilangan\n”);
printf(“===============================\n”);
printf(“\n”);
printf(“masukan bilangan 1 : “);scanf(“%i”,&i);
printf(“masukan bilangan 2 : “);scanf(“%i”,&j);
printf(“\n”);
printf(“===================================\n”);

if (i>j)
{
printf(” bilangan 1(%i) lebih besar dari bilangan 2(%i)\n”,i,j);
printf(” bilangan 1(%i) lebih kecil dari bilangan 2(%i)\n”,j,i);
}
else if (j>i)
{
printf(” bilangan 1(%i) lebih besar dari bilangan 2(%i)\n”,j,i);
printf(” bilangan 1(%i) lebih kecil dari bilangan 2(%i)\n”,i,j);
}
else
{
printf(” bilangan 1(%i) sama dengan bilangan 2(%i)\n”,i,j);
}
printf(“\n”);
printf(” mau ulang lagi[y/n]? : “);scanf(“%s”,&ulang);
if (ulang == ‘Y’ || ulang == ‘y’)
goto atas;
getch();
}
Tugas 5

1. mengurutkan nilai bilangan dari kecil kebesar sejumlah n bilangan


2. membandingkan 2 himpunan bilangan dengan jumlah n bilangan

1. Notasi 1

Untuk mengurutkan bilangan dierlukan variable array untuk menampung semua bilangan yang akan
diurutkan. Proses pengurutkan dilakukan dengan membandingkan semua elemen array satu persatu

Dimetode bubble sort,proses pengurutan dimulai dengan membandingkan elemen pertama untuk
mendapatkan angka terbesar. Lalu angka tersebut diletakkan pada elemen terakhi. Jika isi elemen
ke2 lebih kecil dari elemen pertama maka isi kedua elemen tersebut ditukar sehingga isi array
berubah.

Lalu elemen ke2 dibandingkan dengan elemen ke3. Jika isi elemen ke3 lebih besar, maka isi kedua
elemen tersebut tidak ditukar.

Perbandingan selanjutnya dilakukan terhadap elemen ke 3 dengan ke4 karena elemen ke 4 lebbih
kecil, maka isi kedua elemen tersebut ditukar. Sehingga isi array sebelumnya berubah.

Proses perbandingan tersebut dilakukan secara berulang sampai pada elemen terakhir. Sehingga
pada akhirnya akan diasilkan bilangan terbesar yang ditempatkan pada posisi elemen terakhir.

Proses diatas hanya mencari bilangan terbesar perrtama. Ulangi proses tersebut untuk mencari
bilangan terbesar lainnya setelah bilangan terbesar pertama tadi. Namun proses perbandingannya
hanya dilakukan mulai dari elemen pertama sampai elemen ke 7. Isi elemen pertama dibandingkan
dengan elemen ke 2. Karena isi elemen ke 2 lebih besar, maka isi kedua elemen tersebut tidk
ditukar.

Kemudian elemen ke 2 dibandingkan dengan elemen ke 3. Karena elemen ke 3 lebih kecil. Lanjutkan
proses diatas sampai paa elemen ke 7.

Kini isi elemen ke 7 dan ke 8 sudsh urut berdasarkan bilangan kecil ke besar. Namun elemen lainnya
belum terurut. Untuk itu ulangi proses diatas, namun elemen yang dibandingkan hanya sampai pada
elemen ke 6 saja. Setelah itu, proses perbandingan diulangi lagi sampai elemen teakhir yang
dibandingkan yaitu elemen ke 2.

Notasi 2

1. Persiapkan variable yang dipakai dalam proses, yaitu:


N : variable untuk menyatakan jumlah elemen array,jumlah ini diketahui berdasarkan
banyaknya bilangan yang diinputkan melalui keyboard.
I,J :variable indeks untuk mebandingkan isi array
2. Prose pertama yang dilakukan adalah mengisi semua bilangan ang akan diurutkan ke array.
Pada flowchart dibawah, aray tersebut diberi nama BIARR. Bilangan diinput melalui
keyboard dan disimpan didalam variable BIL
3. Periksa isi variable BIL. Pada flowchart dibawah,disumsikan pengisian bilangan berakhir jika
operator mengetik 0 untuk bilangan yang diinput. Oleh karena itu, jika BIL=0 maka proses
dilanjutkan ke lanngkah 7 untuk mulai pengurutan bilangan. Jika BIL tidak sama dengan 0
berarti pengisian bilangan belum berakhir, maka proses dilanjutkan ke langkah 4
4. Variable N ditambah 1. Variable ini untuk menentukan elemen array ang diisi nilai dari
variable BIL
5. Isi elemen array dengan nilai yang tersimpan di variable BIL. Posisi elemmen tersebut
ditentukan beradasarkan harga N
6. Kembali kelangkah 2 untuk menginput bilangan lainnya
7. Variable J ditambah 1
8. Variable I ditambah 1
9. Bandingkan isi elemen array pada posisi sesuai dengan nilai variable I atua BILARR (I)
dengan elemen array didepannya yaitu posisi I+1 atau BILARR (I+1). Jika isi BiLARR (I) lebih
kecil dari BILARR (I+1) maka isi kedua elemen tersebut tidak ditukar. Untuk proses
dilanjutkan ke langkah 11. Namun jika isi BILARR (I) > dari BILARR (I+1) lanjutkan ke langkah
10 untuk menukar isi kedua elemen terssebut.
10. Pindahkan isi BILARR(I) ke variable sementara yaitu TEMP
Pindahkan isi BILARR (I+1) ke BILARR(I)
Pindahkan isi TEMP ke BILARR (I+1)
11. Periksa isi variable I. Jika I sama dengan N-J maka proses peerbandingan untuk mencari
bilangan terbesar pertama selesai. Untuk itu proses dilanjutkan ke langkah 12. Jika isi I
belum sama, maka proses perbandingan untuk mencari bilangan terbesar belum selesai.
Untuk itu proses selanjutnya kembali kelangkah 8.
12. Periksa isi veriabel J. Jika J sama dengan N-1, maka semua elemen telah diperbandingkan
dan proses pengurutan telah selesai . untuk itu proses dilanjutkan ke langkah 15 untuk
mencetak seluruh isi array. Jika isi J masih belum sama dengan N-1 maka semua bilangan
belum terurut. Proses dilanjutkan ke langkah 13 untuk mencari bilangan terbesar lainnya.
13. Variable I diisi nilai 0
14. Kembali ke langkah 7 untuk mencari bilangan terbesar lainnya
15. Variable I diisi nilai 0
16. Variable I ditambah 1
17. Cetak isi BILARR(I)
18. Periksa isi I jika I sama dengan N berarti semua elemen array telah dicetak maka proses
selesai. Jika isi I belum sama dengan N berarti semua elemen array bleum tercetak. Untuk itu
kembali ke langkah 16 untuk mencetak elemen lainnya.
start 1

I=0 J=J+1
J=0
N=0

N=N+1
Input BIL

BIL = 0
1 BILARR(I)<
BILARR(I+1)

TEMP = BILARR(I)
N=N+1 BILARR(I+1)=TEMP

BILARR(N)=BIL J = N-1 3

I=0
J = N-1

I=0 I=I+1

3 Print BILARR(I)

End
I=N
2. membandingkan 2 himpunan bilangan dengan jumlah n bilangan

Struktur Indonesia :

1. Mulai
2. Inisiasi bil1,bil2 sebagai integer.
3. Baca bil1.
4. Baca bil2.
5. Jika bil1=bil2 kerjakan langkah 7,
selain itu kerjakan langkah 6.
6. Jika bil1 > bil2 kerjakan langkah 8,
selain itu kerjakan langkah9.
7. Cetak “Kedua Bilangan Sama Besar”.
8. Cetak “Bil1 Lebih Besar Bil2″.
9. Cetak “Bil2 Lebih Besar Bil1″.
10. Selesai.

Flow chart
#include<conio.h>
#include<iostream.h>

void main(){
int bil1, bil2;
cout << “Masukan Bilangan Pertama :”;
cin >>bil1;
cout << “Masukan Bilangan Kedua :”;
cin >>bil2;

if (bil1==bil2) {
cout << “Bilangan Pertama Sama Dengan Bilangan Kedua”;
}
else if (bil1>bil2) {
cout << “Bilangan Pertama Lebih Besar Bilangan Kedua”;
}
else{
cout << “Bilangan Kedua Lebih Besar Bilangan Pertama”;
}
getch();
TUGAS DESIGN ANALISA ALGORITMA

NAMA :

 MOCH RIDWAN
 SAMUDRA RIZKY (12043145)
 IVAN DEKA SURYA

KELAS : E

JURUSAN : TEKNIK INFORMATIKA (SORE)

Anda mungkin juga menyukai