Sunday, 30 October 2016

COMPONENT DIAGRAM AND DEPLOYMENT DIAGRAM OF HOSPITAL MANAGEMENT SYSTEM

COMPONENT DIAGRAM

• Component Diagram menunjukkan struktur dan hubungan antar komponen software termasuk ketergantungan (dependency) diantara komponen-komponen tersebut.
• Tujuan dari komponen diagram adalah :
  •    Memvisualisasikan komponen dari suatu sistem
  •    Membangun file-file yang dapat dieksekusi dengan menggunakan teknik forward and reverse engineering
  •    Menjelaskan organisasi dan hubungan dari komponen.
• Diagram komponen ini sangat penting karena jika diagram komponen dilewatkan maka aplikasi tidak dapat dilaksanakan secara efisien. Diagram komponen yang dipersiapkan dengan baik juga sangat penting untuk aspek-aspek lain dalam aplikasi misalnya kinerja (performance), perawatan (maintenance) dll.




DEPLOYMENT DIAGRAM
• Diagram deployment menunjukkan tata letak sebuah sistem secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware yang digunakan untuk mengimplementasikan sebuah sistem dan keterhubungan antara komponen-komponen hardware tersebut.


• Penggambaran arsitektur fisik sebuah aplikasi yang melibatkan perangkat baik perangkat lunak maupun perangkat keras- yang biasanya nanti disebut dengan Node- dan menunjukkan bagaimana komponen perangkat lunak dan keras ini bekerja sama akan digambarkan dalam diagram deployment

                           

Sumber :

09-Component Diagram.pptx - elista:. - elearning ista
https://fajarbaskoro.blogspot.co.id/2016/10/component-diagram.html

Sunday, 23 October 2016

ACTIVITY DIAGRAM OF HOSPITAL MANAGEMENT SYSTEM

Activity diagram adalah diagram yang menggambarkan aliran aktivitas dari sebuah sistem perangkat lunak sehingga diagram ini bukan berfokus terhadap apa yang dilakukan aktor melainkan apa saja yang dapat dilakukan suatu sistem. Berikut macam - macam komponen yang ada pada activity diagram :

  • Activity atau state yang berfungsi menunjukkan aktivitas yang dilakukan
  • Initial activity atau initial state yang berfungsi untuk menunjukkan awal aktivitas dimulai.
  • Final activity atau final state yang berfungsi meumjukkan bagian akhir dari aktivitas.
  • Decission yang digunakan untuk memastikkan bahwa aliran object mengalir ke lebih dari satu jalur.
  • Merge berfungsi untuk menggabungkan flow yang dipecah oleh decission.
  • Synchronization 
    •      Fork digunakan untuk memcah behavior menjadi activity atau action paralel
    •      Join digunakan untuk menggabungkan kembali activity yang paralel
  • Swimlanes berfungsi untuk memecah activity diagram menjadi baris dan kolom untuk membagi tanggung jawab obyek - obyek yang melakukan aktivitas.
  • Transition berfungsi untuk menunjukkan aktivitas selanjutnya setelah aktivitas sebelumnya
Sekilas penggunaan decission dan fork tampak mirip namun kenyataannya kedua komponen tersebut memiliki sifat yang berbeda. Decission digunakan untuk memecah aktivitas yang bersifat kondisional ( Ya/Tidak ) sedangkan fork digunakan untuk memcah behaviour menjadi aktivitas yang paralel seperti user dapat memilih menu hapus, tambah, dan edit yang dapat dilakukan secara paralel.

Activity diagram dari management rumah sakit yang kami lanjutkan dari post sebelumnya adalah sebagai berikut :


Sumber :


Terimakasih semoga bermanfaat !

Sunday, 16 October 2016

RESPONSIBILITY AND COLLABORATIONS OF HOSPITAL MANAGEMENT SYSTEM

1. Use Case Diagram

2. Class Diagram

3. CRC


