LOGIKA DAN ALGORITMA
Logika Logika dan Algoritma Algoritma menjelaskan menjelaskan tentang tentang konsep dasar serta paradigma paradigma dalam pemrograman implementasi data,penyusunan flowchart dan psude code serta problem solving. KALIMAT ARITMATIKA
() ,!s"r #, $ %,& ' od Pembanding : = = = Operator :
= tanda kurung = pangkat,akar = kali ,bagi = tambah,kurang = sisa bagi = sama dengan = tidak sama dengan = lebih besar = lebih besar sama dengan = lebih kecil = lebih kecil sama dengan
*ontoh + ubah kalimat Aritmatika Aritmatika berikut ini ke dalam Aritmatka komputer. a = /y/ % 010 /. r = X / Y / 0. a =
b /ab 2ac /a
3awab + . a = /#4/ % 0#10 /. r = s"r(1/ % y/) 0. a = &b#s"r(/#a#b&2#a#c)$/#a 5roblem solving adalah pemecahan masalah.5sude code adalah menjelaskan masalah dengan kata&kata. *ontoh psude code+ menjumlahkan dua buah bilangan *aranya + am ambil bil bi bilangan pe pertama ama,ambi ambill bi bilangan ked kedu ua ke kemudian ju jumlahkan kedua bilangan tersebut lalu tuliskan hasilnya. 5rogra 5rogram m adalah adalah + kata&k kata&kata ata,ek ,ekspr spresi esi,per ,pernyat nyataan aan atau atau kom kombin binasi asi&ko &kombi mbinas nasiny inyaa yang disusun dan dirancang menjadi satu kesatuan yang berurutan sebagai langka langkah h untuk untuk menyel menyelesa esaika ikan n masala masalah h yang diimpl diimpleme ementa ntasik sikan an deng dengan an meng menggu guna naka kan n baha bahasa sa pemr pemrog ogra rama man n sehi sehing ngga ga dapa dapatt dieksekusi oleh komputer. komputer.
FLOWCHART
6lowch 6lowchart art adalah adalah gambar gambaran an dalam dalam bentuk bentuk diagra diagram m alir alir dari dari progra program&r m&rogr ogram am dalam suatu program yang menyatakan arah alur program tersebut. 7erikut ini adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart.+ Simbol
Nama
Fungsi
Terminator
5ermulaan$akhir program
Garis AlirFlo! line"
Arah aliran program
#re$aration
5roses inisialisasi pemberian harga awal
#roses
5roses penghitungan atau proses pengolahan data
input$output In$ut%Out$ut 5roses parameter,informasi parameter,informasi &ata #re&e'ine& $ro(essSub $rogram &e(ision"
atau
data
5ermulaan 5ermulaan sub program$pr program$proses oses menjalankan sub program
5erbandingan,pernyataan,penye& leksi leksian an data data yang yang member memberika ikan n De(ision pilihan untuk langkah selanjutnya 5eng 5enghu hubu bung ng bagi bagian an&b &bag agiian On #age flowchart yang berada pada satu halaman Cone(tor 5eng 5enghu hubu bung ng bagi bagian an&b &bag agiian flowch char artt yagn yagn bera berada da pada pada O'' #age flow halaman yang berbeda Cone(tor
*ontoh+
. 6lowchart untuk mencari luas segitiga !tart
Alas,tinggi,lua s 8nput alas 8nput tinggi Luas=a#t$/
5rint luas
!top
/. 6lowchart untuk menjumlahkan dua buah bilangan
!tart
7il.,7il./,9asil
8nput 7il. 8nput 7il./
9asil=7il.%7il./
5rint 9asil
!top 0.
6lochart untuk menentukan bilangan ganjil dan genap !tart
7il,!isa
8nput 7il.
7il mod /
!isa= ;
4a 5rint genap
:idak 5rint ganjil
D)CISION%KONDISI
!top
Kondisi tunggal +
5roses
4a
Aksi
!yara t :idak Aksi /
i
Kondisi majemuk +
5roses
!yarat <
4a
Aksi
:idak !yarat /< :idak Aksi
i
4a
Aksi /
*ontoh + 6lowchart untuk mencari nilai huruf dengan ketentuan sebagai berikut+ data yng diinputkan nama(),matakuliah('>),nilai angka(A)(;&;;). >etentuan proses + ilai 9uruf(9) ilai Angka(A) A B&;; 7 C;&2 * D;&DE ? B;&BE @ ;&2E
!tart
,'>,A,9
8nput ,'>,A
A=B dan A=;;
A=C; dan A=2
9=A
9=7
/
/
A=D; dan A=DE
9=*
A=; dan A=2E
9=?
9=@
i
5rint 9
!top
#)NG*LANGAN%LOO#ING
5engulangan merupakan suatu proses yang dilakukan berulang kali.5engulangan pada flowchart dapat dibentuk menggungkan+ ?ecision$>ondisi 86 6or e1t Fhile Fhen ?o Fhile Loop D)CISON *ontoh + 6lowchart untuk menampilkan bilangan ganjil dari &; menggunakan konsep perulangan. !tart
8,!isa
8=;
8 = 8%
4a !top
8 ;
:idak !isa =8 mod /
4a !isa = ;
:idak 5rint 8
FOR N)+T
5erintah 6or e1t merupakan bentuk perulangan terstrukttur .7anyaknya perulangan tergantung dari variabel contohnya. For Next dalam bentuk Flowchart:
6or i = awal :o akhir,ilai
5ernyataan
i i awal akhir nilai pernyataan
= merupakan variabel = merupakan nilai awal atau batas bawah untuk nilai i = merupakan nilai akhir atau batas akhir untuk nilai i = berfungsi untuk menambah$menaikkan nilai i setiap proses perulangan = merupakan kumpulan perintah yang akan dikerjakan secara berulang
*ontoh + . 6lowchart untuk menampilkan bilangan s$d ; beserta jumlahnya !tart
8,3umlah
3umlah=;
6or i=:o;,i
3umlah=jumlah%i
5rint i
i
5rint jumlah
!top
/. 6lowchart untuk menghitung harga 77' 7ensin p 2B;;$liter, !olar p 20;;$liter,5etrama1 p C;;;$liter.9itung sampai ; liter9asil+ Liter / ... ... ;
7ensin 2.B;; E.;;; ... ... 2B.;;;
6lowchartnya seperti berikut di bawah.
!olar 2.0;; .D;; ... ... 20.;;;
5etrama1 C.;;; 2.;;; ... ... C;.;;;
!tart
8,97,9!,95
5rint G G 5rintG GLiterG G 7esinG G !olar G G5etrama1 G G 5rint G
G
6or i = :o;,
97 = i # 2.B;; 9! = i # 2.0;; 95 = i # C.;;;
5rint G G i G G 97 G G9! G G95 G G
i
5rint G
G
!top
FOR N)+T ,)RSARANG
?i dalam sebuah perintah 6or e1t dapat memungkinkan adanya perintah 6or e1t.>eadaan ini disebut For Next Bersarang Nesteed !oop"# !yarat + . 9arus gunakan variabel yang berbeda / . tidak boleh saling berpotongan $ontoh salah +
$ontoh benar + 6or i = :o ; 6or j = :o ; 5rint i e1t j e1t i
6or i = :o ; 6or j = :o ; 5rint i,j e1t i e1t j
*ontoh + . 6lowchart untuk perkalian s$d ; dengan pengali s$d B !tart
3,>,9asil
6or 3 = to ;
6or > = :o B
9asil = 3 # >
5rint 3 G#G > G=G 9asil
>
5rint
3
/. 6lowchart untuk menampilkan a. / / 0 / 0 2 / 0 2 B
b.
/ / / /
0 0 0
a.
6or i = :o B 6or j = :o i 5rint j e1t j 5rint(untuk pindah baris) 5rint i
b.
6or i = :o B 6or j = :o D& 5rint j e1t j 5rint(untuk pindah baris) e1t i
2 2
B
WHIL) WH)N
5erintah Fhile Fhen berfungsi sama seperti 6or e1t yaitu melakukan perulangan.5erbedaannya adalah 6or e1t melakukan proses perulangan secara pasti jumlahnya.!edangkan Fhile Fhen melakukan proses perulangan tidak pasti tergantung dari kondisi atau syarat yang dibuat. 7entuk Hmum+ >eterangan+ Fhile syarat !yarat merupakan kunci banyaknya perulangan (pernyataan) pernyataan$merupakan sekumpulan perintah. Fhen 7entuk 6lowchart Fhile Fhen+ Fhile syarat
pernyataan
Fhen
DO------LOO#
5erintah ?o...Loop sama seperti Fhile Fhen akan melakukan proses perulangan dengan jumlah perulangan yang tidak pasti. *ontoh + 'encetak bilangan s$d B For Ne.t 6or i = :o B 3umlah=jmlh%i 5rint i e1t i 5rint jumlah
W/ile W/en i=; Fhile iB i&i % 3umlah=jmlh% 5rint i Fhen 5rint jumlah
Do Loo$ *ntil
i=; ?o i=i% 3umlah=jumlah% 5rint i Loop Hntil i=B 5rint jumlah
Do W/ile Loo$ i=; ?o Fhile iB i=i% 3umlah=jmlh% 5rint i Loop 5rint jumlah
Do *ntil Loo$
i=; ?o Fhile i=B i=i% 3umlah=jumlah%i 5rint i Loop 5rint jumlah
*ontoh + 6lowchart$progaram untuk input bilangan dari keyboard dimana bilangan yang diinput terus&menerus sampai yang diinput bilangan ;. 5rogramnya +
7il = ; i=; ?o i=i% 5rint Ginput bilangan keG,i 8nput bilangan 3umlah = jumlah % bil Loop until bil = ; 5rint jumlah
6lowchartnya + !tart
i , bil , jumlah
i=; bil = ;
?o
i=i%
5rint Ginput bil keGi 8nput bil
3umlah = jumlah % bil
Loop until bil = ;
5rint jumlah
!top
*ontoh / + 5rogram dengan tampilan sbb+ 5rogram menghitung waktu 3arak yang akan di tempuh >ecepatan Lama perjalanan 'asih Ada Faktu (y$t)
+ (input) + (input) + (proses) + (input)
5rogramnya + *ls 5rint G5rogram 'enghitung FaktuG 5rint G G s=; v=; t=; 'A? I GyG ?o 8nput Gjarak yang akan di tempuhGs 8nput GkecepatanGv t = s$v 5rint Glama perjalananGt 5rint 8nput G'asih Ada ?ata (y$t)G='A? I Loop until 'A? I = GtG
ARRA0
Array sering disebut juga dengan istilah variabel majemuk,matriks,tapi sitilah ini maksudnya untuk melakukan pendefenisian variabel yang dapat diisi lebih dari nilai tergantung kebutuhan. *ara penefenisian +
*ontoh +
?im Jariabel(jumlah data)
?imention
?im A(B) Artinya %ariabel & dapat diisi nilai seban'ak (
*ontoh dalam program + ?im A(B) 6or i = :o B 8nput Gilai AG A(i) e1t i
*ontoh dalam 6lowchart + !tart
?im A(B)
6or i = :oB
8nput Gilai AG A(i)
i
!top
*ontoh soal ()
0 A= / .
2 7= B 0
?im A (0)
0 2 C * = /B = C . 0 2
*=A%7
?im 7(0)
?im * (0)
5rogramnya + ?im A(0),7(0),*(0) *ls 6or i = :o 0 5rint G8nput ilai A yang keG i 8nput A(i) e1t i 6or i = :o 0 5rint G8nput ilai 7 yang keG i 8nput 7(i) e1t i 6or i = :o 0 *(i) = A(i) % 7(i) 5rint i e1t i
*ontoh soal (/) /
A=
B
0
2
0
7=
?im A(/,/)
D
B
2
7 (/,/)
*=A%7
/ 0 *= B D
0 B
B
= 2 2 ..
A
?im * (/,/)
A
?im
5rogramnya + ?im A(/,/) , 7(/,/) , *(/,/) *ls 6or i = :o / 6or j = :o / 5rint G8nput ilai A yang keGi,j 8nput A(i,j) e1t j e1t i 6or i = :o / 6or j = :o / 5rint G8nput ilai 7 yang keGi,j 8nput 7(i,j) e1t j e1t i 6or i = :o / 6or j = :o / *(i,j) = A(i,j) % 7(i,j) 5rint *(i,j) e1t j e1t i
#)RKALIAN MATRIKS
Kperasi perkalian matriks hanya bisa dihasilkan bila jumlah kolom matriks pertama sama dengan jumlah baris matriks ke dua. . 0 0 A B B E *ontoh + A = A=(/,0) 7 = 7=(0,/) D 2 C 0 2 * = A#7
&.,. * = A &.,/
*
&.,0
&.,/ &/, /
#
&/,0
B.,. B.,/ 7 B /,. B /,/ B0,. B 0,/
&.,. # B.,. &.,/ # B /,. &.,0 # B0,. &/,. # B.,. &/, / # B /,. &/,0 # B0,.
=
&.,. # B.,/ &.,/ # B /,/ &.,0 # B0,/
&/,. # B.,/ &/,/ # B /,/ &/,0 # B0,/ BA
*=
2C
.;.
A/
*(/,/)
5rogramnya + ?im A(/,0) , 7(0,/) , *(/,/) *ls 6or i = :o / 6or j = :o 0 5rint G8nput matrik A yang keGi,j 8nput A(i,j) e1t j e1t i 6or i = :o 0 6or j = :o / 5rint G8nput matrik 7 yang keGi,j 8nput 7(i,j) e1t j e1t i 6or i = :o / 6or j = to / 6or k = to 0 *(i,j) = (i,j) % A(i,k) # 7(k,j) e1t k e1t j e1t i 6or i = to / 6or j = :o / 5rint *(i,j) e1t j e1t i
SORTIR M)NG*R*T DATA"
!ecara garis besar proses pengurutan (sortir) data dibagi dalam dua kategori+ . Ascending yaitu + proses pengurutan data dari yang kecil ke yang besar /. ?escending yaitu + proses pengurutan data dari yang besar ke yang kecil ?ata yang disortir dapat berupa data numerik (angka) dan karakter (huruf). *ontoh +
5rogram pengurutan Ascending + 5roses pengurutan data ?im A(;;) *ls 8nput Gbanyak data(ma1 ;;)+G, 6or i = :o 5rint G'asukkan data yang keGi 8nput A(i) e1t i 5rint G?ata sebelum diurutkan +G 6or i = :o 5rint A(i) e1t i G5roses pengurutan(sortir)G 6or i = :o & 6or j = :o & 8f A(j) A(j%) 7antu = A(j) A(3) = A(j%) A(j%) = 7antu @nd 8f e1t j e1t i 5rint
5rint G?ata setelah diurutkan+G 6or i = :o 5rint A(i) e1t i Hntuk mengurutkan data numerik dari angka yang lebih kecil ke angka yang lebih besar gunakan tanda GG,dari angka yang lebih besar ke angka yang lebih kecil gunakan tanda GG.Hntuk mengurutkan data jenis karakter (angka) gunakan tanda Gstring (I)G setelah huruf A dan kata 7antu.