Download - tehnik pemograman

Transcript
  • PERTEMUAN 1

    KONSEP PERANCANGAN

    PROGRAM

  • POKOK BAHASAN

    1. Pendahuluan

    2. Permasalahan Terkait Perangkat Lunak (Program)

    3. Program dan Faktor Kualitas Program

    4. Software Development Life Cycle

    5. Fakta Dalam Pembangunan Program

    6. Metodologi Perancangan Program

    7. Teknik Pemrograman

    8. Paradigma Bahasa Pemrograman

    9. Kriteria Bahasa Pemrograman

  • DISKUSI

    1. Apa penyebab terjadinya permasalahan

    dalam perangkat lunak (program) yang

    dihasilkan?

    2. Dalam mempelajari bahasa

    pemrograman apa yang pertama kali

    harus dipelajari sehingga dapat

    melakukan pemrograman ?

  • PENDAHULUAN

    Kebutuhan informasi menjadi unsur utama dalam bisnis sehingga mendorong pertumbuhan

    industri software.

    Nilai industri software di Indonesia sampai akhir tahun 2013 antara Rp 3.5 5 Trilyun dengan nilai pertumbuhan 18-20% per tahun (Pratama,

    2013).

    Produk perangkat lunak dikembangkan (developed) atau direkayasa (engineered)

    sesuai dengan kebutuhan pemakai akhir (end

    user).

  • PERMASALAHAN TERKAIT

    PERANGKAT LUNAK (PROGRAM)

  • APA PROGRAM ?

    Kumpulan instruksi / perintah yang

    dirangkaian sehingga membentuk suatu proses untuk mengolah data.

  • FAKTOR KUALITAS PROGRAM

    1. Correctness : besarnya program dapat memuaskan

    spesifikasi dan objektivitas dari misi pelanggan.

    2. Reliability : besarnya program dapat diharapkan

    memenuhi fungsi-fungsi yang dikehendaki.

    3. Efficiency : jumlah sumber-sumber dan kode yang

    dibutuhkan program untuk menjalankan fungsi-

    fungsinya.

    4. Integrity : besarnya pengontrolan pengaksesan oleh

    seorang yang tidak mempunyai otorisasi terhadap

    program dan data.

    5. Usability : usaha yang dibutuhkan untuk mempelajari,

    mengoperasikan, menyiapkan input &

    menginterpretasikan output program .

  • FAKTOR KUALITAS PROGRAM

    (lanjutan) 6. Maintability : usaha yang dibutuhkan untuk

    menempatkan & menetapkan kesalahan pada program.

    7. Flexibility : usaha yang dibutuhkan untuk memodifikasi

    program yang dibutuhkan.

    8. Testability : usaha yang dibutuhkan untuk menguji

    program untuk menjamin program sesuai yang

    diharapkan.

    9. Portability : usaha yang dibutuhkan untuk mnetransfer

    program dari lingkungan ke lingkungan lain.

    10. Reusability : besarnya program dapat digunakan oleh

    aplikasi lain.

  • SOFTWARE DEVELOPMENT

    LIFE CYCLE (SDLC) SDLC adalah serangkaian aktivitas yang dilaksanakan

    oleh profesional dan pemakai sistem informasi untuk

    mengembangkan dan mengimplementasikan software

    (program).

    Aktivitas atau proses standar yang digunakan untuk membangun program, yaitu :

    Analisa kebutuhan (spesifikasi)

    Desain

    Coding

    Pengujian

  • FAKTA DALAM PEMBANGUNAN

    PROGRAM

  • METODOLOGI PERANCANGAN

    PROGRAM

    Prinsip dasar dalam pembangunan program

    berdasarkan input data, proses dan output.

    Beberapa pendekatan perancangan program :

    1. Procedure-Driven

    2. Event-Driven

    3. Data-Driven

  • Procedure-Driven untuk perancangan program berdasarkan pada apa yang akan

    dilakukan program (proses atau fungsi).

    Strateginya adalah dengan memecahkan setiap fungsi menjadi lebih

    kecil dan lebih spesifik.

    Contoh :

    Program untuk persegi panjang dibagi

    menjadi fungsi : hitung keliling dan hitung

    luas persegi panjang

    PROCEDURE-DRIVEN

  • Event-Driven untuk perancangan program berdasarkan pada kejadian atau interaksi dari luar

    dapat menyebabkan perubahan dari satu kondisi ke

    kondisi lain.

    Keadaan awal dari sebuah program mengidentifikasikan seluruh pemicu yang mewakili

    kejadian untuk kondisi yang akan dihasilkan.

    Contoh : apabila tombol mulai pada program stopwatch di klik maka program akan menghitung

    waktu yang berjalan sampai tombol stop di klik.

    EVENT-DRIVEN

  • Data-Driven untuk perancangan program berdasarkan struktur data.

    Dimulai dengan analisis data dan hubungan antara data, untuk menentukan

    struktur data dasar. Setelah struktur data

    telah ditetapkan, output data yang

    diperlukan diperiksa dalam rangka

    menentukan proses apa yang diperlukan

    untuk mengkonversi data input ke output.

    DATA-DRIVEN

  • Untuk membuat program menghitung bonus karyawan. Besar bonus masing-masing karyawan tergantung gaji pokok dan jenis

    tanggung-jawabnya.

    Data Input : Data Profil Karyawan (seperti : nik, nama, jabatan, gaji pokok)

    Data Output : Bonus karyawan

    Proses :

    Ambil tanggung_jawab dari profil_karyawan

    If tanggung_jawab = Sales manager Then bonus = gaji_pokok * 0.10

    Else

    If tanggung_jawab = Senior salesman Then bonus = gaji_pokok * 0.08

    Else dan seterusnya

    CONTOH DATA-DRIVEN

  • BELAJAR PEMROGRAMAN ?

    Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan

    memelihara kode yang membangun

    sebuah program komputer.

    Belajar pemrograman adalah belajar tentang metodologi pemecahan masalah

    kemudian menuangkannya dalam suatu

    notasi yang mudah dibaca dan dipahami.

  • TEKNIK PEMROGRAMAN

    Permasalahan bisnis yang semakin kompleks dan rumit sedangkan waktu

    yang diberikan untuk pengembangan

    program semakin cepat.

    Dibutuhkan teknik pemrograman untuk mengembangkan program yang kompleks

    dan rumit dalam waktu yang cepat.

  • TEKNIK PEMROGRAMAN

    (lanjutan)

    1. Pemrograman Tidak Terstruktur

    2. Pemrograman Terstruktur

    3. Pemrograman Prosedural

    4. Pemrograman Modular

    5. Pemrograman Berorientasi Objek

  • 1. PEMROGRAMAN TIDAK

    TERSTRUKTUR

    Pemrograman tidak terstruktur adalah suatu teknik pemrograman dimana penulisan instruksi

    tidak teratur dan sistematis sehingga sulit untuk

    dipahami.

    Contoh : Penggunaan perintah GOTO yang banyak dalam program.

  • 2. PEMROGRAMAN TERSTRUKTUR

    Pemrograman terstruktur adalah suatu teknik pemrograman dimana

    penulisan instruksi secara

    sistematis, logis dan tersusun

    berdasarkan algoritma yang

    sederhana dan mudah dipahami.

    Prinsip pada pemrograman terstruktur jika suatu proses sudah

    sampai pada titik tertentu, maka

    proses selanjutnya tidak bisa

    melakukan proses pada baris

    sebelumnya.

  • 3. PEMROGRAMAN PROSEDURAL

    Pemrograman prosedural adalah suatu teknik pemrograman dimana penulisan instruksi yang sama dibuat dalam sub program tersendiri sehingga pembuatan program lebih cepat dan memudahkan perbaikan apabila terjadi kesalahan.

  • 4. PEMROGRAMAN MODULAR

    Pemrograman modular adalah suatu teknik pemrograman dimana prosedur dari fungsi

    umum dikelompokkan dalam modul-modul dan

    setiap modul menunjukkan fungsi dan tugas

    tunggal.

  • 5. PEMROGRAMAN BERORIENTASI OBJEK

    Pemrograman berbasis obyek (OOP) mendasarkan pada konsep objek dan interaksinya.

    Objek berasal dari tipe data abstrak.

    Objek dapat menerima pesan (message), mengolah data, dan mengirimkan pesan ke object lain membentuk interaksi antar object.

    Objek bersifat independen: tiap object dapat dipandang sebagai sebuah entitas mandiri yang

    memiliki peran atau tanggung jawab tertentu.

  • 5. PEMROGRAMAN BERORIENTASI

    OBJEK (lanjutan)

  • BELAJAR BAHASA

    PEMROGRAMAN ?

    Bahasa pemrograman merupakan suatu himpunan dari aturan sintaks dan semantik yang

    dipakai untuk mendefinisikan program komputer.

    Belajar bahasa pemrograman adalah belajar memakai suatu bahasa pemrograman sesuai

    dengan aturan tata bahasanya.

  • TIGA FAKTOR PENTING DALAM

    BAHASA PEMROGRAMAN

    1. Sintaks

    2. Semantik

    3. Kebenaran Logika

  • SINTAKS

    Sintaks adalah aturan penulisan suatu bahasa

    pemograman (tata bahasanya).

    Contoh :

    #include

    main()

    { pernyataan; }

    Apabila terjadi kesalahan dalam penulisan sintaks

    maka akan terjadi error pada saat kompilasi.

  • SEMANTIK

    Semantik adalah arti atau maksud yang

    terkandung didalam statement tersebut.

    Contoh :

    \n; arti semantiknya baris baru. Printf(); arti semantiknya mencetak string ke

    layar.

    Getch(); arti semantiknya membaca sebuah karakter.

  • KEBENARAN LOGIKA

    Kebenaran logika adalah berhubungan dengan

    benar tidaknya urutan statement.

    Contoh :

    main()

    {int bil=1;

    while(bil

  • JENIS-JENIS BAHASA

    PEMROGRAMAN 1. Bahasa Tingkat Rendah

    Dirancang agar setiap instruksi langsung dikerjakan oleh komputer tanpa translator.

    Contoh : Assembler

    2. Bahasa Tingkat Tinggi

    Bahasa Pemrograman yang dalam penulisan pernyataannya mudah dipahami secara

    langsung.

    Perlu diterjemahkan oleh translator bahasa

    Contoh : Algol, Fortran, Pascal, Visual Basic, Oracle, dll.

  • PARADIGMA BAHASA

    PEMROGRAMAN

  • .

    KRITERIA BAHASA

    PEMROGRAMAN 1. Clarity, simplicity dan unity

    Kemudahan, kesederhanaan dan kesatuan

    merupakan suatu kombinasi yang membantu

    programer mengembangkan suatu algoritma.

    2. Orthogonality

    Merupakan suatu atribut yang dapat

    dikombinasikan dengan beragam fitur bahasa

    pemrograman sehingga setiap kombinasinya

    mempunyai arti dan dapat digunakan.

  • .

    KRITERIA BAHASA

    PEMROGRAMAN (lanjutan) 3. Kewajaran untuk aplikasi

    Bahasa pemrograman harus mempunyai

    struktur data, operasi-operasi, struktur kontrol

    dan sintaks yang tepat untuk memecahkan

    suatu masalah.

    4. Mendukung Abstraksi

    Abstraksi merupakan suatu hal yang

    substansial bagi programer untuk membuat

    suatu solusi dari masalah yang dihadapi.

  • .

    KRITERIA BAHASA

    PEMROGRAMAN (lanjutan) 5. Kemudahan untuk verifikasi program

    Dengan verifikasi data yang mudah, maka suatu program akan dengan mudah dibangun dan dikembangkan.

    6. Lingkungan pemrograman

    Lingkungan pemrograman dapat berarti editor yang digunakan, dokumentasi yang baik, fasilitas debugging, user interface yang baik ataupun tools lain yang dapat digunakan untuk memudahkan pekerjaan programer.

    .

  • .

    KRITERIA BAHASA

    PEMROGRAMAN (lanjutan) 7. Portabilitas program

    Kemudahan program untuk dipakai di berbagai

    jenis komputer.

    8. Biaya penggunaan

    Biaya eksekusi program

    Biaya kompilasi program

    Biaya penciptaan, testing dan penggunaan program

    Biaya pemeliharaan program

  • PERTEMUAN 2

    ALGORITMA &

    PEMROGRAMAN

  • POKOK BAHASAN

    1. Pendahuluan

    2. Tahapan Pembangunan Program

    3. Pengenalan Algoritma

    4. Cara Menyajikan Algoritma

    5. Data Program

    6. Elemen-Elemen Program

  • PENDAHULUAN

    Perancangan program merupakan pengembangan solusi terhadap identifikasi masalah dan menghasilkan

    serangkaian instruksi yang membangun sebuah program

    komputer untuk menghasilkan output.

    Sebuah program harus dirancang secara sistematis dan benar sebelumnya memulai coding. Perancangan

    program dihasilkan dalam pembangunan algoritma.

  • PERANAN ALGORITMA DALAM

    PROGRAM

    ALGORITMA

    BAHASA PEMROGRAMAN

    KOMPUTER

    Kompilasi

    Interpretasi oleh CPU untuk

    Menjalankan operasi pada

    mesin komputer sesuai dengan

    intruksi bahasa pemrograman.

    Program komputer adalah

    perwujudan atau

    implementasi dari algoritma

    yang di tulis dalam bahasa

    pemrograman. Translasi

  • APAKAH ALGORITMA ?

    Algoritma berisi langkah-langkah yang dibutuhkan untuk menyelesaikan sebuah tugas.

    Sebuah algoritma harus: Memiliki masukkan (input) Menghasilkan keluaran (output) Terdefinisi jelas (definiteness) Memiliki kondisi akhir (finiteness) Memberi solusi yang diharapkan (effectiveness) Berlaku untuk setiap himpunan input sesuai dengan

    masalah yang diberikan (generality)

  • CONTOH ALGORITMA

    Program Hitung_Kembali

    {menghitung uang kembali apabila input data tersebut

    diberikan}

    Deklarasi

    long sisa, uang_bayar, total_bayar

    Deskripsi

    Baca total_bayar

    Hitung sisa = uang_bayar - total_bayar

    Cetak sisa

    END

  • CONTOH ALGORITMA YANG

    TIDAK BAIK Program Cetak_Berulang

    {Mencetak kata sebanyak i }

    Deklarasi

    integer i

    Deskripsi

    i = 0

    While (i

  • CARA UNTUK MENYAJIKAN

    ALGORITMA

    1. Pseudocode

    2. Flowchart

  • 1. PSEUDOCODE

    Pseudocode merupakan salah satu cara untuk menuliskan algoritma

    Karakteristik Pseudocode: Statement / Perintah di tulis dalam bahasa Inggris /

    Indonesia sederhana.

    Setiap perintah di tulis dalam baris terpisah

    Keyword digunakan untuk menjelaskan control structure tertentu.

    Setiap set/bagian instruksi memiliki awal dan akhir

    Pengelompokkan statement bisa membentuk satu modul yang mempunyai nama.

  • STRUKTUR PSEUDOCODE

    Algoritma terdiri dari tiga bagian yaitu : Judul (Header) : mendefinisikan nama dengan

    menentukan apakah teks tersebut adalah program,

    prosedur, fungsi.

    Deklarasi : mendefinisikan nama variabel, nama konstanta, nama prosedur, nama fungsi yang akan

    digunakan dalam algoritma.

    Deskripsi : mendefinisikan langkah-langkah penyelesaian masalah mulai dari input, proses dan

    ouput.

    Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap bagian tersebut dituliskan

    diantara tanda kurung kurawal

    Contoh : { Komentar }

  • CONTOH PSEUDOCODE

    Program Luas_Lingkaran

    {menghitung luas sebuah lingkaran apabila jari-jari

    lingkaran tersebut diberikan}

    Deklarasi

    inisialisasi konstanta phi = 3.14

    inisialisasi r, luas_lingkaran

    Deskripsi

    Baca data r

    luas_lingkaran = phi * r * r

    cetak luas_lingkaran

  • 2. FLOWCHART

    Flowchart adalah suatu alat yang menunjukkan langkah-langkah yang harus dilaksanakan

    dalam menyelesaikan suatu permasalahan

    untuk komputasi dengan cara mengekspresikan

    ke dalam serangkaian simbol-simbol grafis.

  • CONTOH FLOWCHART

  • SIMBOL-SIMBOL FLOWCHART

    PROGRAM

    Simbol Keterangan

    TERMINAL

    Digunakan untuk menggunakan awal dan akhir dari suatu

    kegiatan.

    DECISION

    Digunakan untuk menggambarkan proses pengujian suatu

    kondisi yang ada.

    PREPARATION

    Digunakan untuk menggambarkan persiapan harga awal,

    dari proses yang akan dilakukan.

    FLOW LINE

    Digunakan untuk menggambarkan hubungan proses dari

    satu proses ke proses lainnya.

  • SIMBOL-SIMBOL FLOWCHART

    PROGRAM

    Simbol Keterangan

    INPUT/OUTPUT

    Digunakan untuk menggambarkan proses memasukan data

    yang berupa pembacaan data dan sekaligus proses

    keluaran yang berupa pencetakan data.

    SUBROUTINE

    Digunakan untuk menggambarkan proses pemanggilan sub

    program dari main program (recursivitas).

    CONNECTOR

    Digunakan untuk menghubungkan alur proses ke dalam

    satu halaman atau halaman yang sama.

    OFF-PAGE CONNECTOR

    Digunakan untuk menghubungkan alur proses dalam

    halaman yang berbeda atau ke halaman berikutnya.

  • DATA PROGRAM

    Program ditulis untuk memproses data, dibutuhkan pemahaman yang baik terhadap

    sifat dan struktur dari data yang sedang

    diproses.

    Data dalam program mungkin dapat berupa variabel tunggal (seperti : integer, karakter),

    atau kelompok (seperti : array, file)

  • Variabel & Konstanta

    Variabel adalah nama yang diberikan kepada kumpulan sel memori untuk menyimpan item

    data tertentu yang nilainya dapat berubah pada

    program dieksekusi.

    Contoh : namamhs, tgl_lahir, alamat1, dll.

    Konstanta adalah item data dengan nama dan nilai yang tetap sama selama program di

    eksekusi.

    Contoh : define phi 3.14 atau phi = 3.14.

  • ELEMEN-ELEMEN PROGRAM

    A. Aturan leksikal

    B. Tipe Data

    C. Expression

    D. Statement

    E. Function & Procedure

  • 1. Token

    Token (Kata) yaitu elemen terkecil pada bahasa pemrograman yang memiliki arti penting bagi compiler.

    Yang termasuk token antara lain: identifier, keywords(reserved words), operator, dan sebagainya.

    Token yang satu dengan yang lain dipisahkan dengan satu atau lebih spasi, tabulasi, baris baru, atau komentar.

  • 2. Komentar Digunakan untuk memberikan suatu keterangan yang

    akan menjelaskan isi dari program secara singkat.

    Komentar hanya sebuah tulisan pada program dan tidak akan diproses oleh komputer.

    Bertindak sebagai dokumentasi. Notasi komentar pada setiap bahasa pemrograman

    berbeda-beda.

    Contoh : {komentar pada pascal} //komentar pada c++ komentar pada visual basic

  • 3. IDENTIFIER Identifier adalah token yang merepresentasikan nama

    sesuatu seperti : variabel/konstanta, field/atribut, prosedur/fungsi, dan lain-lain.

    Aturan pemberian nama identifier:

    a. Karakter pertama harus berupa huruf.

    b. Karakter kedua dan selanjutnya dapat berupa

    huruf/angka/underscore.

    c. Tidak boleh menggunakan karakter simbol (@ # $ %

    & *, dll) kecuali underscore.

    d. Tidak boleh menggunakan kata kunci (keywords/

    reserved words).

  • 3. IDENTIFIER (lanjutan) e. Huruf besar/kecil dianggap berbeda (khusus

    C++)

    f. Tidak boleh ada spasi.

    g.Nama identifier sebaiknya disesuaikan

    dengan kebutuhan atau sesuai objek yang

    akan diberi nama.

    Contoh penamaan identifier yang benar : idcust, tgl_lahir, telp1, dll.

    Contoh penamaan identifier yang tidak benar : @kdbrg, double, nama-depan, 3erat_badan, dll.

  • 4. Keywords/Reserved Words

    Keywords atau reserved words merupakan kata-kata yang telah ada/didefinisikan oleh

    bahasa pemrograman yang bersangkutan.

    Kata-kata tersebut telah memiliki definisi yang sudah tetap dan tidak dapat diubah.

    Karena telah memiliki definisi tertentu, maka katakata ini tidak dapat digunakan sebagai

    identifier.

    Contoh Keyword : break, switch, continue, repeat, until, function dll

  • 5. OPERATOR Merupakan simbol-simbol khusus yang

    digunakan untuk mengoperasikan suatu nilai

    data (operand).

    Operator yang digunakan dalam pemrograman: Arithmetic operator Assignment operator Logical operator Relational operator Pointer operator Bitwise operator

  • B. TIPE DATA Tipe data digunakan untuk menentukan jenis nilai yang

    dapat ditampung oleh suatu variabel.

    Pada suatu bahasa pemrograman umumnya telah menyediakan tipe-tipe data yang sederhana (simple)

    maupun yang terstruktur dan apabila kita membutuhkan

    tipe data yang belum tersedia, kita dapat mendefinisikan

    sendiri tipe data baru, yang disebut enumerated type.

  • B. TIPE DATA (lanjutan) Tipe data terstruktur yaitu tipe data yang dapat

    menampung lebih dari satu nilai, sbb:

    1. Array adalah tipe data berindeks yang terdiri

    dari satu atau lebih elemen/komponen yang

    memiliki tipe data yang sama.

    2. Record adalah tipe data yang digunakan

    untuk merepresentasikan kumpulan (set)

    elemen/komponen yang memiliki satu jenis

    atau lebih tipe data. Tiap element disebut juga

    field atau property atau attribute

  • C. Expression Expression (ekspresi) yaitu suatu pernyataan yang

    menghasilkan suatu nilai.

    Expression tersusun dari operator dan operand yang digunakan untuk menghitung atau memberi suatu nilai

    suatu variable atau identifier.

    Expression yang paling sederhana yaitu nama variable. Expression yang lebih kompleks akan melibatkan

    operator-operator, maupun pemanggilan function atau

    procedure.

  • D. Statement

    Statement merupakan bagian program yang berisi perintah yang akan dieksekusi / dijalankan. Karena

    itu, statement-statement ini menentukan bagaimana

    jalannya program dan bagaimana suatu nilai

    variable dimanipulasi/berubah.

    Statement dapat dikelompokan menjadi antara lain: 1. Simple Statement

    2. Compound Statement

  • 1. Simple Statement

    Yang digolongkan ke dalam simple statement (statement

    sederhana) yaitu statement yang tidak berisi statement

    lainnya, sebagai berikut :

    Assignment Statement yaitu statement yang digunakan untuk memberikan nilai ke suatu variable, contohnya :

    a := 10; b := a * 2; c := c * b;

    Statement untuk pemanggilan function atau procedure yaitu statement yang memanggil function atau procedure

    yang telah didefinisikan pada program. Contoh :

    Calculate (a,b); Cetak (a,b);

  • 1. Simple Statement (lanjutan)

    Jump Statement yaitu statement yang digunakan untuk melompati statement-statement lain. Contoh :

    Melompat ke statement tertentu goto Keluar dari iterative statement break

  • 2. Compound Statement Compound statement (kumpulan statement) adalah

    sekumpulan statement yang terdiri dari statement-

    statement lain, termasuk juga selection statement dan

    interaction.

    Selection statement digunakan untuk melakukan pemilihan sekumpulan statement (compound statement).

    Contoh :

    a. If Then b. Perintah Case

    Iteration statement digunakan untuk melakukan perulangan sekumpulan statement (compound

    statement). Contoh :

    a. Do While

    b. Repeat .Until c. ForEndFor

  • E. Function dan Procedure

    Procedure dan Function disebut juga subroutine, merupakan blok statement yang dapat dipanggil dari lokasi yang berbeda di dalam program.

    Yang membedakan antara function dan procedure yaitu: suatu function jika dijalankan/dipanggil akan mengembalikan suatu nilai.

    Ketika procedure atau function dipanggil, kita dapat melewatkan suatu nilai ke dalam function atau procedure tersebut.

    Nilai yang dilewatkan disebut juga argument atau parameter.

  • Latihan

    Buatlah pseudocode & flowchart untuk

    menghasilkan 1 liter air dengan menggunakan

    tabung dengan ukuran 3 dan 5 liter.

  • Tugas

    Buatlah pseudocode & flowchart untuk menghasilkan air

    dengan menggunakan tabung dengan ukuran 3 dan 5 liter.

    Air yang ingin dihasilkan:

    a. 2 liter

    b. 4 liter

    Catatan Tugas :

    Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.

    Tugas dikumpulkan pada saat pertemuan 3. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak

    mendapat nilai tugas 1 (tidak ada sistem susulan).

  • PERTEMUAN 3

    TAHAPAN PEMBANGUNAN

    PROGRAM

  • POKOK BAHASAN

    1. Definisi Masalah

    2. Outline Solusi

    3. Pengembangan outline ke dalam

    algoritma

    4. Melakukan test terhadap algoritma

    5. Pemeriksaan Algoritma

    6. Memindahkan Algoritma Ke Dalam

    Bahasa Pemrograman

  • DISKUSI

    1. Mengapa dibutuhkan tahapan dalam

    perancangan program ?

    2. Apa manfaat Desk Checking

    Algoritma/pemeriksaan algoritma ?

    3

  • 4

    DEFINISI MASALAH

    Pada tahap ini memerlukan pemahaman terhadap permasalah dengan membaca

    berulang kali sampai dengan mengerti apa yang

    dibutuhkan.

    Permasalahan dibagi kedalam tiga komponen:

    Input / Masukan

    Output / Keluaran

    Proses

  • CONTOH KASUS

    Sebuah toko peralatan mandi menjual bak mandi

    plastik. Banyak customer yang bertanya volume air

    yang dapat ditampung pada bak mandi tersebut. Oleh

    karena itu dibutuhkan program untuk menghitung

    volume air bak mandi sesuai dengan ukuran yang

    diinput.

    Definisi Masalah :

    Input : panjang, lebar dan tinggi

    Output : volume bak mandi

    Proses : volume bak mandi = panjang x lebar x tinggi

  • 6

    OUTLINE SOLUSI

    Setelah permasalahan didefinisikan, permasalahan dapat di bagi ke dalam tugas-tugas atau langkah langkah yang lebih kecil dan menghasilkan outline solusi

    Outline solusi awal dapat terdiri dari: Proses utama Subtask utama Struktur Kontrol Variabel dan struktur record Logic utama (mainline)

  • OUTLINE SOLUSI

    Input Proses Output

    Baca p Baca l Baca t

    volume_bak = p x l x t Volume_bak

  • 8

    PENGEMBANGAN OUTLINE KE

    DALAM ALGORITMA

    Outline solusi pada langkah kedua dikembangkan menjadi algoritma yaitu

    sebuah set langkah yang menggambarkan

    tugas yang akan dikerjakan dan urutan

    pengerjaannya.

  • PENGEMBANGAN OUTLINE KE

    DALAM ALGORITMA (lanjutan)

    Program Hitung_Volume_Bak

    {menghitung volume bak mandi apabila input data

    tersebut diberikan}

    Deklarasi

    float p, l, t, volume_bak

    Deskripsi

    Baca p

    Baca l

    Baca t

    Hitung volume_bak = p x l x t

    Cetak volume_bak

    End

  • 10

    MELAKUKAN TEST TERHADAP

    ALGORITMA

    Tujuan utama dari melakukan test terhadap algoritma adalah adalah untuk menemukan

    kesalahan utama logik sejak awal, sehingga

    akan lebih mudah diperbaiki.

    Data test diperlukan untuk melakukan test terhadap algoritma ini.

  • DESK CHECKS VS TEST PLANS

    Test Plan fokus pada nilai input dan output yang dibutuhkan untuk menguji program tanpa

    memperdulikan kinerja internal. Contoh : Apa

    output yang benar dari sebuah input ?

    Desk Check menekankan pada nilai variabel dan logika. Contoh : Berapakah nilai variabel x

    setelah pernyataan; Apa pernyataan berikutnya

    yang akan dieksekusi ?

  • TAHAPAN PENGECEKAN

    ALGORITMA 1. Pilih data sederhana yang valid. Dua atau tiga data

    biasanya sudah mencukupi.

    2. Tentukan hasil output yang diharapkan untuk setiap set data.

    3. Buatlah tabel yang nama variabel yang ada pada algoritma di sebuah kertas

    4. Jalankan test satu persatu mengikuti algoritma yang ada, mulai dari perintah / statement pertama sampai dengan selesai

    5. Ulangi langkah tersebut menggunakan set data yang lain.

    6. Cek apakah hasil dari langkah 5, sesuai dengan hasil yang diharapkan di langkah kedua

    12

  • PEMERIKSAAN ALGORITMA

    Test Plan

    Input Data

    Output

    Input Data 1 Data 2

    p 3 2

    l 1 1.5

    t 2 1

    Output Data 1 Data 2

    Volume bak 6 3

  • TABEL DESK CHECK

    Algoritma Data 1 Data 2

    Baca p 3 2

    Baca l 1 1.5

    Baca t 2 1

    Cetak volume_bak 6 3

  • 15

    MEMINDAHKAN ALGORITMA KE

    DALAM BAHASA PEMROGRAMAN

    Setelah ke-empat langkah sebelumnya dilakukan, maka pencodingan dapat

    dimulai dengan menggunakan bahasa

    pemrograman yang dipilih.

  • 16

    MEMINDAHKAN ALGORITMA KE DALAM

    BAHASA PEMROGRAMAN (lanjutan)

    //Program Volume Bak

    include

    include

    include

    Main() {

    float p, l, t, volume_bak;

    printf(panjang :);scanf (%f,p);

    printf(lebar :);scanf (%f,l);

    printf(tinggi :);scanf (%f,t);

    Volume_bak = p* l * t;

    Printf(volume bak : %5.2f,volume_bak); }

  • 17

    MENJALANKAN PROGRAM PADA

    KOMPUTER

    Setelah pengcodingan, maka program dapat dijalankan pada komputer. Jika program sudah

    didesain dengan baik, maka akan mengurangi

    tingkat kesalahan dalam melakukan testing

    program.

    Langkah ini perlu dilakukan beberapa kali, sehingga program yang dijalankan dapat

    berfungsi dengan benar

  • 18

    DOKUMENTASI DAN PEMELIHARAAN

    PROGRAM

    Dokumentasi melibatkan eksternal dokumentasi (hierarchy chart, algoritma solusi, dan hasil data

    test) dan internal dokumentasi (coding

    program).

    Pemeliharaan program meliputi perubahan yang dialami oleh program (perbaikan ataupun

    penambahan modul, dll)

  • LATIHAN 1

    Sebuah sebidang tanah dengan ukuran 22 m x 15

    m dibangun sebidang rumah dengan ukuran 8 m x

    10 m. Sisa tanah yang tidak dibangun rumah

    ditumbuhi rumput. Pemilik rumah berencana

    memanggil tukang potong rumput untuk merapikan

    rumput di halaman rumahnya. Tarif per jam tukang

    rumput sebesar 100 ribu/jam. Berapa tarif yang

    harus dibayar memotong rumput halaman rumah,

    dengan rata-rata 20 cm2 / menit.

    19

  • LATIHAN 2

    Seorang kontraktor sedang membangun sebuah

    rumah dengan ukuran 8 m x 12 m. Rumah

    tersebut akan dipasangkan ubin dengan ukuran 30

    cm x 30 cm. Setiap kardus memiliki ukuran 1 m2.

    Berapa kardus ubin yang harus dibeli ? Buatlah

    pseudocode & flowchart serta program hitung

    kebutuhan ubin.

  • TUGAS 2

    Buatlah pseudocode, flowchart dan program untuk :

    1. Menentukan apakah suatu bilangan merupakan

    bilangan prima atau bukan ?

    2. Program untuk menentukan apakah tahun yang

    diinputkan termasuk tahun kabisat/bukan.

    Catatan Tugas :

    Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.

    Tugas dikumpulkan pada saat pertemuan 4. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak

    mendapat nilai tugas 2 (tidak ada sistem susulan).

  • PENGEMBANGAN

    PSEUDOCODE STRUKTUR

    KONTROL PEMILIHAN

    PERTEMUAN 4

  • POKOK BAHASAN

    1. Definisi Struktur Kontrol Pemilihan

    2. Pseudocode Struktur Kontrol Pemilihan

    3. Desk Checking Struktur Kontrol

    Pemilihan

    4. Contoh Algoritma & Pseudocode

  • STRUKTUR KONTROL

    PEMILIHAN

    Struktur kontrol pemilihan dalam pseudocode digunakan untuk menggambarkan: Pilihan antara dua atau lebih tindakan,

    tergantung pada apakah kondisi yang diberikan. Contoh : IF jumlah orang > 10 THEN pintu dibuka ELSE dibatalkan karena kurang peminatnya.

    Kondisi bernilai True atau False

    Contoh : IF member THEN Diskon = 20% * Harga

    3

  • Kondisi berdasarkan perbandingan 2 item yang dinyatakan dengan salah satu operator relasi

    berikut :

    < lebih kecil dari

    > lebih besar dari

    = sama dengan

    = lebih besar sama dengan

    tidak sama dengan

    4

    STRUKTUR KONTROL

    PEMILIHAN (lanjutan)

  • Ada beberapa variasi dari struktur kontrol selection yaitu:

    1. Simple Selection

    2. Combined / Multiple Selection

    3. Nested Selection

    a. Linear Nested IF Statement

    b. Non-Linear IF Statement

    4. Perintah Case

    STRUKTUR KONTROL PEMILIHAN

    (lanjutan)

  • 1. SIMPLE SELECTION

    Simple selection terjadi jika harus memilih diantara dua alternatif yang ada, tergantung dari

    hasil kondisi apakah True atau false.

    Keyword yang digunakan adalah : IF, THEN, ELSE, dan ENDIF

    Simple Selection ada 2 macam Simple selection bercabang Simple Selection tanpa cabang

  • A. SIMPLE SELECTION BERCABANG

    Simple selection bercabang terjadi ketika pilihan dibuat dua jalur alternatif, tergantung pada hasil dari suatu kondisi bernilai benar

    atau salah

    Format Struktur Simple Selection Bercabang

    IF syarat THEN

    instruksi1

    ELSE

    instruksi2

    ENDIF

    Contoh

    IF Saldo > 3000000 THEN

    bunga = 0.05 * Saldo

    ELSE

    bunga = 0.01 * Saldo

    ENDIF

  • B. SIMPLE SELECTION TANPA

    CABANG Simple selection tanpa cabang digunakan ketika

    instruksi yang dilakukan hanya ada kondisi benar saja.

    Format Struktur Simple Selection Tanpa Cabang

    IF syarat THEN instruksi

    Contoh: Diskon = 0 IF Subtotal > 100000 THEN diskon = 0.1 * Subtotal ENDIF Total = Subtotal - Diskon

  • CONTOH KASUS SIMPLE

    SELECTION

    Buatlah pseudocode & flowchart untuk

    menentukan apakah penghasilan per

    bulan yang dimasukkan kena pajak

    atau tidak. (kena pajak jika

    penghasilan setahun lebih besar sama

    dengan Rp. 15.600.000)

  • JAWABAN KASUS SIMPLE

    SELECTION

    Input : penghasilan per bulan

    Output : keterangan

    Proses : 1. total_penghasilan = penghasilan x 12

    bulan

    2. Jika total_penghasilan >= 15600000

    maka keterangan kena pajak.

  • OUTLINE SOLUSI

    Input Proses Output

    Baca gaji total_penghasilan = gaji * 12

    IF total_penghasilan

    >=15600000 THEN

    keterangan=Kena Pajak

    keterangan

  • PENGEMBANGAN OUTLINE KE

    DALAM ALGORITMA (lanjutan) Program Kena_Pajak

    {Menentukan kena pajak atau tidak apabila input data tersebut diberikan}

    Deklarasi

    string keterangan

    long gaji

    Deskripsi

    Baca gaji

    total_penghasilan = gaji * 12

    IF total_penghasilan >=15600000 THEN

    keterangan=Kena Pajak ELSE

    Keterangan = Tidak Kena Pajak Cetak keterangan

    ENDIF

    END

  • PEMERIKSAAN ALGORITMA

    Test Plan

    Input Data

    Output Data

    Input Data 1 Data 2

    Gaji 900,000 3,500,000

    Output Data 1 Data 2

    Keterangan Tidak Kena Pajak Kena Pajak

  • TABEL DESK CHECK

    Algoritma Data 1 Data 2

    Gaji 900,000 3,500,000

    Cetak keterangan Tidak Kena Pajak Kena Pajak

  • 2. COMBINED SELECTION Combined Selection terjadi jika kondisi yang harus

    diperiksa lebih dari satu. Kondisi tersebut dapat

    dihubungkan dengan menggunakan AND atau OR.

    Format Struktur Combined Selection IF syarat1 operator logika syarat2 THEN

    instruksi1

    Else

    instruksi2

    ENDIF

    Contoh : IF ormik AND semot THEN

    ket = LULUS ELSE

    ket = GAGAL ENDIF

  • 3. Nested Selection

    Nested selection terjadi, jika di dalam IF terdapat statement IF yang lain.

    Ada dua jenis nested selection Linear Nested IF Non-Linear Nested IF

  • A. Linear Nested IF Linear Nested IF terjadi jika satu kondisi di cek

    untuk beberapa nilai.

    Format Struktur Linear Nested IF Statement IF syarat1 THEN

    instruksi1

    ELSE IF syarat2 THEN

    instruksi2

    ELSE

    instruksi3

    ENDIF

  • A. Linear Nested IF (lanjutan)

    Contoh Struktur Linear Nested IF Statement

    IF ukuran = s THEN

    harga = 35000

    ELSE IF ukuran = m THEN

    harga = 50000

    ELSE

    harga = 70000

    ENDIF

  • B. Non-Linear Nested IF Non-Linear Nested IF terjadi jika beberapa kondisi

    harus diperiksa sebelum suatu statement

    dikerjakan.

    Format Struktur Non Linear Nested IF Statement IF syarat1 THEN

    IF syarat2 THEN

    instruksi2a

    ELSE

    instruksi2b

    ENDIF

    ELSE

    Instruksi 1b

    ENDIF

  • B. Non-Linear Nested IF Statement (lanjutan)

    Contoh Struktur Non Linear Nested IF Statement

    IF a > b THEN

    IF a > c THEN

    Cetak a

    ELSE

    Cetak c

    ENDIF

    ELSE IF b > c THEN

    Cetak b

    ELSE

    Cetak c

    ENDIF

  • 4. Perintah Case Perintah case digunakan

    sebagai instruksi

    pemilihan dimana aksi

    yang akan dilakukan

    hanya tergantung pada

    nilai dari satu macam

    variabel.

    Perintah case memungkinkan memiliki

    banyak nilai dan setiap

    nilainya berkaitan dengan

    satu macam aksi.

  • 4. Perintah Case (lanjutan) Format Struktur Perintah Case pada bahasa C

    switch (variabel_syarat)

    case nilai-1 : aksi-1

    case nilai-2 : aksi-2

    default : aksi n

    Contoh :

    switch (gol)

    case A: terapi = jus strawbery; break;

    case B : terapi =jus sirsak; break;

    case C : terapi =jus wortel ;break;

    case D : terapi =jus tomat ;break;

    default : terapi =Terapi untuk golongan tersebut tidak ditemukan;

  • LATIHAN

    Dibaca sebuah bilangan bulat yang mewakili pengukuran suhu air (dalam 0C) pada tekanan atmosfir, harus dituliskan wujud air pada temperatur dan tekanan tersebut.

    Ketentuan :

    Beku jika suhu < 0

    Cair jika 0 < suhu 100

    Uap jika suhu > 100

    Buatlah pseudocode, flowchart dan program dari masalah di atas.

    23

  • TUGAS 3

    Buatlah program untuk menghitung ekivalensi

    bilangan dalam detik menjadi berapa hari, jam

    berapa menit dan berapa detik.

    Catatan Tugas :

    Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.

    Tugas dikumpulkan pada saat pertemuan 5. Bagi mahasiswa yang tidak mengumpulkan

    tugas maka tidak mendapat nilai tugas 3 (tidak

    ada sistem susulan).

    24

  • PERTEMUAN 5

    PENGEMBANGAN

    PSEUDOCODE STRUKTUR

    KONTROL PENGULANGAN

    1

  • POKOK BAHASAN

    1. Definisi Struktur Kontrol Pengulangan

    2. Jenis Struktur Kontrol Pengulangan

    3. Pseudocode Struktur Kontrol Pengulangan

    4. Desk Checking Struktur Kontrol Pengulangan

    5. Algoritma Dengan Struktur Kontrol

    Pengulangan

    2

  • STRUKTUR KONTROL

    PENGULANGAN

    Struktur kontrol pengulangan digunakan untuk melaksanakan sederetan instruksi berulang-ulang

    sesuai dengan persyaratan yang ditetapkan.

    Ada tiga cara penempatan keputusan pengulangan :

    1. Pada awal pengulangan (Leading decision loop)

    2. Pada akhir pengulangan (trailing the decision

    loop)

    3. Menjumlahkan angka pada suatu

    waktu(counted loop)

  • 1. Leading Decision Loop

    Kondisi diuji sebelum beberapa instruksi dieksekusi.

    Perintah leading decision loop adalah struktur Do WHILE.

    Format Struktur Kontrol pengulangan DO WHILE

    DO WHILE kondisi k bernilai true

    instruksi_1

    instruksi_2

    instruksi_n

    counter

    ENDDO

  • Contoh Kasus :

    Sebuah hotel membuat penomoran kamar

    yang dikelompokkan berdasarkan bilangan

    genap. Jumlah kamar yang tersedia adalah

    5 kamar. Berikan bilangan genap sesuai

    dengan banyaknya kamar

    1. Leading Decision Loop

    (lanjutan)

  • Definisi Masalah

    Input : jumlah kamar

    Output : 5 deret bilangan genap

    Proses : Jika I

  • 1. Leading Decision Loop

    (lanjutan)

    Program Bilangan_Genap

    {Menghasilkan bilangan genap sesuai dengan data yang diinput}

    Deklarasi

    integer a= 0

    integer i=1

    integer n

    Deskripsi Baca n DOWHILE i

  • Desk Checking

    Data Masukan

    Hasil yang diharapkan

    2 4 6 8 10

    1. Leading Decision Loop

    (lanjutan)

    Input Data

    n 5

  • Tabel Desk Checking

    1. Leading Decision Loop

    (lanjutan)

    i n i

  • 2. Trailing Decision Loop Beberapa instruksi dieksekusi sekali sebelum kondisi

    diuji. Jika kondisi False, instruksi akan diulang sampai

    kondisi bernilai TRUE.

    Perintah trailing decision loop adalah struktur REPEAT . UNTIL.

    Format Struktur Kontrol pengulangan REPEAT.UNTIL

    REPEAT

    instruksi_1

    instruksi_2

    .

    instruksi_n

    counter

    UNTIL kondisi k true

  • Contoh Kasus :

    Sebuah Bank membuat nomor antrian

    berdasarkan bilangan ganjil. Jumlah antrian

    maksimal 5. Berikan bilangan ganjil sesuai

    jumlah antrian

    2. Trailing Decision Loop

  • Definisi Masalah

    Input : jumlah antrian

    Output : 5 deret bilangan ganjil

    Proses : Jika i n

    Cetak a

    2. Trailing Decision Loop

  • Program Bilangan_Ganjil

    {Menghasilkan bilangan ganjil sesuai dengan data yang diinput}

    Deklarasi

    integer a= 1

    integer i=1

    integer n

    Deskripsi Baca n REPEAT Cetak a a= a+ 2 i=i+1 Until i

  • Desk Checking

    Data Masukan

    Hasil yang diharapkan

    1 3 5 7 9

    Input Data

    n 5

    2. Trailing Decision Loop

  • Tabel Desk Checking

    i n Cetak a a=a+2 i=i+1 i>n

    1 5 1 3 2 N

    2 5 3 5 3 N

    3 5 5 7 4 N

    4 5 7 9 5 N

    5 5 9 11 6 N

    6 5 - - - Y

    2. Trailing Decision Loop

  • 3. Counted Loop

    Pencacah pengulangan digunakan jika jumlah iterasi pengulangan sudah diketahui. Pelaksanaan loop

    dikendalikan oleh indeks pengulangan.

    Perintah counted loop adalah struktur FOR

    Format Struktur Kontrol pengulangan FOR

    FOR loop_index=nilai_awal to nilai_akhir Step n

    statement_1

    statement_2

    statement_n

    ENDFOR

  • Contoh Kasus :

    Buatlah sebuah deret bilangan sebanyak 5 yang

    menampilkan angka 1, 4, 9, 14, 25

    Definisi Masalah Input : jumlah bilangan

    Output : 5 deret bilangan akar kuadrat

    Proses : Jika i

  • Outline Solusi

    Input Proses Output

    Baca n For i = 1 to n

    Cetak a

    a= sqr(a)

    EndFor

    Cetak a

    3. Counted Loop

  • Program Bilangan_Kuadrat

    {Menghasilkan bilangan kuadrat sesuai dengan data yang diinput}

    Deklarasi

    integer a

    integer i

    integer n

    Deskripsi Baca n

    For i = 1 to n

    Cetak a

    a= sqr(i)

    EndFor

    END

    3. Counted Loop

  • Desk Checking

    Data Masukan

    Hasil yang diharapkan

    1 4 9 16 25

    Input Data

    n 5

    3. Counted Loop

  • Tabel Desk Checking

    i n i

  • NESTED REPETION Nested Repetion terjadi, jika di dalam pengulangan

    terdapat statement pengulangan yang lain.

    Format Nested DO WHILE DO WHILE kondisi k1 bernilai true

    DO WHILE kondis k2 bernilai true

    statement_1

    statement_2

    statement_n2

    ENDDO

    statement_n1

    ENDDO

  • CONTOH NESTED REPETION

    Buatlah pseudocode untuk menampilkan output seperti berikut :

    1 1 1

    2 2 2

    3 3 3

    Jawaban :

    Definisi Masalah Input : jumlah baris dan jumlah kolom

    Output : menampilkan angka sesuai baris dan kolom

    Proses : DO WHILE b

  • Outline Solusi

    Input Proses Output

    Baca b, k DO WHILE b

  • Tabel Desk Checking

    b k b

  • LATIHAN

    1 = 1

    1 + 2 = 3

    1 + 2 + 3 = 6

    1 + 2 + 3 + 4 = 10

    1 + 2 + 3 + 4 + 5 = 15

  • PEMBAHASAN LATIHAN

    Input : i=1, j=0, jum=0

    Output : j dan jumlah

    Proses :

    do while i

  • TUGAS 4

    Buatlah pseudocode, flowchart dan program untuk membuat tampilan berikut :

    Catatan Tugas :

    Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.

    Tugas dikumpulkan pada saat pertemuan 6. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak mendapat nilai tugas 4

    (tidak ada sistem susulan).

  • PERTEMUAN 6

    MODULARISASI &

    KOMUNIKASI ANTAR

    MODUL

  • 1. Konsep Pemrograman Modular

    2. Komunikasi antar modul

    3. Kohesi

    4. Kopling

    2

    POKOK BAHASAN

  • MODULARISASI

    Modularisasi digunakan bila ada suatu permasalahan yang kompleks, sehingga

    langkah pertama adalah mengidentifikasikan

    tugas utama, setelah itu baru di bagi kedalam

    tugas yang lebih rinci.

    Proses ini disebut juga dengan Top Down Design

  • PEMROGRAMAN MODULAR

    Memecahkan algoritma ke dalam algoritma yang lebih

    kecil/modul.

    Modul yang dibentuk mempunyai kesatuan tugas/fungsi

    maupun kesatuan proses/prosedur.

    Setiap modul harus mempunyai single entry dan single

    exit secara beruntun dari atas ke bawah atau dari awal

    ke akhir modul.

    Memiliki main program dan sub program atau modul

  • PEMROGRAMAN MODULAR

    (lanjutan) Enam langkah dalam modular:

    1. Definisi masalah: klasifikasikan dalam input, proses dan output

    2. Kelompokkan aktivitas ke dalam modul. Definisikan kegiatan dari modul-modul yang ada

    3. Buat bagan susun untuk menjelaskan hirarki dan hubungan antar modul

    4. Buat logika dari main program dengan pseudocode. Terlebih dahulu inventarisasi apa saja yang dikerjakan dalam main program

    5. Buat logika untuk tiap tiap modul dengan pseudocode

    6. Desk checking algoritma: mencek kebenaran algoritma dengan data

  • JANGKAUAN DATA

    Global Data adalah variabel yang dikenal

    diseluruh program tersebut, dan dapat diakses

    dari setiap modul di program tersebut.

    Local Data adalah variabel yang didefinisikan

    disebuah modul. Variabel ini hanya dikenal di

    modul dimana variabel tersebut didefinisikan.

  • SIDE EFFECT

    Side effect adalah sebuah bentuk komunikasi antar modul dengan bagian lain dalam program.

    Global Data (Data Global)

    Perubahan nilai global data berdampak

    terhadap nilai data tersebut di semua modul.

    Local Data (Data Lokal)

    Perubahan nilai local data hanya berdampak

    terhadap nilai data pada modul secara lokal.

  • CONTOH PEMROGRAMAN

    MODULAR

    Program Hitung_luasPP

    {menentukan luas persegi

    panjang berdasarkan data

    yang diinput}

    Deklarasi

    integer p, l {global data}

    Deskripsi

    Baca p

    Baca L

    Hitung luaspp(p,l)

    END

    Sub luaspp(integer pj,

    integer lb)

    integer luas {local data}

    luas = pj * lb

    Cetak luas

    EndSub

  • PARAMETER

    Parameter Data

    Parameter Status flag/boolean

    Dalam merancang modul sebaiknya lebih banyak menggunakan parameter data

    Hindari menggunakan parameter status sebanyak mungkin

  • PARAMETER PASSING Menyampaikan data dari modul pemanggil ke modul

    yang dipanggil (subordinate).

    Menyampaikan informasi dari subordinate ke modul pemanggil.

    Informasi/data yang dikirim atau diterima di passing 2 arah dari modul pemanggil ke subordinate maupun

    sebaliknya.

  • KOMUNIKASI ANTAR MODUL

    Parameter Aktual

    Parameter yang disertakan pada saat prosedur

    dipanggil untuk dilaksanakan.

    Contoh : tukar (a,b); //a dan b adalah parameter

    aktual

    Parameter Formal

    Parameter yang dituliskan pada definisi suatu

    prosedur atau fungsi.

    Contoh : Prosedur tukar(x, y);

  • KOMUNIKASI ANTAR MODUL

    (lanjutan) Pemanggilan Dengan Nilai (Call By Value)

    pemanggilan dengan nilai, nilai dari parameter aktual

    akan ditulis ke parameter formal. Dengan cara ini nilai

    parameter aktual tidak bisa berubah, walaupun nilai

    parameter formal berubah.

    Pemanggilan Dengan Acuan

    Pemanggilan dengan reference merupakan upaya untuk

    melewatkan alamat dari suatu variabel kedalam fungsi.

    Cara ini dapat dipakai untuk mengubah isi suatu variabel

    diluar fungsi dengan melaksanakan pengubahan

    dilakukan didalam fungsi.

  • CONTOH KASUS MODULARISASI

    Susunlah algoritma untuk mengurutkan

    beberapa bilangan dengan urutan menaik

    (ascending) dan tampilkan bilangan hasil

    sort tersebut

  • CONTOH KASUS MODULARISASI

    (lanjutan)

    Input Proses Output

    byk_data baca data_1, data_2, ...data_n data_1

    data_1 sort data bilangan tersebut data_2

    data_2 cetak hasil sort data_n

    data_n

    A. Definisi Masalah

    Input : banyaknya data, bilangan yang akan

    diurutkan

    Output : Bilangan yang terurut

    Proses : baca data_1, data_2data_n

    sort data bilangan tersebut

    A. Outline Solusi

  • Hierarchy Chart

  • SUB SORTING_DATA

    FOR I = 1 TO N

    FOR J = N TO J>=I STEP -1

    IF DATA[J] < DATA[J-1] THEN

    TUKAR_DATA(J,J-1)

    ENDIF

    END FOR

    END FOR

    ENDSUB

    SUB TUKAR_DATA(int a, int b)

    INT TEMP

    TEMP = DATA[B];

    DATA[B] = DATA[A];

    DATA[A] = TEMP

    ENDSUB

    SUB INPUT_DATA

    FOR I = 1 TO N

    BACA DATA[I]

    END FOR

    ENDSUB

    SUB CETAK_DATA

    FOR I = 1 TO N

    BACA DATA[I]

    END FOR

    ENDSUB

    PROGRAM SORTING

    MAIN_SORTING INT N, J, DATA[10]

    BACA N

    INPUT_DATA

    SORTING_DATA

    CETAK_DATA

    END

    16

    HASIL MODULARISASI

  • KOHESI & KOPLING

    Cohesion dan Coupling merupakan konsep dasar dalam perancangan dan rekayasa

    perangkat lunak.

    Membagi software/perangkat lunak menjadi modul-modul yang kecil bukan sekedar

    memisahkan kumpulan kode dari kumpulan

    kode lainnya. Tetapi memastikan bahwa modul

    yang dirancang menganut prinsip "Loose

    Coupling, High Cohesion"

  • KOHESI

    Kohesi adalah keeratan hubungan elemen-elemen di dalam suatu modul.

    Macam-macam Kohesi Functional baik/kuat Sequential Communicational Procedural Temporal Logical Coincidental Jelek/lemah

  • KOHESI (lanjutan)

    Perubahan pada modul dengan tingkat kohesi tinggi tidak terlalu membawa dampak perubahan

    terhadap modul lain. Sehingga lebih mudah

    dalam pemrograman, pengujian dan perawatan

    Modul dengan tingkat kohesi tinggi, lebih mudah dipahami dan didokumentasi

    Pada modul dengan tingkat kohesi tinggi, informasi lebih mudah disembunyikan, karena

    komunikasi antar modul diminimalkan

  • KOHESI FUNCTIONAL

    Mempunyai satu tugas

    Menghasilkan satu hasil/satu parameter output

    Bisa satu atau lebih parameter input

  • KOHESI SEQUENTIAL

    Mempunyai pekerjaan yang beruntun

    Kegiatan yang dilakukan lebih dari satu

    Hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan selanjutnya

    Dapat dipecah menjadi Functional

  • KOHESI KOMUNIKASIONAL

    Kegiatan lebih dari satu Menggunakan data yang sama Dapat dijadikan Functional Contoh:

    Sub Proses_perhitungan

    C = A + B

    D = A 1 E = A * B

    F = A / B

    G = A mod B

    EndSub

  • KOHESI PROCEDURAL Satu kegiatan dengan kegiatan lain tidak berhubungan Hubungan antara elemen yang satu dengan yang lainnya

    karena urutan statement

    Dapat dipecahkan menjadi Functional Contoh:

    Sub Baca_record_mhs_dan_total_usia_mhs

    set no_record to 0

    set total_usia to 0

    baca record_mhs

    DO WHILE not EOF

    total_usia = usia + total_usia

    no_record = no_record + 1

    ENDDO

    print no_record, total_usia

    EndSub

  • KOHESI TEMPORAL

    Elemen-elemen terlibat dalam berbagai kegiatan yang mempunyai hubungan dalam waktu

    Urutan tidak penting

    Contoh:

    Sub Initialisasi

    buka file transaksi

    total_transaksi = 0

    total_pen = 0

    baris = 30

    no = 0

    hal = 0

    EndSub

  • KOHESI LOGICAL Elemen-elemen melakukan kegiatan dengan kategori yang sama Parameter masukan menentukan kegiatan yang dilaksanakan Tidak semua kegiatan dikerjakan Contoh: Read_all_files(file_code)

    CASE if file_code

    1 : read customer_transaction record

    IF not EOF THEN

    increment cust_trans_count

    2 : read customer_master record

    IF not EOF THEN

    increment cust_master_count

    3 : read product_master record

    IF not EOF THEN

    increment product_master_count

    ENDIF

    ENDCASE

    END

  • KOHESI KOINSIDENTAL

    Elemen-elemen tidak mempunyai hubungan

    Contoh:

    Sub File_Processing

    Open employee updates file

    read employee record

    print_page heading

    open employee master file

    set page_count to one

    set error_flag to false

    EndSub

  • KOPLING

    Kopling adalah keeratan hubungan antar modul. Tingkat saling ketergantungan di antara dua modul.

    Faktor yang mempengaruhi kopling:

    1. Jumlah data yang disalurkan

    2. Jumlah kontrol data yang disalurkan

    3. Jumlah elemen data global yang digunakan bersama-sama oleh beberapa modul

  • JENIS-JENIS KOPLING

    Data baik/lemah Stamp Kontrol External Common jelek/kuat

    Keterangan:

    Makin baik kopling, makin rendah ketergantungan suatu modul terhadap modul lain

    Modul dengan kopling yang baik adalah modul independence

  • KOPLING DATA

    Komunikasi diantara modul menggunakan data. Diinginkan jumlah data minimal

    Parameter data yang disalurkan semakin sedikit semakin baik

  • CONTOH KOPLING DATA A. Process_record_pelanggan

    hitung_pajak_penjualan (total_harga, pajak_penjualan)

    END

    B. Hitung_pajak_penjualan (long total, pajak)

    IF total> 5000 THEN

    pajak = total * 0.25

    Else If total > 4000 THEN

    pajak = total * 0.2

    Else

    pajak = total * 0.15

    ENDIF

    END

  • KOPLING STAMP

    Dua modul melakukan pass struktur data non global yang sama

    Struktur data: record, array

    Timbul bahaya bila modul memeriksa struktur data tetapi hanya menggunakan sebagian

  • current_record hanya berupa penunjuk nomor record sekarang

  • KOPLING KONTROL

    Dua modul melakukan passing parameter menggunakan data kontrol (flag/switch)

  • input_code berfungsi sebagai switch (berupa switch)

  • KOPLING EXTERNAL

    Dua modul atau lebih menggunakan data global yang sama

    Tidak ada parameter yang digunakan dari modul pemanggil ke subordinate dan sebaliknya

    Global Data Elementer Variabel

    Modul A Modul B

  • pajak_pen adalah variabel data global

  • KOPLING COMMON

    Dua modul atau lebih menggunakan struktur data global yang sama

    Struktur data global

    Modul A Modul B

  • record_pelanggan adalah struktur data global

  • LATIHAN

    Buatlah pseudocode, plowchart dan program untuk menampilkan menu untuk menghitung

    luas bangun ruang seperti : persegi panjang,

    segitiga dan bujur sangkar

  • TUGAS 5 Buatlah program lengkap dengan pseudocode dan

    flowchart untuk menampilkan

    Bilangan fibonancii

    Bilangan faktorial

    Angka bilangan bulat dalam bentuk kalimat, contoh : 32,768 ditampilkan Tiga Puluh Dua Ribu Tujuh Ratus

    Enam Puluh Delapan Rupiah.

  • TUGAS 5 (lanjutan)

    Catatan Tugas :

    Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.

    Tugas dikumpulkan pada saat pertemuan 9. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak

    mendapat nilai tugas 5 (tidak ada sistem susulan).