4. Check Realization


 5. Sequence Diagram

Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek-obyek yang melakukan suatu tugas atau aksi tertentu. Berdasarakan cara kerja dan Use case diagram. Dapat dinggambarkan Sequence diagramnya. 





 Berikut dilampiran sistem management hospital dalam bahasa C++

 #include<iostream>  
 #include<iomanip>  
 #include<conio.h>  
 #include<string>  
 #include<windows.h>  
 #include<fstream>  
 #include<process.h>  
 using namespace std;  
 class pat  
 {  
      private:  
           struct address  
           {  
                int house;  
                char street[30];  
                char city[30];  
                char state[30];  
                char country[30];  
           };  
           struct age  
           {  
                int day;  
                int month;  
                int year;  
           };  
           struct patient_info  
           {  
                char name[50];  
                address AD1;  //nested structure implemented  
                age A1;    //nested structure inplemented  
                int martial_status;  
                int reg_no;  
                int bld_group;  
                int sex;  
                char doctor[50];  
                char medrep[1000];  
           }PI[100];  
           int task;  
      protected:  
           void enter_patient_info();  
           void show_patient_detail();  
      public:  
           //void software_detail();  
           void tasks();  
           char answer;  
           char answer1;  
           //char ch;  
           int serial;  
 };  
 class date  
 {  
      private:  
           int date;  
           int month;  
           int year;  
      public:  
           void enter_date();  
           void show_date();  
 };  
 class dob  
 {  
      private:  
           struct dob1  
           {  
                int date;  
                int month;  
                int year;  
                int rem;  
           }DOB11[100];  
      public:  
           void enter_date();  
           void show_date();  
 };  
 int i=0;  
 int rem;  
 int count;  
 int regis=0;  
 int attempt;  
 int temp;  
 int show_count=0;  
 pat A1;      //object declared  
 date D1;     //object declared  
 dob DOB1;     //object declared  
 int main(void)  
 {  
      count=0;  
      cout<<"**********Welcome to....**********"<<"\n";  
      cout<<"***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n";  
      D1.enter_date();  
      A1.tasks();  
 }  
 void pat::tasks()  
 {  
      attempt=0;  
      D1.show_date();  
      cout<<"**********************************"<<"\n";  
      cout<<"***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n";  
      cout<<"*** Hospital Management Tasks ****"<<"\n";  
      cout<<"**********************************"<<"\n";  
      cout<<"  Please select a task to do.. "<<"\n";  
      cout<<"1. Enter a new patient information."<<"\n";  
      cout<<"2. View detail of existing patient."<<"\n";  
      //cout<<"3. View detail about the program ."<<"\n";  
      cout<<"3. Exit from the program."<<"\n";  
      //other function remain  
      cout<<"Enter your task :";  
      scanf("%d", &task);  
      getchar();  
      switch(task)  
      {  
           case 1:  
           {  
                A1.enter_patient_info();  
                break;  
           }  
           case 2:  
           {  
                A1.show_patient_detail();  
                break;  
           }  
           /*case 3:  
           {  
                A1.software_detail();  
                break;  
           }*/  
           case 3:  
           {  
                cout<<"Thank You for using this program !!!"<<"\n";  
                cout<<"     This is the end of program...."<<"\n";  
                cout<<"     Press any key to exit....."<<"\n";  
                getch();  
                exit(0);  
                break;  
           }  
           default:  
           {  
                //printf("%d", task);  
                cout<<"Invalid task."<<"\n";  
                cout<<"Press any key to continue...."<<"\n";  
                getch();  
                A1.tasks();  
           }  
      }  
 }  
 void pat::enter_patient_info()  
 {  
      answer='y';  
      if(count==0)  
      {  
           serial=1;  
      }  
      else  
      {  
           i=serial;  
      }  
      for(i=serial;answer=='y'||answer=='Y';i++)  
      {  
           PI[i].reg_no=i;  
           temp=serial;  
           cout<<"***ENTERING INFORMATION FOR PATIENT SERIAL NUMBER "<<i<<"***"<<"\n";  
           //cin.get(ch);  
           cout<<"Registration Number : "<<PI[i].reg_no<<"\n";  
           cout<<"Enter the name of patient :"<<"\n";  
           gets(PI[i].name);  
           cout<<"Sex (1-Male 2-Female) :"<<"\n";  
           scanf("%d", &PI[i].sex);  
           getchar();  
           while(PI[i].sex!=1&&PI[i].sex!=2)  
           {  
                cout<<"Invalid input for sex of patient!!!"<<"\n";  
                cout<<"Sex (1-Male 2-Female) :"<<"\n";  
                scanf("%d", &PI[i].sex);  
                getchar();  
                //break;  
           }  
           cout<<"***ENTERING ADDRESS**"<<"\n";  
           cout<<"House number :"<<"\n";  
           cin>>PI[i].AD1.house;  
           getchar();  
           while(PI[i].AD1.house<=0)  
           {  
                cout<<"Invalid input for house number ."<<"\n";  
                cout<<"Again enter the house number: "<<"\n";  
                cin>>PI[i].AD1.house;  
                //printf("%d", PI[i].AD1.house);  
                getchar();  
           }  
           //cin.get(ch);  
           cout<<"Street :"<<"\n";  
           cin.getline(PI[i].AD1.street,30);  
           cout<<"City :"<<"\n";  
           cin.getline(PI[i].AD1.city,30);  
           cout<<"State :"<<"\n";  
           cin.getline(PI[i].AD1.state,30);  
           cout<<"Country :"<<"\n";  
           cin.getline(PI[i].AD1.country,30);  
           DOB1.enter_date();  
           //to calculate age  
           cout<<"Martial status(1-Married,2-Not Married ):"<<"\n";  
           cin>>PI[i].martial_status;  
           getchar();  
           while(PI[i].martial_status<1||PI[i].martial_status>2)  
           {  
                cout<<"Invalid input for martial status ."<<"\n";  
                cout<<"Enter a valid martial status :"<<"\n";  
                cin>>PI[i].martial_status;  
                getchar();  
           }  
           cout<<"Blood group :"<<"\n";  
           cout<<"1. A+ "<<"\n";  
           cout<<"2. A- "<<"\n";  
           cout<<"3. B+ "<<"\n";  
           cout<<"4. B- "<<"\n";  
           cout<<"5. AB+ "<<"\n";  
           cout<<"6. AB- "<<"\n";  
           cout<<"7. O+ "<<"\n";  
           cout<<"8. O- "<<"\n";  
           cout<<"Enter :"<<"\n";  
           cin>>PI[i].bld_group;  
           getchar();  
           switch(PI[i].bld_group)  
           {  
                case 1:  
                case 2:  
                case 3:  
                case 4:  
                case 5:  
                case 6:  
                case 7:  
                case 8:  
                {  
                  break;  
                }  
                default:  
                {  
                     while(PI[i].bld_group!=1&&PI[i].bld_group!=2&&PI[i].bld_group!=3&&PI[i].bld_group!=4&&PI[i].bld_group!=5&&PI[i].bld_group!=6&&PI[i].bld_group!=7&&PI[i].bld_group!=8)  
                     {  
                          cout<<"Invalid input !"<<"\n";  
                          cout<<"Blood Group :"<<"\n";  
                          cin>>PI[i].bld_group;  
                          getchar();  
                     }  
                     break;  
                }  
           }  
           //cin.get(ch);  
           cout<<"Enter medical report for patient: "<<"\n";  
           gets(PI[i].medrep);  
           printf("Enter doctor name: \n");  
           gets(PI[i].doctor);  
           cout<<"Enter another patient? (Y/N) "<<"\n";  
           cin>>answer;  
           getchar();  
           count++;  
           serial++;  
           regis++;  
      }  
      A1.tasks();  
 }  
 void dob::enter_date()  
 {  
      cout<<"Date of birth"<<"\n";  
      cout<<"Year :";  
      cin>>DOB11[temp].year;  
      getchar();  
      if(DOB11[temp].year<=0||DOB11[temp].year>10000)  
      {  
           do  
           {  
                cout<<"Invalid input for year !"<<"\n";  
                cout<<"Please enter the year correctly :"<<"\n";  
                cin>>DOB11[temp].year;  
                getchar();  
           }while(DOB11[temp].year<0||DOB11[temp].year>10000);  
      }  
      cout<<"Month :";  
      cin>>DOB11[temp].month;  
      getchar();  
      if(DOB11[temp].month<=0||DOB11[temp].month>12)  
      {  
           do  
           {  
                cout<<"Invalid input for month !"<<"\n";  
                cout<<"Again enter the month :"<<"\n";  
                cin>>DOB11[temp].month;  
                getchar();  
           }while(DOB11[temp].month<0||DOB11[temp].month>12);  
      }  
      cout<<"Date :";  
      switch(DOB11[temp].month)  
      {  
           case 1:  
           case 3:  
           case 5:  
           case 7:  
           case 8:  
           case 10:  
           case 12:  
           {  
                cin>>DOB11[temp].date;  
                getchar();  
                while(DOB11[temp].date<1||DOB11[temp].date>31)  
                {  
                     cout<<"Invalid date !"<<"\n";  
                     cout<<"Again enter the date :"<<"\n";  
                     cin>>DOB11[temp].date;  
                     getchar();  
                }  
                break;  
           }  
           case 2:  
           {  
                cin>>DOB11[temp].date;  
                getchar();  
                if(DOB11[temp].year%4==0)  
                {  
                     while(DOB11[temp].date<0||DOB11[temp].date>29)   
                     //for leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>DOB11[temp].date;  
                          getchar();  
                     }  
                }  
                else  
                {  
                     while(DOB11[temp].date<0||DOB11[temp].date>28)   
                     //for non-leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>DOB11[temp].date;  
                          getchar();  
                     }  
                }  
                break;  
           }  
           default:  
           {  
                     cin>>DOB11[temp].date;  
                     getchar();  
                     while(DOB11[temp].date<1||DOB11[temp].date>30)  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>DOB11[temp].date;  
                          getchar();  
                     }  
                     break;  
           }  
      }  
      //end of switch  
 }  
 void date::enter_date()  
 {  
      cout<<"Enter the current date ..."<<"\n";  
      cout<<"Year :";  
      cin>>year;  
      getchar();  
      if(year<=0||year>10000)  
      {  
           do  
           {  
                cout<<"Invalid input for year !"<<"\n";  
                cout<<"Please enter the year correctly :"<<"\n";  
                cin>>year;  
                getchar();  
           }while(year<0||year>10000);  
      }  
      cout<<"Month :";  
      cin>>month;  
      getchar();  
      if(month<=0||month>12)  
      {  
           do  
           {  
                cout<<"Invalid input for month !"<<"\n";  
                cout<<"Again enter the month :"<<"\n";  
                cin>>month;  
                getchar();  
           }while(month<0||month>12);  
      }  
      cout<<"Date :";  
      switch(month)  
      {  
           case 1:  
           case 3:  
           case 5:  
           case 7:  
           case 8:  
           case 10:  
           case 12:  
           {  
                cin>>date;  
                while(date<1||date>31)  
                {  
                     cout<<"Invalid date !"<<"\n";  
                     cout<<"Again enter the date :"<<"\n";  
                     cin>>date;  
                     getchar();  
                }  
                break;  
           }  
           case 2:  
           {  
                cin>>date;  
                getchar();  
                if(year%4==0)  
                {  
                     while(date<0||date>29) //for leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>date;  
                          getchar();  
                     }  
                }  
                else  
                {  
                     while(date<0||date>28) //for non-leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>date;  
                          getchar();  
                     }  
                }  
                break;  
           }  
           default:  
           {  
                cin>>date;  
                getchar();  
                while(date<1||date>30)  
                {  
                     cout<<"Invalid date !"<<"\n";  
                     cout<<"Again enter the date :"<<"\n";  
                     cin>>date;  
                     getchar();  
                }  
                break;  
           }  
      }          //end of switch  
 }  
 void date::show_date() //remove the goto ststements in this function  
 {  
      cout<<"Hello....It's ";  
      cout<<date;  
      rem=date%10;  
      switch(date)  
      {  
           case 11:  
           case 12:  
           case 13:  
           case 14:  
           case 15:  
           case 16:  
           case 17:  
           case 18:  
           case 19:  
           case 20:  
           {  
                cout<<"th ";  
                goto over;  
           }  
      }  
      switch(rem)  
      {  
           case 1:  
           {  
                cout<<"st ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"nd ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"rd ";  
                break;  
           }  
           default:  
           {  
                cout<<"th ";  
                break;  
           }  
      }  
      over:  
      switch(month)  
      {  
           case 1:  
           {  
                cout<<"January , ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"February , ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"March , ";  
                break;  
           }  
           case 4:  
           {  
                cout<<"April , ";  
                break;  
           }  
           case 5:  
           {  
                cout<<"May , ";  
                break;  
           }  
           case 6:  
           {  
                cout<<"June , ";  
                break;  
           }  
           case 7:  
           {  
                cout<<"July , ";  
                break;  
           }  
           case 8:  
           {  
                cout<<"August , ";  
                break;  
           }  
           case 9:  
           {  
                cout<<"September , ";  
                break;  
           }  
           case 10:  
           {  
                cout<<"October , ";  
                break;  
           }  
           case 11:  
           {  
                cout<<"November , ";  
                break;  
           }  
           case 12:  
           {  
                cout<<"December , ";  
                break;  
           }  
      }  
      cout<<year<<"\n";  
 }  
 void pat::show_patient_detail()  
 {  
      do  
      {  
           if(count==0)  
           {  
                cout<<"Database is empty !!!"<<"\n";  
                cout<<"Press any key to exit to main task menu..."<<"\n";  
                getch();  
                A1.tasks();  
           }  
           cout<<"Enter registration number :"<<"\n";  
           cin>>regis;  
           getchar();  
           //cin.get(ch);  
           show_count++;  
           if(regis>0 && regis<serial)  
           {  
                cout<<"***INFORMATION FOR PATIENT REGISTRATION NUMBER"<<regis<<"***\n";  
                cout<<"Name      : "<<PI[regis].name<<"\n";  
                cout<<"Sex      : ";  
                if(PI[regis].sex==1)  
                {  
                     cout<<"Male "<<"\n";  
                }  
                if(PI[regis].sex==2)  
                {  
                     cout<<"Female "<<"\n";  
                }  
                cout<<"Blood Group  : ";  
                switch(PI[regis].bld_group)  
                {  
                     case 1:  
                     {  
                       cout<<"A+";  
                       break;  
                     }  
                     case 2:  
                     {  
                       cout<<"A-";  
                       break;  
                     }  
                     case 3:  
                     {  
                       cout<<"B+";  
                       break;  
                     }  
                     case 4:  
                     {  
                       cout<<"B-";  
                       break;  
                     }  
                     case 5:  
                     {  
                    cout<<"AB+";  
                    break;  
                     }  
                     case 6:  
                     {  
                    cout<<"AB-";  
                    break;  
                     }  
                     case 7:  
                     {  
                    cout<<"O+";  
                    break;  
                     }  
                     case 8:  
                     {  
                    cout<<"O-";  
                    break;  
                     }  
                }  
                //printf("\n")  
                cout<<"\nDate of birth : ";  
                DOB1.show_date();  
                cout<<"Martial Status : ";  
                if(PI[i].martial_status==1)  
                {  
                     cout<<"Married "<<"\n";  
                }  
                else  
                {  
                     cout<<"Not married "<<"\n";  
                }  
                cout<<"**ADDRESS**";  
                cout<<"\nHouse no.   : "<<PI[regis].AD1.house;  
                cout<<"\nStreet     : "<<PI[regis].AD1.street;  
                cout<<"\nCity      : "<<PI[regis].AD1.city;  
                cout<<"\nState     : "<<PI[regis].AD1.state;  
                cout<<"\nCountry    : "<<PI[regis].AD1.country;  
                cout<<"\n**MEDICAL**";  
                cout<<"\nMedical Report : "<<PI[regis].medrep;  
                cout<<"\nDoctor     : "<<PI[regis].doctor;                 
           }  
           else  
           {  
                attempt++;  
                if(attempt==3)  
                {  
                     cout<<"You have entered wrong registration number 3 times ."<<"\n";  
                     cout<<"Access Denied!!! "<<"\n";  
                     cout<<"Please try again later. "<<"\n";  
                     cout<<"Press any key to exit to main task menu..."<<"\n";  
                     getch();  
                     A1.tasks();  
                }  
                cout<<"Sorry, the registration number is invalid ."<<"\n";  
                cout<<"Press any key to continue...."<<"\n";  
                getch();  
                A1.show_patient_detail();  
           }  
           cout<<"\nWant to see information of another patient? (Y/N): "<<"\n";  
           cin>>answer1;  
      }while(answer1=='y'||answer1=='Y');  
      A1.tasks();  
 }  
 void dob::show_date()  
 {  
      cout<<DOB11[regis].date;  
      rem=DOB11[regis].date%10;  
      switch(DOB11[regis].date)  
      {  
           case 11:  
           case 12:  
           case 13:  
           case 14:  
           case 15:  
           case 16:  
           case 17:  
           case 18:  
           case 19:  
           case 20:  
           {  
                cout<<"th ";  
                goto over;  
           }  
      }  
      switch(rem)  
      {  
           case 1:  
           {  
                cout<<"st ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"nd ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"rd ";  
                break;  
           }  
           default:  
           {  
                cout<<"th ";  
                break;  
           }  
      }  
      over:  
      switch(DOB11[regis].month)  
      {  
           case 1:  
           {  
                cout<<"January , ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"February , ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"March , ";  
                break;  
           }  
           case 4:  
           {  
                cout<<"April , ";  
                break;  
           }  
           case 5:  
           {  
                cout<<"May , ";  
                break;  
           }  
           case 6:  
           {  
                cout<<"June , ";  
                break;  
           }  
           case 7:  
           {  
                cout<<"July , ";  
                break;  
           }  
           case 8:  
           {  
                cout<<"August , ";  
                break;  
           }  
           case 9:  
           {  
                cout<<"September , ";  
                break;  
           }  
           case 10:  
           {  
                cout<<"October , ";  
                break;  
           }  
           case 11:  
           {  
                cout<<"November , ";  
                break;  
           }  
           case 12:  
           {  
                cout<<"December , ";  
                break;  
           }  
      }  
      cout<<DOB11[regis].year<<"\n";  
 }  
 /*void all::software_detail()  
 {  
      //clrscr();  
      cout<<"***SOFTWARE DETAILS***\n";  
      cout<<"     Developer        : Mustafizur Rohman "<<"\n";  
      cout<<"     Programming Language   : C++ "<<"\n";  
      cout<<"     Aim           : Simulation of the software used in Hospital"<<"\n";  
      cout<<"     Hope you like it..."<<"\n";  
      cout<<"     Send your comments to : mustafizur_04@sify.com ."<<"\n";  
      cout<<"     Thank You for trying this program. "<<"\n";  
      cout<<"Press any key to return to the main task menu......."<<"\n";  
      getch();  
      A1.tasks();  
 }*/  

