UNIVERSITY ENROLMENT - amutiara.files.wordpress.com · pilihan setiap mahasiswa dibatasi oleh...

25
TUGAS PERANCANGAN & ANALISIS BERBASIS KOMPUTER UNIVERSITY ENROLMENT Oleh: YOHANNES. S. F. ESA RUDY FANNY FERDINAND GANDHIE TANJUNG W

Transcript of UNIVERSITY ENROLMENT - amutiara.files.wordpress.com · pilihan setiap mahasiswa dibatasi oleh...

TUGAS

PERANCANGAN & ANALISIS BERBASIS KOMPUTER

UNIVERSITY ENROLMENT

Oleh: YOHANNES. S. F. ESA

RUDY FANNY FERDINAND

GANDHIE TANJUNG W

University Enrolment / Pendaftaran mahasiswa

University Enrolment – Analysis

Find Entity Classes

Draw Use Case Diagram Find Attributes

Draw Associations and Aggregations

Gambar 1

Gambar 4

Tabel 1Problem Statement

Draw

Object Diagram

Draw Sequence Diagram

Find Operations Draw Package Diagram

Gambar 7

Gambar 2 Gambar 3

Gambar 5

Gambar 6

University Enrolment Analysis

University Enrolment – Design Show Interface On Component diagram Draw package / Component Dependencies Draw Structural draw behavioral Collaboration Collaboration

MAp Aggregation To ODB Design Draw activity Collaboration

MAp Aggregation ToODB Design Design Accessor Method Map Aggregation To RDB Design Eliminate Mixed-Instance Cohesion

Gambar 8

Gambar 16 - 19

Gambar 20 - 21

Gambar 15

Gambar 10 Gambar 11

Gambar 13

Gambar 12

Gambar 14

Gambar 9

Problem Statement / Permasalahan

Perguruan tinggi atau universitas biasanya menawarkan beberapa

undergraduate sebagai mahasiswa full-time dan part-time. Struktur pendidikan dari

sebuah universitas terdiri dari beberapa fakultas. Fakultas-fakultas tersebut terdiri dari

beberapa jurusan. Setiap jurusan mengurus masing-masing tingkatan, setiap tingkatan

mencakup beberapa matakuliah dari jurusan lain. Pada setiap universitas setiap

mahasiswa diberi kebebasan untuk memilih matakuliah sesuai dengan tingkatannya.

Freksibilitas dalam memilih matakuliah harus disesuaikan dengan system

pendaftaran mahasiswa. Matakuliah yang dikhususkan tidakboleh bertentangan dengan

aturan tingkatan, seperti struktur dari mata kuliah prasyarat sehingga mahasiswa dapat

memenuhi persyaratan untuk matakuliah wajib pada setiap tingkatannya. Biasanya

pilihan setiap mahasiswa dibatasi oleh jadwal, kapasitas kelas, dan lain –lain.

Freksibilitas dalam memilih yang ditawarkan oleh universitas merupakan

alasan utama untuk meningkatkan jumlah mahasiswa. Untuk mempertahankan tradisi,

system pendaftaran sekarang yang masih manual akan diganti dengan solusi software

yang baru. Namun persiapan untuk paket software belum sukses. System pendaftaran

mahasiswa cukup unik untuk menjamin keabsahan pengembangan kedalam.

System diperlukan dalam aktivitas sebelum pendaftaran dan menangani

prosedur pendaftaran. Aktivitas sebelim pendaftaran harus meliputi hasil ujian akhir

semester dan bersamaan dengan pengumuman pendaftaran. Selama pendaftaran, system

harus menerima program studi yang diusulkan mahasiswa dan menesahkannya sebagai

persyaratan, perselisihan waktu, kapasitas kelas, persetujuan khusus, dan lain-lain.

Pemecahan beberapa masalah bias dikonsultasikan dengan pembimbing akademis atau

penanggungjawab atas matakuliah yang bersangkutan.

Find Entity Classes / Menetukan Entiti Kelas

Berdasarkan keperluan dari system pendaftaran mahasiswa dan identifikasi

kelas :

