Minggu, 16 Oktober 2016

Program, Sequence Diagram, Activity Diagram, Use Case, Class Diagramm dan CRC untuk Sensor pada AC

1. Use Case
Berikut adalah Use Case untuk sistem sensor pada AC

2. Activity Diagram
Berikut adalah Activity Diagram untuk sistem sensor pada AC

a. cek jumlah orang

b. cek kelembaban

c. sistem fan

d. sistem swing

e. sistem temperatur


3. Class Diagram
Berikut adalah Class Diagram untuk sistem sensor pada AC

4. CRC
Berikut adalah CRC untuk sistem sensor pada AC




5. Sequence Diagram
Berikut adalah Sequence Diagram untuk sistem sensor pada AC

a.  Cek Jumlah Orang

 b. Cek Kelembaban Ruangan

c. Mengatur Fan

d. Mengatur Swing


e. Mengatur Temperatur


6. Program sensor pada AC. Terdapat 3 bagian untuk program ini


Sistem.cpp
#include<iostream>
#include<math.h>
#include<string>
#include<stdlib.h>
#include "AC.h"
#include "Sensor.h"

using namespace std;

int checkJumlahOrang(int jumlahOrang){
    int hasil;
    if(jumlahOrang>=0 && jumlahOrang<=14)
        hasil=0;
    else if(jumlahOrang>=15 && jumlahOrang<=25)
        hasil=1;
    else
        hasil=2;

return hasil;
}
int checkKelembaban(float kelembaban){
    int hasil;
    if(kelembaban>=20 && kelembaban<=25)
        hasil=0;
    else if(kelembaban>=26 && kelembaban<=69)
        hasil=1;
    else
        hasil=2;

return hasil;
}

void setAturan(AC *objekAC, Sensor *objekSensor, string tableAturan[3][3], int rangeSuhu[3][2]){
    cout << "\nmasuk setAturan\n" << endl;
    string aturan = tableAturan[objekSensor->getTingkatJumlahOrang()][objekSensor->getTingkatKelembaban()];

    int koma[2], ubahTemperatur, indeksRangeSuhu, ubahFanSpeed;

    koma[0] = aturan.find_first_of(",");
    koma[1] = aturan.find_last_of(",");

    //ganti temperatur
    ubahTemperatur = atoi(aturan.substr(0,koma[0]).c_str());
    cout << "ubah temperatur : " << ubahTemperatur << endl;
    indeksRangeSuhu = objekSensor->getTingkatJumlahOrang();
    if(objekAC->getTemperatur()+ubahTemperatur>=rangeSuhu[indeksRangeSuhu][0] && objekAC->getTemperatur()+ubahTemperatur<=rangeSuhu[indeksRangeSuhu][1])
        objekAC->setTemperatur(objekAC->getTemperatur()+ubahTemperatur);

    //cout << "temperatur in setAturan : " << objekAC->getTemperatur() << endl;
    //set swing
    if(aturan.substr(koma[1]+1,1).compare("0")==0)
        objekAC->setSwing(false);
    else
        objekAC->setSwing(true);

    //set fan speen
    ubahFanSpeed = atoi(aturan.substr(koma[0]+1,koma[1]-koma[0]-1).c_str());
    objekAC->setFanSpeend(ubahFanSpeed);

    return;

    //cout << aturan << endl;
    //cout << aturan.substr(0,koma[0]) << endl;
    //cout << aturan.substr(koma[0]+1,koma[1]-koma[0]-1) << endl;
    //cout << aturan.substr(koma[1]+1,1) << endl;

    //cout << atoi(aturan.substr(0,1).c_str())+atoi(aturan.substr(2,1).c_str()) << endl;
}