Source :

Supported by codeformatter

Terimakasih semoga bermanfaat !

Sunday, 2 October 2016

CRC & CLASS DIAGRAM CREDIT CARD PROCESSING INDUSTRY BY YOUnite Enterprise

Langkah - langkah bidang analisis dalam menggunakan algoritma Object Oriented Analisys yaitu :
1. Membuat Use Case Modelling Diagram
2. Membuat CRC (Class Responsibility Collaboration)
3. Membuat Class Diagram
4. Membuat Check Realization

1. Use Case Modelling Diagram

Dalam pembuatan Use Case Modelling Diagram pada studi kasus ini telah saya dokumentasikan pada entri sebelumnya yang dapat kalian akses disini. Maka pada kesempatan kali ini saya akan menuju langkah selanjutnya yaitu membuat CRC dan Class Diagram dari Credit Card Processing Industry By YOUnite Enterprise.

2. CRC - Class Responsibility Collaboration

Sebuah teknik untuk mengecek adanya interaksi antar object.


Keterangan :

Kolom sebelah kiri pada tabel diatas berisi tanggung jawab dan tabel sebelah kanan berisi kelas yang melaksanakan tanggung jawab tersebut. Kemudian akan didapatkan satu set kelas dan tanggung jawabnya serta kelas lain yang berhubungan dengan kelas tersebut.