1. Setiap tingkatan universitas memiliki beberapa matakuliah wajib dan matakuliah

pilihan.

2. masing-masing matakuliah diberikan sesuai tingkatan dan memiliki nilai SKS.

3. sebuah matakuliah dapat menjadi bagian dari beberapa tingkatan.

4. Untuk memenuhi kelulusan sebuah tingkatan, masing-masing tingkatan memiliki

minimum total SKS.

5. Mahasiswa dapat mengkombinasikan matakuliah yang ditawarkan yang sesuai

dengan kebutuhan dan mengarahkan sesuai tingkatan mahasiswa tersebut

terdaftar.

Relevant Classes Fuzzy Classes

Course Compulsory Course

Degree Elective Course

Student Study Program

Course Offering

Tabel.1

Find Attributes / Menentukan Atribut

Mengacu pada entity kelas dan berdasarkan keperluan dari dokumentasi :

1. Sebuah pilihan mahasiswa bias tidak berlaku karena selisih jadwal dank arena

jumlah mahasiswa yang mendaftarkan matakuliah tersebut sudah memenuhi

batas.

2. Program study yang diajukan mahasiswa dimasukkan kedalam system

pendaftaran. System akan memeriksa kekonsistenan dari program study dan

memberikan laporan bila bermasalah. Masalah tersebut dapat dipecahkan dengan

bantuan pembimbing akademik. Program study yang akhirnya telah dipilih

dikirimkan kepada kepala jurusan dan mengirimkan kebagian registrasi.

Degree Course

<<PK>> student_id : string

total_kredit_point : integer

<<PK>> course_code : string

<<CK>> course_name : string

credit_point : integer

Study Program

Year : date

Semester : integer

Student CourseOffering

<<PK>> student_id : string

student_name : string

<<PK>> year : date

<<CK>> semester : integer

enrolment_quato : integer

Gambar 1

Menggambarkan Assosiasi dan Penggabungan (Draw Associations and

Aggegations).

Mengacu pada entity kelas dan atribut yang dimiliki :

1. Catatan akademik mahasiswa harus tersedia. Catatan tersebut bias terdiri dari

informasi mengenai peringkat mahasiswa dalam masing-masing matakuliah

dimana mahasiswa tersebut terdaftar (dan tidak dikeluarkan tanpa finalty).

2. Masing-masing matakuliah memiliki biaya. Tiap matakuliah memiliki biaya yangt

berbeda tiap semesternya.

* Has_study 0….* takes takes_crsoff * 0….* 0….* 0….1

Student

<<PK>> student_id : string student_name : string current_fees : money

Course

<<PK>> course_code : string <<CK>> course_name : string

credit_point : integer

CourseOffering

<<PK>> year : date <<CK>> semester : integer enrolment_quato : integer

AcademicRecord

Course_code : string Year : date

Semester : integer Grade : string

AcademicInCharge

Gambar 2.

Menggambarkan Objek diagram (Draw Object Diagram)

Menggambarkan beberapa objek dalam bentuk model kelas :

Don Donaldson : student

COMP224: AcademicRecord

COMP326: AcademicRecord

COPP225: Course

COPP325: Course

2000SEM2: CourseOffering

RickRichards: AcademinInCharge

Gambar 3.

Menggambarkan Use Case (Draw Use Case)

Provide Examination Results <<extend>> student office

student Provide Enrolment Result

<<include>>

Enter Program Of Study

data entry Validate Program Of Study person Registrar Office

Gambar 4.

Aktor yang berperan dalam system pendaftaran mahasiswa, antara lain,

student office, data entry, dan registra office.

Menggambarkan Sequence Diaram ( Draw Sequnce Diagram)

: Program EntryWindow

aCourse : Course

aStudent : Student

aCourseOffering : CourseOffering

: Data Entry person Enter Program of Study Use case Add(std,crs,sem) areYouValid(out s_check) [s_check=”no”] destroy areYouOpen(out c_check) *areYouOpen(out c_check) [c_check=”no”] destroy addCourse(crsOID) addStudent(stdOID) addStudent(stdOID)

Gambar 5.

