You are on page 1of 14

Modul PHPMYSQL paling mudah

Fasa 1 : Menganalisis Masalah

Penyataan Masalah

1. Pengurusan pendaftaran peserta menggunakan kaedah manual menyebabkan proses


pendaftaran menjadi rumit. Peserta mendaftar dengan cara mengisi borang menyebabkan
pihak pengurusan sukar untuk merekod peserta yang telah berdaftar
2. Proses pengumpulan dari juri dan pengiraan skor keseluruhan dilakukan secara manual.
Menyebabkan proses mengumum keputusan menjadi lambat.
3. Proses pengiraan skor manual mempunyai kebarangkalian ralat yang tinggi dan boleh
menyebabkan keputusan pertandingan menjadi salah dan menimbulkan rasa tidak puas hati
dikalangan peserta.
4. Kesukaran dalam menentukan ranking peserta yang bertanding kerana hakim perlu meneliti
mata semua peserta pertandingan
5. Kesukaran juga bagi peserta untuk menyemak keputusan yang diperolehi kerana selalunya
hanya pemenang tempat pertama hingga ke 3 sahaja yang diumumkan.

Objektif

1. Sistem boleh merekod pendaftaran peserta dengan lebih mudah.


2. Proses pengumpulan markah dari setiap hakim dapat dilakukan dengan lebih cepat.
3. Proses pengiraan skor keseluruhan juga dapat dilakukan dengan lebih tepat kerana sistem
akan automatik mengira skor keseluruhan bagi setiap sekolah
4. Ranking juga dapat ditentukan dengan mudah kerana sistem akan menyusun kedudukan
pemenang mengikut jumlah mata tertinggi
5. Sistem juga dapat memapar keputusan kedudukan peserta dan pemenang dalam
pertandingan terkini.

Skop bagi modul paling mudah di alam semesta 3 jadual / entiti

1. Sistem ini hanya boleh digunakan bagi pertandingan bercerita peringkat daerah pasir
berdengung sahaja.
2. Sistem ini hanya membolehkan setiap peserta dinilai sekali sahaja oleh seorang hakim
3. Sistem ini hanya akan memaparkan keputusan sekiranya semua peserta telah dinilai
4. Pertandingan hanya akan menerima markah tunggal
5. Pertandingan ini adalah terbuka kepada semua pelajar sekolah menengah di daerah pasir
berdengung. (mengikut sekolah yang telah didaftarkan dalam sistem sahaja)

Skop bagi modul paling mudah di muka bumi 5 jadual / entiti

1. Sistem ini hanya boleh digunakan bagi pertandingan bercerita peringkat daerah pasir
berdengung sahaja.
2. Sistem ini hanya membolehkan setiap peserta dinilai sekali sahaja oleh seorang hakim
3. Sistem ini hanya akan memaparkan keputusan sekiranya semua peserta telah dinilai
4. Setiap peserta akan dinilai mengikut kategori permarkahan yang telah ditetapkan.
5. Pertandingan ini hanya terbuka kepada semua pelajar sekolah menengah di daerah pasir
berdengung sahaja ( mengikut sekolah yang telah didaftarkan dalam sistem sahaja)
Modul PHPMYSQL paling mudah

Kumpulan Sasaran

Hakim : Guru dalam daerah / Pegawai PPD pasir berdengung


Peserta : murid sekolah menengah di daerah pasir berdengung

Menilai sistem sedia ada

Kelebihan sistem manual

1. Tidak memerlukan kos pembangunan


2. Boleh dicapai di kawasan yang tidak mempunyai capaian internet

Kelemahan sistem manual

1. Sukar untuk mengumpul markah dari setiap hakim


2. Proses pengiraan markah lebih lambat dan berkemungkinan tidak tepat.

Justifikasi

1. Memudahkan pengurusan pertandingan supaya proses pengiraan markah dan penentuan


pemenang lebih efisen dan cepat.

Nama Sistem
Pertandingan tiktok merdeka
Modul PHPMYSQL paling mudah

Fasa 2 : Rekabentuk penyelesaian

Carta Alir Peserta


Modul PHPMYSQL paling mudah

Carta alir Hakim


Modul PHPMYSQL paling mudah

ERD modul paling mudah di alam semesta (3 entiti)

ERD modul paling mudah di muka bumi (5 entiti)


Modul PHPMYSQL paling mudah

Antaramuka borang pendaftaran peserta

Borang antaramuka laporan


Modul PHPMYSQL paling mudah

Antaramuka Menu Utama Hakim


Modul PHPMYSQL paling mudah