Berikut CRC dari CREDIT CARD PROCESSING INDUSTRY BY YOUnite Enterprise :





3. Class Diagram

Class Diagram adalah diagram yang menggambarkan struktur sistem dari segi pendefinisian kelas yang akan dibuat untuk membangun sistem.

Berikut Class Diagram dari CREDIT CARD PROCESSING INDUSTRY BY YOUnite Enterprise :



4. Check Realization

Check Realization merupakan sebuah teknik dalam merealisasikan tahap awal analisa menggunakan pendekatan OOT yaitu use case modelling diagram.



Berikut Check Realization dari CREDIT CARD PROCESSING INDUSTRY BY YOUnite Enterprise:



Referensi dan Artikel terkait :



Terimakasih semoga bermanfaat.

Thursday, 22 September 2016

USE CASE CREDIT CARD PROCESSING INDUSTRY BY YOUnite Enterprise





TARGET PEMASARAN

Kasus ini mendiskusikan peluang dari penawaran pemasaran yang ditawarkan kepada pelanggan berdasarkan pada informasi identitas personal yang mereka pilih untuk dipublikasi dan juga berdasarkan pada preferensi mereka terhadap agen dan penyedia layanan. Data tersebut divalidasi oleh riwayat belanja pelanggan dan juga hak izin pelanggan.