Data entry akan memasukkan data mahasiswa, validasi yang pertama untuk

mengetahui apakah mahasiswa tersebut sudah membayar biaya kuliah, jika No maka

pendaftaran tidak dapat diproses lebih lanjut, sedangkan bila Ya data dapat diproses lebih

lanjut. Validasi kedua akan memeriksa apakah matakuliah yang akan diambil masih

terbuka, bila tidak proses tidak dapat dilanjutkan , sebaliknya jika Ya mahasiswa tersebut

terdaftar untuk matakuliah tersebut.

Menentukan Operasi ( Fine Operation)

Atribut memiliki scope private dalam hal ini dilambangkan dengan ,

sedangkan attribute bersifat public dilambangkan dengan .

0….n

0..n Course

<<PK>>course_code : string <<CK>>course_name : string credits_point : integer crs_off: set<CourseOffering>

are YouOpen(out c_check)

CourseOffering year :Date semester : integer enrolment_quato : integer std : list<student> Crs : Course

are YouOpen(out c_check) add Student(stdOID)

Gambar 6.

Menggambarkan Paket Diagram ( Draw Package Diagram) Pada gambar 7 ditunjukkan 3 paket dan dependency relationship antara marking, timetable, dan enrolment.

Marking Enrolment

Timetable

Gambar 7.

Aspek Struktur Kolaborasi

Mengacu pada Drtaw Associations and Aggregation dan Draw Sequence

Diagram. Kita mempertimbangkan kasus pengggunaan ‘ masuk Program Belajar’. Kasus

penggunaan menangani pendaftaran dari para mahasiswa dalam sesaji kursus.

Untuk kepentingan contoh ini, kita berasumsi bahwa cek kasus ( sebelum

seorang siswa dapat didaftar) jika siswa membayar pembayaran dan jika siswa membuat

puas prasyarat.

Tugas kita adalah untuk menyampaikan diagram kelas didalam gambar 2

untuk model aspek yang struktur dari kolaborasi yang penting bagi scenario yang telah

dijelaskan.

Untuk memecahkan masalah kita harus mempertimbangkan operasi dan

atribut tambahan didalam kelas yang diperlukan untuk mendukung kolaborasi. Kita harus

merinci diagram kelas produksi selama analisa. Diagram urutan untuk kasus penggunaan

yang dikembangkan selama analisa menyediaakn bimbingan ( gambar 6 ).

Sepertiditunjukkan dalam gambar 6,1, beberapa kelas ditambahkan ke

diagram kelas. Kelas batas ProgramEntryWindow diperoleh dari diagram urutan dalam

Gambar 6. PrereqCourse diperlukan untuk menetapkan suatu berbagi hubungan prasyarat

antar kursus. Nilai kelas ditambahkan untuk kelengkapan, tetapi ini tidaklah ingin

digunakan oleh kasus penggunaan dalam pembahasan. Niali yang lampau tentang para

siswa disimpan di Academicrocord. Nilai berisi tanda dan menilai bahwa seorang siswa

mencapai didalam sesaji kursus yang sekarang ini diambil.

Atribut di kelas yang sebelumnya belum berubah. Kelas yang baru berisi

perlengkapan harus aman. Penambahan yang utama di diagram kelas yang besar adalh

definisi operasi. Operasi adalah secara langsung diperoleh dari diagram kolaborasi untuk

aspek tingkah laku dari kolaborasi ( Lihat seksi berikut).

Timetable

RoomUSP RoomAllocEXE ClassUSP

Gambar 8.

RoomAllocEXE

Allocate

Reserve

RoomUSP

ClassUSP

Gambar 9.

AcademicRecord

