Algoritma dan Struktur Data
Tujuan mata kuliah Algoritma dan Struktur Data :
Mahasiswa mampu memahami logika berpikir komputer, memahami prinsip kerja program, memahami alasan-alasan komputer dapat mengerjakan perintah-perintah yang diberikan, dan mampu menggambarkan logika jalannya program secara tertulis dengan algoritma (pseudo code) dan dilengkapi dengan diagram alir (flow chart) .
PERKENALAN !
1. Pengantar Algoritma dan Pemrograman
– Apa itu algoritma
– Kegunaan dan contoh
– Apa yang akan dipelajari selama kuliah
2. Flowchart dan Bahasa Pemrograman
– Flowchart
– Bahasa Pemrograman 3 GL dan Contohnya
– Mengenal C++ dan C#
3. Tipe Data, Keyword, Operator dan Kondisi (Percabangan)
– Tipe Data dan keyword
– Operator dan Derajatnya
– IF tunggal, bertingkat
– Multiple Conditions
– Switch Case
– Contoh-contoh dan latihan!
4. Perulangan (looping)
– For, While, DoWhile
– Break dan Continue
– Nested Loop
– Contoh kasus dan latihan!
5. Array 1 : Array 1 dimensi dan operasinya
– Definisi dan deklarasi
– Kegunaan, sifat-sifat Array 1 dimensi
– Contoh-contoh : add, search, edit, delete
6. Array 2 dimensi dan Manipulasi String
– Apa itu String
– Berbagai hal menarik tentang String
7. Prosedur dan Fungsi
– Procedure (void)
– Function (non-void)
– Parameter: formal dan aktual
– Latihan
8. ADT (Abstract Data Type) dan Stack dengan Array
– Definisi dan Deklarasi
– Kegunaan, sifat-sifat
– Contoh-contoh
– Stack dan kegunaanya
9. Struktur Data Antrian dengan Array
– Pengertian Antrian dan sifatnya
– Deklarasi
– Contoh penggunaan
10. Sorting dan Searching Array
– Bubble Sort
– Selection Sort
– Insertion Sort
– Quick Sort
– Searching sekuensial
11. Function by Reference
– Pengertian dan sifat-sifat
STRUKTUR DATA
Struktur data a/ Cara penyimpanan, Penyusunan & Pengaturan data didalam media penyimpanan komputer jadi dapat digunakaan secara Efisien.
2 aktivitas terhadap Objek data :
a. Mendeskripsikan kumpulan operasi sah yang diterapkan ke elemen-elemen objek data.
b. Menunjukan mekanisme kerja Operasi2
Tahap Pembuatan struktur data :
Tahap Pertama : Spesifikasi (Pendeskripsian) : apa yg dapat dilakukan struktur data yg melibatkan Logika -Spesi3ikasi dapat dilakukan dgn 2 cara, Formal & Informal.
Tahap Kedua : Implementasi : Menyatakan Penerapan struktur data yg telah ada. Implementasi berisi DEKLARASI struktur item2 data juga algoritma2 u/ Implementasi Operasi2 sehingga terjamin terpenuhinya Karakter Struktur data.
Tahap ketiga : Pemrograman : Pemrograman struktur data a/ Penerjemah menjadi pernyataan dibahasa Pemrograman.
Ciri-Ciri Algoritma :
a. Input (Masukan yg diberikan secara internal)
b. Output (Keluaran / Tampilan yg dihasilkan)
c. Definite (Menyatakan apa yg dilakukan)
d. Effective (Instruksi yg dilakukan secara Manual, dgn jumlah waktu yg berhingga)
e. Terminate (Berhenti setelah sejumlah Operasi)
LINKED LIST
-jujur Materi ini gak begitu ngerti-
Linked list a/ Struktur rangkaian elemen2 yg terkait melalui pointer
istilah :
Pointer : alamat Elemen
simpul : masing2 komponen
a. Bagian data / Medan informasi (Yang berisi informasi yg akan disimpan & diolah)
b. Link Field / Bagian Pointer / Medan penyambung (Menujuk kesimpul selanjutnya)
Simpul Dabu (Simpul Baru slalu diletakan sbg simpul pertama & simpul baru menyisip diatara ke-2 simpul yg sudah ada)
STACK
Stack a/ Kasus khusus Ordered List dgn penyimpanan & penghapusan disalah satu ujungnya, Stack lainnya disebut Pushdown List.
Stack memiliki sifat LIFO (Last In First Out).
Operasi dasar Stack :
a. Operasi Menciptakan S Sebagai Stack Koson (initS (S))
b. Operasi Menyisipkan elemen X ke stack S & mengembalikan Stack baru (Push (S,X))
c. Operasi Menghilangkan elemen puncak stack s, (Pop (s,x))
d. Operasi mengirim elemen puncak stack S, (topS (S,X))
e. Operasi Mengirim true jika S kosong, jika tidak kosong mengirim False (isEmptyS (S))
f. Operasi Mengirim jumlah elemen stack S (how manyInS (S))
Pengunaan Stack :
1. Simulasi Tumpukan didunia nyata (tumpukan Buku, Baju, Sate dll)
2. Pemanggilan Fungsi.
3. Implementasi Fungsi.
4. Penanganan Interupsi.
5. Evaluasi Ekspresi.
6. Konversi Infiks ke postfiks
7. Konvers Basis 10 kebasis 2.
NAH ! SEKARANG KITA BAHAS SATU PERSATU
1. PENGANTAR ALGORITMA PEMROGRAMAN
Definisi
Program/Pemrograman
-
Adalah kumpulan instruksi-instruksi
tersendiri yang biasanya disebut source code yang dibuat oleh programmer
(pembuat program)
Paradigma Pemrograman
1.
Pemrograman
Prosedural
·
Berdasarkan
urutan-urutan, sekuensial
·
Program adalah suatu rangkaian prosedur untuk
memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara
berurutan.
·
Harus mengingat prosedur mana yang sudah
dipanggil dan apa yang sudah diubah.
2.
Pemrograman
Fungsional
·
Berdasarkan
teori fungsi matematika
·
Fungsi
merupakan dasar utama program.
3.
Pemrograman
Terstruktur
·
Secara
berurutan dan terstrukrtur.
·
Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
·
Contoh:
PASCAL dan C
4.
Pemrograman
Modular
·
Pemrograman
ini membentuk banyak modul.
·
Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
·
Sebuah
program dapat merupakan kumpulan modul-modul.
·
Contoh:
MODULA-2 atau ADA
5.
Pemrograman
Berorientasi Obyek
·
Pemrograman berdasarkan prinsip obyek, dimana
obyek memiliki data/variabel/property dan method/event/prosedur yang dapat
dimanipulasi
6.
Pemrograman
Berorientasi Fungsi
·
Pemrograman ini berfokus pada suatu fungsi
tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.
·
Contoh:
SQL (Structured Query Language), HTML, XML dan lain-lain.
7.
Pemrograman
Deklaratif
·
Pemrograman ini mendeskripsikan suatu masalah
dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.
·
Contoh:
PROLOG
Struktur Sistem
Komputer