Dengan menggunakan layanan YOUnite, pemegang kartu kredit memiliki kemampuan untuk menyebarkan informasi identitas personal dan pilihan mereka kepada agen dan atau penyedia layanan yang memiliki hubungan dekat terhadap mereka.

Dengan mengaplikasikan YOUnite Enterprise, saat ini visa dapat membuat aliran pendapatan baru dengan cara menjual fokus data pemasaran kepada banyak agen dan penyedia layanan ketika pada saat yang sama visa juga dapat menyediakan layanan baru yang berkualitas kepada penggguna credit card tersebut.


IDENTIFIKASI ATAU PENGATURAN BERDASARKAN TRANSAKSI PENIPUAN.

Kasus ini membahas tentang peluang sebuah visa atau YOUnite untuk diaktifkannya layanan deteksi penipuan berdasarkan pada informasi personal YOUnite yang disebar dan pengaturannya. Secara spesifik, hal ini diselesaikan melalui nomor telfon yang dihubungkan dengan Visa yang tersedia di lokasi pertokoan. Solusi deteksi penipuan ini dapat diperpanjang dengan layanan berbasis lokasi di toko atau agen yang bertransaksi menggunakan GPS dan atau sel tower terdekat atau metode lokasi panggilan terakhir dari penentuan lokasi pelanggan yang sebenarnya pada saat dilakukan transaksi.