Course_code : string Year : date Semester : integer Grade : string PrereqsSatisfied(out satisfied

* required_for required_by * 0…* * 11

<<Boundary>> ProgramEntryWindow

Add(std, crs, sem) Destroy( )

Prereqcourse

Prereq_grade : String

Prereq(Out crsOID)

Student <<PK>>student_id : String student_name : string current_fees : Money areYouValid(out s_check) addCourse

CourseOffering

Year : Date Semester : integer Enrolment_quato : integer ArYouOpen(out c_check) AddStudent(stdOID)

Course

<<PK>>course_code : string <<CK>>course_name : string credit_points : integer areYouOpen(out c_check) prereq(out crs) addStudent(stdOID) *

0…*

takes

Grade

Grade :string Mark :Set<Number>

Gambar10

Aspek tingkah laku tentang kolaborasi

Mengacu pada Draw Associations and Aggregations dan Draw Sequence

Diagarm. Tugas kami adalh untuk menciptakan suatu diagram kolaborasi untuk aspek

tingkah laku dari kolaborasi seperti ditetapkan dalam Draw Assosoations and

Aggregations. Diagarm kolaborsi suatu pengembangan dari diagram 6.

Data Entry Person

[c check=”no”]destroy

[s check=”no”]destroyFeesPaid(out paid)

: Program Entry Window

AStudent : Student

AddCourse(crsoffOID

AreYouOpen(out c check) PrereqsSatisfied(out satisfied)

AddStudent(stdOID) Prereq(out crs)

ACourse: Course

*prereq(out crsOID)

AreYouOpen(out c check)

ACourseOffering : Course Offering

AnAcademicRecord AcademicRecord

AreYouValid(crs,out s check)Add(std,crs,sem

APrereqCourse

PrereqCourse

Gambar 11.

Perwujudan dari operasi

Mengacu pada Draw Sequence Diagaram, gambar 10 dan 11.

Mempertimbangkan pesan addstudent ( std OID) di dalam gambar 11.

Tugas kita adalah untuk merancang suatu diagram aktivitas untuk merealisir

operasi Courseoffering.addstudent. Operasi akan menambahkan seorang siswa kepada

atribut Courseoffering.Std. Atribut diketik sebagai template list <Student>(ganmbar 5 ).

Sebelum siswa ditambahkan ke kursus yang menawarkan, system

melaksanakan suatu cek untuk menemukan apakah menawarkan kursus masih terbuka.

Ini adalah perlu sungguhpun cek telah dilakukan tepat sebelum mengeluarkan peristiwa

addsyudent ( stdOID) ( Ganbar 11). Didalam system database yang sangat berbarengan,

status kursus tentu saja menawarkan ( buka atau tutup ) bias berubah pada saat itu .

Sekali ketika siswa telah ditambahkan untuk : Courseoffering. Kita harus

menentukan kebalikan hubungan dalam : student. Obyek : Student harus membaharui

untuk menunjuk kembali ke: Courseoffering.

Gambar 12 adalah solusi untuk contoh itu. Lingkup dari diagram aktivitas

adalah Courseoffering kelas kecuali kebutuhan untuk berkomunikasi dengan kelas siswa

untuk memelihara integritas antar jaringan.

AddStudent( stdOID)

/ add stdOID to CourseOffering.std

areYouOpen(out c_check)

[yes] / add crsoffOID to student.crsoff [no]

AddStudent

Student.setCrsOff

Student Added

AreYouOpen

Do/ check enrolment quato Do/ check current number of student Dp/ compare

Open

Closed

Gambar 12.

Memetakan Aggregasi ke Desain ODB

<<ODB Inteface>>

yearSemester

year : date semester : unsigned short

<<ODB Inteface>> AcademicRecord

Course_code :string Year_sem : yearSemester Grade : string

<<ODB Class>> Course

Course_code : string Course_name : string Credits_points : unsigned short Course_offering : list<CourseOffering>

<<ODB Class>> CourseOffering

Year_sem : YearSemester Enrolment_quato : unsigned short Course : Course Student : list<Student> Academic_in_charge : AcademicInCharge

<<ODB Class>> Student

Student_id : string Student_name : string Current_fees : float Course_off : list<CourseOffering> Academic_record : set<AcademicRecord>

<<ODB Class>> AcademicInCharge

Course_off : list<CourseOffering>

Gambar 13.

Memetakan Aggregasi ke Desain ORDB <<structured tytpe>>

AcademicRecordTY

Course_code :char(7) Year : date Semester : integer Grade : varchar(2)

<<structured tytpe>> CourseTY

Course_code :char(7) Course_name : varchar(30) Credit_points : integer

OF <<structured tytpe>>

studentTY student_id :char(8) student_name : varchar(50) current_fees : money academic_Record : set(AcademicRecordTY)

<<object table>> Course

Course_offering : list(ref(courseOffeing))

OF

<<object table>> Student

Course_off : list(ref(CourseOffering))

<<structured tytpe>> CourseOfferingTY

Year : date Semester : integer Enrolment_quato : integer

<<structured Type>> RentalConditionTY

Rental_period_in_days : integer Rental_charge_per_period : money

<<structured Type>> VidioMediumTY

Vidio_condition : char Rental_cond :RentalCondition TY

<<structured Type>> Vidio TapeTY

Is_taped_over : boolean

<<structured Type>> VidioDisk TY

Different_langages : Boolean Different_ending : boolean

<<object table>> BetaTape

Movie_title : ref(MovieTitle)

<<object table>> DVDDisk

Movie_title : ref(MovieTitle)

<<object table>> VHS Tape

Movie_title : ref(MovieTitle)

OF

OFOF

<<structured Type>> Movie TitleTY

Movie_code : char(10) Movie_title : varchar(100) Director : varchar(30)

OF

<<object table>> Movie Title

Beta_tape : set(ref(BetaTape)) Vhs_tape : set(ref(VHSTape)) Dvd_disk : set(ref(DVDDisk))

Gambar 14.

Memetakan Aggregasi ke Desain RDB

Student_id=student_id course_code=course_code

Student_id=student_id course_code=course_code

AcademicRecord

Student_id NcaHR(8) <pk,fk1> not null Course_code CHAR(7) <pk,fk2> not null Year DATE <pk> not null Semester NCHAR <pk> not null Grade VARCHAR(2) not null

student

Student_id NCAHR(8) <pk> not null Student_name VARCHAR(50) not null Current_fees Money null

Course

Course_code CHAR(7) <pk> not null Course_name VARCHAR(30) not null Credit_points SMALUNT null

StdToCrsOff

Student_id NCAHR(8) <pk,fk1> not null CrsOff_id SERIAL <pk,fk2> not null

CourseOffering

Crsoff_id SERIAL <pk> not null Course_code CHAR(7) <ak,fk> not null Year DATE <ak> not null Semester NCHAR <ak> not null Enrolment_quato SMALUNT null Academic_in_charge VARCHAR(50) null

Crsoff_id=crsoff_id

Gambar15.

Program Design dan Transaction Desaign

Program Design : Eksekusi logika dari sebuah pogram dan defenisi framework untuk

kolaborasi dari objek client/server

Transaction Design : Unit dari database yang konsisten sehingga DBMs dapat

meneyediakan transaksi bagi program.

Class Cohesion and Class Coupling

Class Cohesion : Class yang digumakan untuk mengerti, membuat dan menstabilkan

sebuah program.

Class Coupling : Derajat konectivitas antara kelas

Kind of Class Coupling :

1. X adalah inherit Y

2. X memeliki atribut dari Y

3. X memiliki atribut dari parameter kelas Y

4. X memiliki metode dengan input argument dari kelas Y

5. X memiliki metode dengan output argument dari kelas Y

6. X dikenal memiliki variable global dari kelas Y

7. X dikenal memiliki metode dengan variable local dari kelas Y

8. X adalah pasangan Y

The Low of Demeter

Hukum Demeter menerangkan bahwa diperbolehkan menuliskan pesan

didalam sebuah class method, Dan hanya bias jika target tersebut adlah sebuah obyek.

1. Metode adalah objeck itu sendiri.

2. Sebuah objek merupakan argument dari metode

3. Sebuah objek yang diikiti oleh atribut objek

4. Sebuah objek dibuat dari sebuah method

5. Sebuah objek diikuti oleh banyak variable

Accessor Methods and Mindless Classes

Class yang memiliki banyak accesor dengan risk menjadi Midless Classes.

Dynamic classifications and mixed-instance cohesion

Ketika kita membuat sebuah klasifikasi dynamic yang terkenal dengan nama

object oriented program environment tidak mendukung. Saat itulah, terdapat frekuensi

yang disebut sebagai mixed-instance cohesion.

Designing client/server collaboration

Ada lima level dari interface SQL/ Level 1, SQL digunakan sebagai data

definition language (DDL). Pada level 2, SQL digunakan sebagai data manipulation

language (DMl) atau bahasa queri. Di level 3, SQL merupakan embedded conventional

programming languaggggge, seperti C dan Cobol. Pada level 4 SQl menggunakan

startegi yang sama untuk embedded seperti dilevel 3. Level 5 SQL merupakan

komplemen atau gabungan dari level 3 dan 4.

Designing the transaction

Transaction adalah logocal unit yang memiliki satu atau lebih statement SQL

yang dieksekusi oleh user. Transaction ini merupakan unit database dimana akan

konsisten apabila transaction tersebut selesai. Untuk menguji konsistensi tersebut,

seorang manajer transaction dari DBMS memiliki tujuan : me-recovery database dan

currency control.

Short transaction

Aplikasi IS yang konvensional memiliki transaksi yang pendek. Transaksi

tersebut memiliki satu atau lebih statement SQL yang harus diselesaikan secepatnya

sehingga transaksi lainnya tidak terhambat.

Pessimistic concurrency control

Empat jenis Lock dlam sebuah objek

Empat jenis lock dalam sebuah objek

1. Exclusive

2. Update

3. Read

4. No lock

Levels of issolation :

1. Dirty read possible

2. Non repeatable read possible

3. Phantom possible

4. Repeatable read

Automatic recovery

DBMS menyediakan recovery yang otomatis untuk beberapa situasi.

Programmable recovery

Program recovery terjadi ketika system gagal secara otomatis dari sebuah

DBMS.

Savepoint

Savepoint adalah situasi dimana program yang panjang dibagi menjadi bagian

yang pendek. Savepoint ditempatkan dibagian yang strategis dalam sebuah program.

Trigger rollback

Adalah bagian yang spesial dari savepoint. Tigger hanya bisa digunakan pada

program ketika suatu kerumitan ditemukan.

Designing stored procedures and triggers

Navigasi program ini dapat dibuat untuk meneruskan sebuah state dari

program yang sedang berjalan.

Round-trip engineering

Round-trip engineering didefinisikan sebagai generasi kode yang mengacu

pada kode design model. Round-trip engineering memiliki kemampuan secara graphical

dan tekstual, dimana tools yang digunakan terlihat secara konsisten.

Reengineering from relation to object-relational databases

Reengineering adalah proses melihat legalitas suatu system dan merubah

design serta mengimplementasikan kedalam form baru. Reengineering melengkapi

teknologi yang akan dikembangkan dalam bidang teknik.

AcourseOffering courseOffering

:Enrolment window

PolicyMaker Mindless

ACourse : Course Astudent:

Student

[prereq OK] enrol( )

GetAcadRec ()

Enrol( )

Gambar 16.

:Enrolment window

AcourseOffering courseOffering

ACourse : Course Astudent:

Student

[acad rec OK] enrol( )Enrol( )

GetP rereq()

Mindless Policy Maker

Gambar 17.

Policy Maker (the “God” class

AcourseOffering : courseOffering

ACourse :

GetPrereq() getAcadRec

Course Astudent: Student

:Enrolment window

Enrol()

Gambar 18.

The control object

:Enrolment window

AcourseOffering :

getAcadRec

Enrol()

GetPrereq()

[OK]enrol

: Enrolment Policy

courseOffering

ACourse : Course

Astudent: Student

Gambar 19.

Student

/ current_sem_credit_points : integer

PartTimeStudent

Evening_preference : Boolean

FullTimeStudent

PayExtraFee(crs_off)

Gambar 20. Student

/ current_sem_credit_points : integer

FullTimeStudent

PartTimeStudent

Student

/ current_sem_credit_points : integer

EveningPrefPartTimeStudent

PayExtraFee(crs_off)

DayPrefPartTimeStudent

Gambar 21.