Selasa, 03 November 2015

ALGORITMA DAN STRUKTUR DATA

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


·         Contoh: C++, Object Pascal, dan Java.

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).


Algoritma

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




Langkah-langkah dalam pemrograman komputer

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:
  1. Bagan alir sistem (systems flowchart).
  2. Bagan alir dokumen (document flowchart).
  3. Bagan alir skematik (schematic flowchart).
  4. Bagan alir program (program flowchart).
  5. 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

Pengertian Flowchart dan Contoh SimbolnyaSymbol Off-line Connector ( Simbol untuk keluar/masuk prosedure atau proses dalam lembar/halaman yang lain)
Pengertian Flowchart dan Contoh SimbolnyaSymbol Connector (Simbol untuk keluar/masuk prosedur atau proses dalam   lembar/halaman yang sama)



♦ Processing symbols ♦

Menunjukkan jenis operasi pengolahan dalam suatu prosedur

Pengertian Flowchart dan Contoh SimbolnyaSymbol Process (Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer)
Pengertian Flowchart dan Contoh SimbolnyaSymbol Manual Operation (Simbol yang menunjukkan pengolahan yang  tidak dilakukanoleh komputer)
Pengertian Flowchart dan Contoh SimbolnyaSymbol Decision (Simbol untuk kondisi yang akan menghasilkan beberapa   kemungkinan jawaban/aksi)
Pengertian Flowchart dan Contoh SimbolnyaSymbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage)
Pengertian Flowchart dan Contoh SimbolnyaSymbol Terminal (Simbol untuk permulaan atau akhir dari suatu program)-
Pengertian Flowchart dan Contoh SimbolnyaSymbol Off-line Storage (Simbol yang menunjukkan bahwa data di dalam symbol ini akan disimpan)
-
Pengertian Flowchart dan Contoh SimbolnyaSymbol Manual Input (Simbol untuk pemasukan data secara manual on-line keyboard)
Pengertian Flowchart dan Contoh SimbolnyaSymbol Keying Operation (Simbol operasi dengan menggunakan mesin yang mempunyai keyboard)



♦ Input-output symbols ♦

menyatakan jenis peralatan yang digunakan sebagai media input atau output.

Pengertian Flowchart dan Contoh SimbolnyaSymbol input-output (Symbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya)
Pengertian Flowchart dan Contoh SimbolnyaSymbol magnetic-tape unit (Symbol yang menyatakan input berasal pita magnetic atau output disimpan ke pita magnetic)
-Pengertian Flowchart dan Contoh SimbolnyaSymbol punched card (Symbol yang menyatakan input berasal dari kartu atau output ditulis ke kartu)-
Pengertian Flowchart dan Contoh SimbolnyaSymbol disk and on-line storage (Symbol untuk menyatakan input berasal dari disk atau output disimpan ke disk)
Pengertian Flowchart dan Contoh SimbolnyaSymbol display (Symbol yang menyatakan peralatan output yang digunakan yaitu layar, plotter, printer, dan sebagainya)
Pengertian Flowchart dan Contoh SimbolnyaSymbol dokumen (symbol yang menyatakan input berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas)

Pedoman Membuat Flowchart

Bila seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti:
  1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri kekanan.
  2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
  3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
  4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja
  5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
  6. 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.
  7. Gunakan simbol-simbol flowchart yang standar.

Contoh-contoh Flowchart


Contoh Flowchart Program


Pengertian Flowchart dan Contoh Simbolnya
Contoh Flowchart Program – Menentukan Bilangan Ganjil/Genap

Pengertian Flowchart dan Contoh Simbolnya
Penggunaan predefined processes dapat digunakan untuk menyederhanakan flowchart system yang complex
Flowchar Sistem untu predefined process yang diberi nama Check shipment untuk Flowchart diatas
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

Ads Inside Post