Penormalan modul paling mudah di alam semesta (3 entiti)

PESERTA

0NF
Masalah
• Jadual tidak atomik
• Tiada kunci primer
• Menyebabkan anomali dan kelewahan data

Penyelesaian
• Menukarkan jadual kepada bentuk 1NF

Skema Hubungan 0NF


PESERTA ( nama_peserta, nokp_peserta, kod_sekolah, nama_sekolah, nokp_hakim, nama_hakim, mata)

1NF
Objektif penukaran 0NF kepada 1NF (apa yang perlu dilakukan)
• Memastikan lajur jadual atomic
• Menentukan atribut kunci

Bagaimana menentukan kunci pada jadual.


Berdasarkan data yang ada pada jadual, didapati bahawa nokp_peserta sudah cukup untuk
membezakan setiap rekod yang ada. nokp_peserta telah memenuhi semua ciri-ciri atribut kunci yang
baik iaitu unik, stabil, minimal dan tidak null. Maka nokp_peserta sahaja sudah cukup dalam
membezakan setiap rekod yang ada.

PESERTA

Skema Hubungan 1NF


PESERTA ( nama_peserta, nokp_peserta <KP>, kod_sekolah, nama_sekolah, nokp_hakim, nama_hakim,
mata)

Isu yang timbul di 1NF


• Berkemungkinan terdapat kebergantungan fungsi separa atau kebergantungan fungsi transitif
• Terdapat anomali

Jadi jadual perlu ditukarkan kepada bentuk 2NF


Modul PHPMYSQL paling mudah

2NF

PESERTA

Syarat Penukaran 1NF kepada 2NF


• Jadual telah berada pada 1NF (telah mempunyai kunci dan telah atomik)

Objektif penukaran 1NF kepada 2NF (apa yang perlu dilakukan)


• Menghapuskan kebergantungan fungsi separa (Pecah jadual)

Bagaimana menghapuskan kebergantungan fungsi separa.


Kebergantungan fungsi separa bermaksud atribut bukan kunci hanya bergantung kepada salah satu
atribut kunci. Pada jadual 1NF, didapati hanya mempunyai 1 kunci sahaja. Semua atribut bukan kunci
akan bergantung kepada atribut kunci nokp_peserta. Maka kebergantungan fungsi separa tidak wujud
di dalam jadual. Apabila jadual di 2NF tidak mempunyai kebergantungan fungsi separa, bentuk
penormalan 2NF adalah sama dengan 1NF (disebabkan jadual tidak dapat dipecahkan)

Skema Hubungan 2NF


PESERTA ( nama_peserta, nokp_peserta <KP>, kod_sekolah, nama_sekolah, nokp_hakim,
nama_hakim, mata)

3NF

Syarat Penukaran 2NF kepada 3NF


• Jadual telah berada pada 2NF (Tiada Kebergantungan Fungsi Separa)

Objektif penukaran 2NF kepada 3NF (apa yang perlu dilakukan)


• Menghapuskan kebergantungan fungsi Transitif (Pecah jadual)

Bagaimana menghapuskan kebergantungan fungsi transitif


Kebergantungan fungsi transitif bermaksud atribut bukan kunci bergantung kepada atribut bukan kunci
yang lain. Didapati di dalam jadual, terdapat kebergantungan fungsi transitif dimana atribut
nama_sekolah bergantung kepada atribut kod_sekolah dan atribut nama_hakim bergantung kepada
atribut nokp_hakim. Untuk menghapuskan kebergantungan fungsi transitif, pemecahan jadual perlu
dilakukan.
Modul PHPMYSQL paling mudah

Semasa proses pemecahan jadual, kod sekolah dan nama sekolah di masukkan ke dalam jadual baru
iaitu jadual sekolah. Kod_sekolah dijadikan kunci primer dalam jadual sekolah dan menjadi kunci asing
di dalam jadual peserta. Begitu juga dengan nokp_hakim dan nama hakim dimasukkan dalam jadual
baru iaitu hakim. nokp_hakim dijadikan kunci primer di jadual hakim dan kunci asing di jadual peserta.

Skema Hubungan 3NF


PESERTA ( nama_peserta, nokp_peserta <KP>, kod_sekolah <KA>, nokp_hakim<KA>, mata)
SEKOLAH (kod_sekolah<KP>, nama_sekolah)
HAKIM (nokp_hakim<KP>, nama_hakim)

