UNIVERSITY ENROLMENT - amutiara.files.wordpress.com · pilihan setiap mahasiswa dibatasi oleh...
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.