sub-algorithm (Procedure dan function) Class FAKULTAS TEKNIK DAN TEKNOLOGI WEEK 6
Information
Sub Algoritma
Sub Algoritma Jika sebuah permasalahan memiliki problem yang luas , maka dalam pembuatan algoritma penyelesaiannya menjadi sangat panjang dan mungkin ada beberapa penggunaan algoritma yang trus berulang . Hal ini menyebabkan penggunaan algoritma yang redundan dan tidak baik untuk komputasi . Salah satu cara penyelesaian permasalahan ini adalah divide ( dibagi ) and conquer ( diatasi )
Sub Algoritma Sub Algoritma sederhana akan dibagi menjadi Procedure Function
Sub Algoritma Kegunaan dari Sub Algoritma adalah memecahkan algoritma yang besar menjadi lebih kecil Kegunaan Reuse algorithm Divide work for multiple programmer Debug pieces independently
Procedure Procedure adalah sebuah sub algoritma yang tidak mengembalikan hasil kepada yang memanggilnya Syntax pada prosedur PROC < nama fungsi > (<argument>) < algoritma > ENDPROC
Procedure Problem: Sebuah perusahaan ingin membuat program untuk menghitung jumlah barang yang dibeli seseorang dan menghitung PPN nya
Function Function adalah sub Algoritma yang mengembalikan hasil kepada pemanggilnya Syntaxnya : DEF < nama fungsi > (argument) < algoritma > RETURN < hasil > ENDDEF
Function Problem: Seorang guru ingin melakukan perhitungan nilai mahasiswa dengan ketentuan 30%UTS 20%Tugas 50%UAS
Function BEGIN menghitungNilaiAkhir INPUT nilaiUTS INPUT nilaiTugas INPUT nilaiUAS nilaiAkhir = 0.3* nilaiUTS + 0.2* nilaiTugas + 0.5* nilaiUAS PRINT nilaiAkhir END
Function FLOAT nilai , nilaiUTS , nilaiTugas , nilaiUAS DEF nilaiAkhir ( nilaiUTS , nilaiTugas , nilaiUAS ) nilai = 0.3* nilaiUTS + 0.2*nilaiTugas+0.5* nilaiUAS RETURN nilai ENDDEF BEGIN HitungNilaiAkhir INPUT nilaiUTS INPUT nilaiUAS INPUT nilaiTugas nilai = CALL nilaiAkhir ( nilaiUTS , nilaiTugas , nilaiUAS ) PRINT nilai END
LATIHAN 1 diketahui inputan dari user adalah 2 nilai . DEKLARASIKAN NILAI DALAM ARRAY. Dimana 2 nilai tersebut dapat digunakan untuk menentukan luas segitiga dan luar persegi Panjang. Output yang digunakan sesuai dengan pilihan user. Asumsikan nilai 1 adalah Panjang dan alas, dan nilai 2 adalah lebar dan tinggi Luas segitiga dengan procedure, dan luar persegi dengan function Output seperti ini 1 : Masukan nilai 1 : 10 Masukan Nilai 2 : 4 Hitung Luas Bangun ? SEGITIGA PERSEGI PANJANG Pilihan anda : 1 Luas Segitiga : 20 Output seperti ini 2 : Masukan nilai 1 : 10 Masukan Nilai 2 : 4 Hitung Luas Bangun ? SEGITIGA PERSEGI PANJANG Pilihan anda : 2 Luas Persegi Panjang : 40
CLASS
Class & Object Class adalah template dari objek , yang mendefinisikan properti-properti dari objek , dan menyediakan constructor untuk membuat objek dan method untuk memanipulasi objek . Class juga merupakan type data, dapat digunakan untuk mendeklarasi objek yang direferensikan dengan variabel – variabel . Object adalah representasi dari class.Banyak objek yang dapat dibuat hanya menggunakan satu class.
CLASS M erupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. Class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain. Contoh : Class Person, Vehicle, Tree, Fruit dan lain-lain. ID A001 MERK TOYOTA TAHUN 2010 Class CAR
Object OBJECT adalah instance dari class. Jika class secara umum merepresentasikan (template) sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri . Contoh : Dari class FRUIT kita dapat membuat object Mangga, Pisang, Apel dan lainlain . Objek adalah kesatuan entitas ( benda ) yang merupakan representasi nyata dari sebuah kelas .
Class memiliki Nama Kelas Attribute (object) Method (input, set, add, remove)
Pseudo Code Class FRUIT { Char ID; char NAME; String DETAILS; Int AMOUNT; } BEGIN Data_Buah FRUIT WATERMELON { INPUT WATERMELON.ID; INPUT WATERMELON.NAME; INPUT WATERMELON.DETAILS; INPUT WATERMELON.AMOUNT; } PRINT “ID Buah :“, WATERMELON.ID; PRINT “Nama Buah :“, WATERMELON.NAME; PRINT “ Spesifikasi : ”, WATERMELON.DETAILS; PRINT “ Jumlah :”, WATERMELON.AMOUNT; END Output yang dihasilkan , yaitu ; ID Buah : 12 Nama Buah : Semangka Kuning Spesifikasi : Manis dan Sedikit Biji Jumlah : 10 ID 12 NAME Semangka Kuning DETAILS Manis dan Sedikit Biji AMOUNT 10 Class FRUIT
Bagaimana jika output seperti ini ? ID Buah : 12 Nama Buah : Semangka Kuning Spesifikasi : Manis dan Sedikit Biji Jumlah : 10 ID Buah : 13 Nama Buah : Semangka Merah Spesifikasi : Manis dan Banyak Biji Jumlah : 5 ID 12 13 NAME Semangka Kuning Semangka Merah DETAILS Manis dan Sedikit Biji Manis dan Banyak Biji AMOUNT 10 5 Class FRUIT
Perbedaan apa yang kalian temukan ? Class FRUIT { Char ID; char NAME; String DETAILS; Int AMOUNT; } BEGIN Data_Buah FRUIT WATERMELON { INPUT WATERMELON.ID; INPUT WATERMELON.NAME; INPUT WATERMELON.DETAILS; INPUT WATERMELON.AMOUNT; } FRUIT WATERMELON2 { INPUT WATERMELON2.ID; INPUT WATERMELON2.NAME; INPUT WATERMELON2.DETAILS; INPUT WATERMELON2.AMOUNT; } PRINT “ID Buah :“, WATERMELON.ID; PRINT “Nama Buah :“, WATERMELON.NAME; PRINT “ Spesifikasi :”, WATERMELON.DETAILS; PRINT “ Jumlah :”, WATERMELON.AMOUNT; PRINT “ID Buah :“, WATERMELON2.ID; PRINT “Nama Buah :“, WATERMELON2.NAME; PRINT “ Spesifikasi :”, WATERMELON22DETAILS; PRINT “ Jumlah :”, WATERMELON2.AMOUNT; END BEGIN Data_Buah char WATERMELON_ID; char WATERMELON_NAME; string WATERMELON_DETAILS; int WATERMELON_AMOUNT; char WATERMELON2_ID; char WATERMELON2_NAME; string WATERMELON2_DETAILS; int WATERMELON2_AMOUNT; INPUT WATERMELON_ID; INPUT WATERMELON_NAME; INPUT WATERMELON_DETAILS; INPUT WATERMELON_AMOUNT; INPUT WATERMELON2_ID; INPUT WATERMELON2_NAME; INPUT WATERMELON2_DETAILS; INPUT WATERMELON2_AMOUNT; PRINT “ID Buah :“, WATERMELON_ID; PRINT “Nama Buah :“, WATERMELON_NAME; PRINT “ Spesifikasi :”, WATERMELON_DETAILS; PRINT “ Jumlah :”, WATERMELON_AMOUNT; PRINT “ID Buah :“, WATERMELON2_ID; PRINT “Nama Buah :“, WATERMELON2_NAME; PRINT “ Spesifikasi :”, WATERMELON2_DETAILS; PRINT “ Jumlah :”, WATERMELON2_AMOUNT; END Code 1 Code 2
LATIHAN 2 Buat pseudo code menggunakan Class untuk data-data dibawah ini ; Pasien : ID pasien , Nomor Ktp , Nama, Alamat, Nomor Telepon Tenaga Kesehatan : NIP, Nama, Alamat, Jabatan Alat Kesehatan : ID, Nama, Fungsi , Penempatan POLI : ID Poli , Nama, Ruang, Waktu Obat : ID Obat , Nama, Dosis , Indikasi , Kontra Indikasi , Penyakit Penyakit : ID, Nama, Jenis Penyakit , Area
Ilustrasi output ID_Pasien A01 KTP 12121212 Nama Hana Alamat Depok Telp 0218989011 Class Pasien NIP DOK11 Nama Dua Alamat Depok Jabatan Dokter Class Tenaga_Kesehatan ID AK-12 Nama X-Ray Fungsi Perekaman X-Ray Penempatan Radiologi Lt.1 Class Alat_Kesehatan ID_Poli Poli-4 Nama Poli Gigi Ruang Lt. 2 R203 Waktu 08.00 -15.00 Class POLI ID_Obat 12-OB Nama Paracetamol Dosis 3 x 1 hari Indikasi Panas , sakit kepala Kontra-Indikasi Tekanan darah tinggi Penyakit Demam Class Obat ID_Penyakit Ringan-7 Nama Demam Jenis Penyakit Penyakit Ringan Area Bagian Kepala Class Penyakit Buatlah pseudo code untuk menampilkan output Seperti yang ditunjukkan pada Ilustrasi output ini . Pseudo code dapat Dijadikan satu seperti contoh sebemunya
Soal Tugas Kelompok 4 Dosen ingin memasukan nilai mahasiswa dalam sistem . Adapun nilai-nilai yang saya input yaitu nilai harian dengan bobot 25%, nilai uts dengan bobot 25% dan nilai uas 50%. Setelah saya input, maka akan muncul nilai akhir mahasiswa tersebut . Nilai akhir yang muncul yaitu Nilai Angka. Setelah nilai-nilai diinputkan , selain menghasilkan Nilai Angka, dalam sistem juga diharapkan muncul adalah Nilai Huruf . Adapun ketentuan Nilai Huruf yang diperoleh mahasiswa antara lain; A untuk nilai 80-100, B untuk nilai 70-79, C untuk nilai 55-69 dan D untuk nilai < 55. Diketahui hanya mahasiswa yang mendapatkan A,B dan C dinyatakan lulus. Asumsikan untuk nilai hanya menggunakan variable Nilai , dan menghasilkan output seperti berikut (next slide), adapun beberapa ketentuan dama deklarasikan pseudo code, antara lain Menggunakan array untuk variable Nilai Menggunakan procedur untuk menghitung nilai akhir Menggunakan function untuk mendapatkan nilai huruf dan lulus
Output yang di harapkan Ini adalah inputan oleh user Nama Mahasiswa : Pramitha NIM : 121212 Mata Kuliah Algorithm and Data Structure Introduction to Information Technology Pilihan Anda : 1 Masukan Nilai Harian : 75 /* ini merupakan inputan Masukan Nilai UTS : 75 /* ini merupakan inputan Masukan Nilai UAS : 75 /* ini merupakan inputan Proses [y/n] ? y Setelah diproses akan menghasilkan seperti di bawah ini ; Informasi Hasil Study Nama Mahasiswa : Pramitha NIM : 121212 Mata Kuliah : Algorithm and Data Structure Nilai Harian : 75 Nilai UTS : 75 Nilai UAS : 75 Nilai Akhir : 75 Nilai Huruf : B Keterangan : LULUS
Pengumpulan Tugas Tugas WEEK 9 (LATIHAN 1 DAN 2) (1) Class (2) Procedure dan Function Batas Waktu kaan diumumkan di classroom Kumpulkan dalam kantong Assigment TUGAS INDIVIDU W9 Detail lengkap di google classroom Tugas Kelompok (TK-4) (1) Class (2) Procedure dan Function Batas Waktu 1 minggu dari kegiatan kelas Kumpulkan dalam kantong Assigment Tugas Kelompok 5 (TK5) Detail lengkap di google classroom