FASA PENAMBAHBAIKAN
Selepas selesai 3NF, kita akan melaksanakan fasa penambahbaikan. Tujuan fasa penambahbaikan ini
adalah untuk membolehkan skema hubungan 3NF berada pada tahap yang paling optimum sebelum
skema hubungan dijadikan pangkalan data. Terdapat pelbagai perkara yang boleh dilakukan sewaktu
fasa penambahbaikan salah satu darinya adalah menambah medan yang baru. Jadi bagi membolehkan
sistem beroperasi untuk login, maka perlunya ditambah medan katalaluan_peserta dan
katalaluan_hakim dalam jadual. Jika tidak, sistem tidak boleh beroperasi kerana tidak mempunyai
kebolehan untuk log masuk

Skema hubungan 3NF setelah melalui fasa penambahbaikan.

Skema Hubungan 3NF


PESERTA ( nama_peserta, nokp_peserta <KP>, kod_sekolah <KA>, nokp_hakim<KA>, mata,
katalaluan_peserta)
SEKOLAH (kod_sekolah<KP>, nama_sekolah)
HAKIM (nokp_hakim<KP>, nama_hakim, katalaluan_hakim)

Ini merupakan skema hubungan terakhir yang akan digunapakai sewaktu membangunkan pangkalan
data nanti.
Modul PHPMYSQL paling mudah

Penormalan modul paling mudah di muka bumi (5 entiti)

0NF
Masalah
• Tiada kunci primer
• Jadual tidak atomik
• Menyebabkan anomali dan kelewahan data

Penyelesaian
• Menukarkan jadual kepada bentuk 1NF

Skema Hubungan 0NF


PENYERTAAN ( nama_peserta, nokp_peserta, kod_sekolah, nama_sekolah, kod_kategori,
nama_kriteria,
nokp_hakim, nama_hakim, mata)

1NF
Objektif penukaran 0NF kepada 1NF (apa yang perlu dilakukan)
• Memastikan lajur jadual atomic
• Menentukan atribut kunci

Bagaimana menentukan atribut kunci?


Dalam menentukan atribut kunci, apa yang perlu dilakukan adalah mencari 1 atau gabungan beberapa
atribut yang boleh digunakan untuk membezakan setiap rekod. Pada bahagian data tidak berulang
nokp_peserta boleh membezakan setiap rekod. Manakala di kumpulan berulang, didapati kod_kategori
boleh membezakan rekod pada kumpulan tersebut. maka gabungan kunci yang diperolehi ialah
nokp_peserta dan kod_kategori.

Pengujian kepada atribut kunci yang dipilih.

Setiap padanan data diantara dua


atribut kunci yang dipilih tidak
sama. Maka atribut kunci
nokp_peserta dan kod_kategori
Modul PHPMYSQL paling mudah

Skema hubungan di 1NF


PENYERTAAN (nama_peserta, nokp_peserta<KP>, kod_sekolah, nama_sekolah, kod_kategori<KP>,
kategori_markah, nokp_hakim, nama_hakim, mata)

Setelah menandakan kunci dan menyalin semula semua baris yang berulang, jadual kini terkini telah
berada pada 1NF. Akan tetapi, masih terdapat kemungkinan kebergantungan fungsi separa dan
kebergantungan fungsi pada jadual. Ini akan menyebabkan duplikasi data dan anomali. Jadi jadual perlu
di tukarkan kepada bentuk 2NF