Komputer Hardware

Sistem Operasi
|
||
Software
|
||
Bhs. Pemrograman
|
||
Progam Aplikasi
|
||

Pemakai Brainware
Siklus Hidup
Perangkat Lunak (Software)




Requirement
Desain
Implementasi
Testing



Dilihat
dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman dan
Struktur Data menempati posisi dibagian software dan di bagian implementasi
karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses
coding (pembuatan program).
Asal
kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi,
ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration
and reduction) sekitar tahun 825 M
Definisi Algoritma
-
Algoritma
adalah urutan langkah logis tertentu untuk memecahkan suatu masalah.
Yang ditekankan adalah 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.
Yang ditekankan pertama adalah alur pikiran,
sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain.
Sedangkan penekanan kedua adalah 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)
Contoh Algoritma
dalam kehidupan nyata:
-
Jika seorang ingin memasak atau membuat kue,
baik itu melihat resep ataupun tidak pasti akan melakukan suatu langkah-langkah
tertentu sehingga masakannya atau kuenya 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.
Dalam
bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai
masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang
dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat
dan tidak efisien.
Pelaksana algoritma
adalah Komputer.
Manusia
dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah
kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang
digunakan untuk membuat
program tersebut adalah
bahasa pemrograman.
Bahasa
pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP,
ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa
pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan
menghasilkan output yang sama.
Kriteria Algoritma
Menurut Donald E. Knuth
1.
Input:
algoritma dapat memiliki nol atau lebih inputan dari luar.
2.
Output:
algoritma harus memiliki minimal satu buah output keluaran.
3.
Definiteness (pasti): algoritma memiliki instruksi-instruksi
yang jelas dan tidak ambigu.
4.
Finiteness (ada batas): algoritma harus memiliki titik
berhenti (stopping role).
5.
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
Namun ada beberapa program yang memang dirancang untuk
unterminatable: contoh Sistem Operasi
Jenis Proses
Algoritma
1.
Sequence
Process: instruksi dikerjakan secara sekuensial, berurutan.
2.
Selection
Process: instruksi dikerjakan jika memenuhi kriteria tertentu
3.
Iteration
Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
4.
Concurrent
Process: beberapa instruksi dikerjakan secara bersama.
Contoh Algoritma
Algoritma menghitung
luas persegi panjang:
1. Masukkan panjang (P)
2. Masukkan lebar (L)
3. L ← P * L
4. Tulis L
Dalam Algoritma, tidak
dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu,
melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman
apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa
pemrograman manapun.
Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau
merupakan pejelasan cara menyelesaikan suatu masalah. Pseudo-code sering
digunakan oleh manusia untuk menuliskan algoritma.
Problem: mencari bilangan terbesar dari dua
bilangan yang diinputkan
Contoh Pseudo-code:
1.
Masukkan
bilangan pertama
2.
Masukkan
bilangan kedua
3.
Jika bilangan pertama > bilangan kedua
maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
4.
Tampilkan
bilangan pertama
5.
Tampilkan
bilangan kedua
Contoh Algoritma
1.
Masukkan
bilangan pertama (a)
2.
Masukkan
bilangan kedua (b)
3.
if
a > b then kerjakan langkah 4
4.
print
a
5.
print
b
Contoh Lain Algortima dan Pseudo-code:


Pseudo-code
|
Algoritma
|
Nilai A ditambah dengan 5
|
A ← A + 5
|
Cetak nilai A bila lebih besar dari
10
|
IF A > 10 THEN PRINT A
|
Dari
dua bilangan A
dan B, cari
|
IF A > B THEN PRINT A ELSE PRINT
|
bilangan yang terbesar
|
B
|
1.
Mendefinisikan
masalah
Ini merupakan langkah pertama yang sering
dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard):
“Semakin
cepat menulis program, akan semakin lama kita dapat menyelesaikannya”. Hal
tersebut berlaku untuk permasalahan yang kompleks. Tentukan masalahnya, apa
saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan serta
outputnya.
2.
Menemukan
solusi
Setelah masalah didefinisikan, maka langkah
berikutnya adalah menentukan solusi. Jika masalah terlalu kompleks, maka ada
baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah
diselesaikan.
Contohnya masalah invers matriks, maka kita
dapat membagi menjadi beberapa modul:
·
meminta
masukkan berupa matriks bujur sangkar
·
mencari
invers matriks
·
menampilkan
hasil kepada pengguna
Dengan
penggunaan modul tersebut program utama akan menjadi lebih singkat dan mudah
dilihat.
3.
Memilih
algoritma
Pilihlah
algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut
4.
Menulis
program
Pilihlah bahasa yang mudah dipelajari, mudah
digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat
kompatibilitas tinggi dengan perangkat keras dan platform lainnya.
5.
Menguji
program
Setelah program jadi, silahkan uji program
tersebut dengan segala macam kemungkinan yang ada, termasuk error-handlingnya
sehingga program tersebut akan benar-benar handal dan layak digunakan.
6.
Menulis
dokumentasi
Menulis dokumentasi sangat penting agar pada
suatu saat jika kita akan melakukan perubahan atau membaca source code yang
sudah kita tulis dapat kita ingat-ingat lagi dan kita akan mudah membacanya.
Caranya adalah dengan menuliskan komentar-
komentar kecil tentang apa
maksud kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa,
dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7.
Merawat
program
Program yang sudah jadi perlu dirawat untuk
mencegah munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga
pengguna membutuhkan fasilitas baru yang dulu tidak ada.
SOAL ALGORITMA
1.
Buatlah algoritma untuk menghitung konversi
suhu.dari Celcius menjadi Reamur dan Farenheit.
Input:
suhu dalam Celcius
Proses:
R = 4/5 * C dan F = 9/5 * C + 32 Output: suhu dalam Reamur dan Farenheit
2.
Buatlah algoritma untuk mencari sisi miring
dari suatu segitiga siku-siku, jika diketahui panjang sisi yang membentuk sudut
siku-siku.
Input:
a dan b, yaitu panjang sisi pembentuk sudut siku-siku
Proses:
c =
a2 +b2