Dengan mengintegrasikan YOUnite Enterprise kedalam sistem penipuan visa, visa sekarang akan memiliki kemampuan untuk menyempurnakan sistem deteksi dengan memiliki preferensi bersama dan informasi identitas pribadi tersedia.
Selain itu dikarenakan YOUnite Enterprise dapat dihubungkan dengan berbagai perangkat transaksi dan lokasi langsung dari pengguna kartu kredit dapat ditentukan lalu dengan demikian memvalidasi transaksi dapat dilakukan ketika pelanggan berada di toko.

MEMVALIDASIKAN PRA-OTORISASI MELALUI LAYANAN SMS/EMAIL

Kasus ini menawarkan pendekatan alternatif untuk deteksi penipuan berdasarkan pada informasi identitas pribadi dan preferensi. Dalam kasus ini, YOUnite Enterprise dan YOUnite Mobile menawarkan visa kesempatan untuk memerangi penipuan pada transaksi kartu kredit dengan cara melakukan validasi pra-otorisasi melalui sms atau email.

MANAJEMEN IDENTITAS FEDERASI UNTUK TRANSAKSI KEUANGAN

Kasus ini membahas masalah yang terkait dengan pelanggan yang harus menyediakan beberapa pasang user id, password untuk mengakses secara online sistem dengan tujuan mengatur atau menyelesaikan transaksi keuangan. Dalam kasus ini YOUnite Enterprise menawarkan visa kemampuan agar dapat menyimpan user id atau password pelanggan dalam profil YOUnite untuk tujuan tertentu dalam mengakses toko yang menggunakan visa, tetapi untuk kasus ini terfokus pada yang terlebih dahulu.