int main(){

    string tableAturan[3][3] = { {"0,1,0","0,1,0","1,1,0"},
                        {"0,2,1","-1,2,1","-1,1,0"},
                        {"-2,3,1","-1,2,1","0,1,1"}};

    //rangeSuhu digunakan untuk membatasi perubahan suhu berdasarkan jumlah orang, rendah sedang tinggi
    int rangeSuhu[3][2] = { {24,27},
                            {19,23},
                            {15,18}};
    int indeksRangeSuhu, nilaiTengahRangeSuhu, tingkatJumlahOrangSebelum;

    Sensor objekSensor(-1);
    AC objekAC;

    int jumlahOrang, tingkatKelembaban, tingkatJumlahOrang;
    float kelembaban;
    while(true){
        cout << "Program akan berjalan terus, tekan CTRL+C untuk exit" << endl;
        cout << "Jumlah orang : " << endl;
        cin >> jumlahOrang;
        cout << "Kelembaban : " << endl;
        cin >> kelembaban;
        cout << endl;

        if(objekSensor.getTingkatJumlahOrang()==-1){
            objekAC.setPower(true, 0, false);
        }

        if(jumlahOrang==0){
            objekAC.setPower(false, 0, false);
            objekSensor.setTingkatJumlahOrangKelembaban(-1, -1);
            break;
        }


        objekSensor.setJumlahOrangKelembaban(jumlahOrang, kelembaban);
        tingkatJumlahOrangSebelum = objekSensor.getTingkatJumlahOrang();
        objekSensor.setTingkatJumlahOrangKelembaban(checkJumlahOrang(objekSensor.getJumlahOrang()), checkKelembaban(objekSensor.getKelembaban()));

        //objek baru terbentuk
        if(tingkatJumlahOrangSebelum == -1 || tingkatJumlahOrangSebelum!=objekSensor.getTingkatJumlahOrang()){
            indeksRangeSuhu = objekSensor.getTingkatJumlahOrang();
            cout << "indeks range suhu : " << indeksRangeSuhu << endl;
            nilaiTengahRangeSuhu = floor((rangeSuhu[indeksRangeSuhu][1]-rangeSuhu[indeksRangeSuhu][0])/2);
            cout << "nilai tengah range suhu : " << nilaiTengahRangeSuhu << endl;
            objekAC.setTemperatur(nilaiTengahRangeSuhu+rangeSuhu[indeksRangeSuhu][0]);
            cout << "temperatur kemungkinan : " << objekAC.getTemperatur() << endl;
        }
        setAturan(&objekAC, &objekSensor, tableAturan, rangeSuhu);

        cout << "\nTemperatur sekarang : " << objekAC.getTemperatur() << endl;
        cout << "Fan Speed sekarang : " << objekAC.getFanSpeen() << endl;
        cout << "Swing sekarang : " << objekAC.getSwing() << endl;
        cout << endl << endl;
    }

return 0;

}

Sensor.h
#ifndef Sensor_H_
#define Sensor_H_

class Sensor{
    int jumlahOrang, tingkatJumlahOrang, tingkatKelembaban;
    float kelembaban;

    public:
        Sensor(int);
        void setTingkatJumlahOrangKelembaban(int,int);
        void setJumlahOrangKelembaban(int, float);
        int getJumlahOrang(){ return jumlahOrang; };
        float getKelembaban(){ return kelembaban; };
        int getTingkatJumlahOrang(){ return tingkatJumlahOrang;};
        int getTingkatKelembaban(){ return tingkatKelembaban;};
};

void Sensor::setJumlahOrangKelembaban(int jumlahOrang, float kelembaban){
    this->jumlahOrang = jumlahOrang;
    this->kelembaban = kelembaban;
}

void Sensor::setTingkatJumlahOrangKelembaban(int tingkatJumlahOrang, int tingkatKelembaban){
    this->tingkatJumlahOrang = tingkatJumlahOrang;
    this->tingkatKelembaban = tingkatKelembaban;
}

Sensor::Sensor(int tingkatJumlahOrang){
    this->tingkatJumlahOrang = tingkatJumlahOrang;
}


#endif

AC.h
#ifndef AC_H_
#define AC_H_

class AC{
    int temperatur, fanSpeed;
    bool swing, power;

    public:
        void setTemperatur(int);
        void setSwing(bool);
        void setPower(bool, int, bool);
        void setFanSpeend(int);
        int getTemperatur(){ return temperatur; };
        int getFanSpeen(){ return fanSpeed; };
        int getSwing(){ return swing; };
};

void AC::setTemperatur(int temperatur){
    this->temperatur = temperatur;
}

void AC::setSwing(bool swing){
    this->swing = swing;
}

void AC::setFanSpeend(int fanSpeed){
    this->fanSpeed = fanSpeed;
}

void AC::setPower(bool power, int fanSpeed, bool swing){
    this->power = power;
    this->fanSpeed = fanSpeed;
    this->swing = swing;
}


#endif

source code: pelajaranc.blogspot.com

Minggu, 02 Oktober 2016

CRC Modelling dan Class DIagram dari Online Shopping Information System

Class Diagram


Class adalah kumpulan objek-objek yang mempunyai struktur umum, relasi umum, dan kata yang umum. Class ditentukan dengan cara memeriksa objek-objek dalam sequence dan collaboration diagram. Class sebaiknya diberi nama menggunakan kata benda sesuai dengan domain / bagian / kelompoknya.

Class Diagram adalah diagram yang digunakan untuk menampilkan beberapa kelas serta paket-paket dalam sistem / perangkat lunak yang kita gunakan. Class diagram menunjukkan semua class yang ada dari sebuah sistem dan hubungannya secara logika. Class diagram dianggap sebagai tulang punggung dari hampir setiap metode berorientasi objek termasuk UML karena menggambarkan struktur statis sebuah sistem. 

Berikut adalah class diagram dari Online Shopping Information System



CRC (Class Responsibility Collabolator)

CRC adalah kartu indeks yang terdiri dari 3 hal yaitu class, responsibility, dan collabolator. 

Berikut adalah format cari CRC:

Berikut adalah CRC dari Online Shopping Information System:










Use Case dan Realisasi Class

Berikut adalah hubungan antara use case dengan realisasi class:


---------------------------------------------------------------------------------
Sekian sedikit bahasan dari saya tentang CRC dan Class Diagram Online Shopping Information System
Semoga ilmu nya bermanfaat 
Sekian dan terima kasih