Ouput:
sisi miring (c)
3. Buatlah
algoritma untuk menentukan suatu bilangan genap atau ganjil Input: suatu
bilangan
Ouput:
genap / ganjil
4.
Buatlah algoritma untuk menentukan suatu
bilangan adalah bilangan prima atau bukan.
5.
Buatlah
algoritma untuk untuk menghitung akar-akar persamaan kuadrat dengan
rumus
D = B2 – 4 * A * C
Jika
D < 0 maka didapat akar imajiner
Jika
D = 0 maka X1 = X2 yang didapat dari D = -B / (2 * A)



Jika D > 0 maka ada dua akar X1 = −B +
D /
2 * A dan X 2 = −B −
D /
2 * A


Pengertian dan Definisi Flowchart
Flowchart atau Bagan alir adalah bagan (chart) yang menunjukkan alir (flow)
di dalam program atau prosedur sistem secara logika. Bagan alir (flowchart)
digunakan terutama untuk alat bantu komunikasi dan untuk dokumentasi.
Jenis jenis Flowchart
Ada beberapa jenis flowchart diantaranya:
- Bagan alir sistem (systems flowchart).
- Bagan alir dokumen (document flowchart).
- Bagan alir skematik (schematic flowchart).
- Bagan alir program (program flowchart).
- Bagan alir proses (process flowchart).
System Flowchart
System flowchart dapat didefinisikan sebagai bagan yang menunjukkan
arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan
urut-urutan dari prosedur-prosedur yang ada di dalam sistem. Bagan alir
sistem menunjukkan apa yang dikerjakan di sistem.
Document Flowchart
Bagan alir dokumen (document flowchart) atau disebut juga bagan alir formulir (form flowchart) atau paperwork flowchart merupakan bagan alir yang menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya.
Schematic Flowchart
Bagan alir skematik (schematic flowchart)
merupakan bagan alir yang mirip dengan bagan alir sistem, yaitu untuk
menggambarkan prosedur di dalam sistem. Perbedaannya adalah, bagan alir
skematik selain menggunakan simbol-simbol bagan alir sistem, juga
menggunakan gambar-gambar komputer dan peralatan lainnya yang
digunakan. Maksud penggunaan gambar-gambar ini adalah untuk memudahkan
komunikasi kepada orang yang kurang paham dengan simbol-simbol bagan
alir. Penggunaan gambar-gambar ini memudahkan untuk dipahami, tetapi
sulit dan lama menggambarnya.
Program Flowchart
Bagan alir program (program flowchart) merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program. Bagan alir program dibuat dari derivikasi bagan alir sistem.Bagan alir program dapat terdiri dari dua macam, yaitu bagan alir logika program (program logic flowchart) dan bagan alir program komputer terinci (detailed computer program flowchart). Bagan alir logika program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika. Bagan alat- logika program ini dipersiapkan oleh analis sistem. Gambar berikut menunjukkan bagan alir logika program. Bagan alir program komputer terinci (detailed computer program flow-chart) digunakan untuk menggambarkan instruksi-instruksi program komputer secara terinci. Bagan alir ini dipersiapkan oleh pemrogram.
Process Flowchart
Bagan alir proses (process flowchart) merupakan bagan alir yang banyak digunakan di teknik industri. Bagan alir ini juga berguna bagi analis sistem untuk menggambarkan proses dalam suatu prosedur.Simbol dan Notasi Flowchart
Dipakai sebagai alat Bantu menggambarkan proses di dalam program. Dan dibagi menjadi tiga kelompok :♦ Flow Direction Symbols ♦
dipakai untuk menggabungkan antara symbol yang satu dengan symbol lainnya

♦ Processing symbols ♦
Menunjukkan jenis operasi pengolahan dalam suatu prosedur






-


♦ Input-output symbols ♦
menyatakan jenis peralatan yang digunakan sebagai media input atau output.


-




Pedoman Membuat Flowchart
Bila seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti:- Flowchart digambarkan dari halaman atas ke bawah dan dari kiri kekanan.
- Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
- Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
- Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja
- Setiap langkah dari aktivitas harus berada pada urutan yang benar.
- Lingkup dan range dari aktifitas yang sedang digambarkan harusditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
- Gunakan simbol-simbol flowchart yang standar.
Contoh-contoh Flowchart
Contoh Flowchart Program

Contoh Flowchart Program – Menentukan Bilangan Ganjil/Genap

Penggunaan predefined processes dapat digunakan untuk menyederhanakan flowchart system yang complex

Flowchar Sistem untuk predefined process yang diberi nama Check shipment untuk Flowchart diatas
- See more at: http://serilmu.blogspot.co.id/2015/02/pengertian-flowchart-dan-simbol.html#sthash.O2cQeCwU.dpuf
Tidak ada komentar:
Posting Komentar