Referensi :
http://www.youniteinc.com/docs/use_cases_credit_cards.pdf

Monday, 30 May 2016

[TUTORIAL] PPDB ONLINE USING FRAMEWORK CODE IGNITER

Pada kesempatan kali ini saya akan menjelaskan mengenai sistem website ppdb online yang saya dan kelompok kerjakan sebagai tugas final project mata kuliah pemrograman web.

1. Pertama tama mari kita tentukan rancangan basis data yang kita gunakan dengan membuat user
    diagram dan pdm nya.
    - user diagram
   

   - pdm
     

2. Setelah kita mendapat gambaran mengenai basis datanya, realisasikan menggunakan phpMyAdmin 
    yang terdapat pada cPanel ketika anda telah login pada website penyedia hosting anda ( dalam hal 
    ini saya menggunakan rencong.net )
    

3. Setelah anda masuk pada halaman phpMyAdmin, silahkan buat tabel dan isi dengan data data 
    yang anda inginkan seperti berikut ini 
    

4. Seperti yang pernah saya jelaskan di post saya sebelumnya bahwa framework CodeIgniter dibagi menjadi 3 bagian yaitu Controller, Model, dan Views

Dalam struktur Model biasanya terdapat perintah query yang akan dijalankan pada database seperti select, update, delete, dll. Berikut merupakan isi dari folder model