2NF
Syarat Penukaran 1NF kepada 2NF
• Jadual telah berada pada 1NF (telah mempunyai kunci dan telah atomik
Objektif penukaran 1NF kepada 2NF (apa yang perlu dilakukan)
• Menghapuskan kebergantungan fungsi separa (Pecah jadual). Kebergantungan fungsi separa
bermaksud atribut bukan kunci hanya bergantung kepada salah satu atribut kunci pada jadual

Daripada rajah di atas, didapati bahawa nama peserta, kod_sekolah dan nama_sekolah mempunyai
kebergantungan fungsi separa dimana ianya hanya bergantung kepada kunci nokp_peserta. Manakala
kategori_markah hanya bergantung kepada kunci kod_kategori. Bagi atribut bukan kunci nokp_hakim,
nama_hakim dan mata akan bergantung kepada kedua-dua kunci iaitu nokp_peserta dan kod_kategori.

Kebergantungan fungsi separa


nokp_peserta -> nama_peserta, kod_sekolah dan nama_sekolah
kod_kategori -> kategori_markah

Untuk menghapuskan kebergantungan fungsi separa ini, pemecahan jadual perlu dilakukan.

Semasa proses menghapuskan kebergantungan fungsi separa, 2 jadual baru dibentuk iaitu jadual
peserta dan kategori. Pada jadual peserta nokp_peserta dijadikan kunci primer manakala dalam jadual
kategori kod_kategori dijadikan kunci primer dalam jadual kategori. Pada jadual asal(penyertaan),
nokp_peserta dan kod_kategori dijadikan <KP><KA>.
Modul PHPMYSQL paling mudah

Skema Hubungan 2NF

PENYERTAAN ( nokp peserta<KP><KA>, kod_kategori<KP><KA>, nokp_hakim, nama_hakim, mata )


PESERTA (nama peserta , nokp peserta<KP>, kod_sekolah, nama_sekolah)
KATEGORI (kod_kategori<KP>, kategori_markah)

Setelah ditukarkan kepada bentuk 2NF, terdapat lagi isu yang timbul iaitu kebergantungan fungsi
transitif pada jadual penyertaan dan jadual peserta. Oleh yang demikian, proses penormalan perlu
diteruskan sehingga 3NF

3NF
Syarat Penukaran 2NF kepada 3NF
• Jadual telah berada pada 2NF (Tiada Kebergantungan Fungsi Separa)
Objektif penukaran 2NF kepada 3NF (apa yang perlu dilakukan)
• Menghapuskan kebergantungan fungsi Transitif (Pecah jadual). Kebergantungan fungsi transitif
bermaksud atribut bukan kunci bergantung kepada atribut bukan kunci didalam sesebuah
jadual.

Terdapat kebergantungan fungsi transitif pada jadual penyertaan dan peserta.


Pada jadual penyertaan, atribut bukan kunci nama_hakim bergantung kepada atribut bukan kunci
nokp_hakim. Manakala pada jadual peserta didapati atribut bukan kunci nama_sekolah bergantung
kepada atribut bukan kunci kod_sekolah. Jadi pemecahan jadual perlu dilakukan bagi menghapuskan
kebergantungan fungsi transitif ini.

PENYERTAAN

PESERTA
Modul PHPMYSQL paling mudah

Menghapuskan kebergantungan fungsi transitif

Bagi menghapus kebergantungan fungsi transitif di jadual penyertaan, nokp_hakim dan nama hakim
akan di masukkan kedalam jadual baru hakim. nokp_hakim dijadikan sebagai kunci primer di dalam
jadual hakim. manakala di jadual penyertaan pula, nokp_hakim akan dijadikan sebagai kunci asing.

Bagi menghapuskan kebergantungan fungsi transitif di jadual penyertaan, kod sekolah dan nama
sekolah akan di keluarkan kedalam jadual baru. Kod_sekoalh akan menjadi kunci primer pada jadual
sekolah dan akan menjadi kunci asing di dalam jadual peserta.

SKEMA HUBUNGAN 3NF

PENYERTAAN ( nokp peserta<KP><KA>, kod_kategori<KP><KA>, nokp_hakim<KA>, mata )


KATEGORI ( kod_kategori<KP>, kategori_markah)
HAKIM (nokp_hakim<KP>, nama_hakim )
PESERTA ( nama peserta, nokp peserta<KP>, kod_sekolah<KA> )
SEKOLAH (kod_sekolah<KP> , nama_sekolah )

FASA PENAMBAHBAIKAN

Selepas selesai 3NF, kita akan melaksanakan fasa penambahbaikan. Tujuan fasa penambahbaikan ini
adalah untuk membolehkan skema hubungan 3NF berada pada tahap yang paling optimum sebelum
skema hubungan dijadikan pangkalan data. Terdapat pelbagai perkara yang boleh dilakukan sewaktu
fasa penambahbaikan salah satu darinya adalah menambah medan yang baru. Jadi bagi membolehkan
sistem beroperasi untuk login, maka perlunya ditambah medan katalaluan_peserta dan
katalaluan_hakim dalam jadual. Jika tidak, sistem tidak boleh beroperasi kerana tidak mempunyai
kebolehan untuk log masuk

SKEMA HUBUNGAN 3NF selepas fasa penambahbaikan

PENYERTAAN ( nokp peserta<KP><KA>, kod_kategori<KP><KA>, nokp_hakim<KA>, mata )


KATEGORI ( kod_kategori<KP>, kategori_markah)
HAKIM (nokp_hakim<KP>, nama_hakim, katalaluan_hakim )
PESERTA ( nama peserta, nokp peserta<KP>, kod_sekolah<KA>, katalaluan_peserta )
SEKOLAH (kod_sekolah<KP> , nama_sekolah )

You might also like