Controller berfungsi sebagai penghubung antara struktur data yang didapatkan model dan apa yang akan ditampilkan oleh view, maka itu controller menyediakan variabel yang akan ditampilkan pada view dan juga menghubungkan model dengan databasenya (dalam hal ini phpmyadmin). Disini diharapkan tidak terdapat proses perhitungan karna akan mengganggu fungsi utama dari controller itu sendiri. Berikut ini merupakan isi dari folder controller


View adalah struktur konsep yang kontak langsung dengan apa yang ingin ditampilkan pada web browser user dimana dalam hal ini HTML, CSS, Javascript, dsb. Sama seperti controllers, pada view juga diharapkan untuk tidak mengandung proses perhitungan / logika karna view telah memiliki tugasnya sendiri.



5. Maka ketika diakses di web dengan url www.ppdb.ourtrav.com akan muncul tampilan utama website yaitu page beranda seperti berikut


Halaman ini adalah halaman utama yang berfungsi untuk mendeskripsikan kepada pengunjung mengenai latar belakang sekolah yang dimaksud dimana dalam hal ini MDI Amanatul Ummah. 

Lalu terdapat page hasil seleksi yang bertujuan untuk menampilkan daftar siswa yang lolos tahap seleksi.


Kemudian terdapat page pendaftaran dimana bertujuan untuk mempersilahkan calon peserta melakukan pendaftaran.


Jika ada page pendaftaran maka pasti terdapat page login yang bertujuan untuk admin melakukan kelola website. Halaman ini dapat diakses dari url www.ppdb.ourtrav.com/psb-admin


Terimakasih semoga bermanfaat !










Friday, 13 May 2016

HOW TO ADD CRUD USING CODEIGNITER ON YOUR DATABASE

1. Sebelumnya mari kita sempurnakan database kita pada tutorial sebelumnya dengan menambahkan kolom id pada tabel yang kita gunakan di CodeIgniter ( dalam hal ini tabel mahasiswa ). Jangan lupa set kolom id menjadi Auto Increment dengan mencentang kolom A_I dan jadikan primary key dengan cara memilih primary key pada tabel Index

2. Kemudian download Grocery CRUD disini

2. Setelah download berhasil, silahkan extract all files lalu pindahkan folder application dan assets ke folder xampp/htdocs/CodeIgniter ( sudah saya jelaskan pada tutorial saya sebelumnya ).

3. Lalu buka file Examples.php yang terletak pada folder application/controllers.

4. Silahkan edit fungsi offices_management dan offices_management2




edit set_table, set_subject dan columns seperti dibawah ini sesuaikan dengan database anda pada phpMyAdmin



5. Setelah itu silahkan buka file config.php pada application/config kemudian isi base url dengan url anda ketika mengakses CodeIgniter pada browser ( ex. $config['base_url'] = 'http://localhost:58500/CodeIgniter'; )

6. Kemudian silahkan buka file example.php pada folder application/views, dan ubah salah satu line pada body


menjadi seperti berikut



6. Sekarang silahkan akses pada web browser anda, jika berhasil maka akan muncul tampilan seperti berikut


Semoga bermanfaat, Terimakasih !