Aplikasi GUI MATLAB di Bidang Nuklir

MAKALAH
MATA KULIAH PEMROGRAMAN LANJUT

APLIKASI GUI DI BIDANG NUKLIR

Disusun Oleh :
Bara Wahyu Ramadhan ( M0212021 )

JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
2015

I.

Judul
Program Aplikasi GUI di Bidang Nuklir

II.

Tujuan

Memudahkan pekerja / peneliti dibidang nuklir untuk melakukan
analisis perhitungan.

III.

Dasar teori

3.1 Relativitas
3.1.1

Dilatasi waktu
Sebuah

lonceng

yang

bergerak

terhadap


pengamat

kalihatannya berdetak lebih lambat daripada jika lonceng itu diam
terhadapnya. Ini berarti, jika seorang pengamat dalam suatu roket
mendapatkan selang waktu antara dua kejadian antara roket itu t0 ,
orang dibumi mendapatkan bahwa selang waktu tersebut lebih
panjang yaitu t. Kuantitas t0 yang ditentukan oleh kejadian yang
terdapat pada tempat yang sama dalam kerangka acuan pengamatnya
disebut waktu proper antara kejadian itu. Bila diamatai dari bumi,
kejadian yang menandai permukaan dan akhir selang waktu itu
terjadi pada tempat yang berbeda dan mengakibatkan selang
waktunya kelihatan lebih panjang dari waktu proper. Efek ini disebut
pemuaian waktu ( dilatasi waktu ).
Dapat dirumuskan sebagai :

( 3.1 )

Dimana :
to


= Selang waktu pada lonceng yang diam relatif terhadap

pengamat
t

= Selang waktu pada lonceng yang dalam keadaan gerak

relatif terhadap pengamat

3.1.2

v

= kelajuan gerak relatif

c

= kelajuan cahaya (Beiser, 1999)


Kontraksi panjang
Pengukuran panjang seperti juga selang waktu dipengaruhi
oleh gerak relatif. Panjang L benda bergerak terhadap pengamat
kelihatannya lebih pendek dari panjang Lo bila diukur dalam
keadaan diam terhadap pengamat, gejala ini dikenal sebagai
pengerutan Lorentz Fitz Gerald. Pengerutan serupa itu hanya terjadi
dalam arah gerak relatif. Panjang Lo suatu benda dalam kerangka
diamnya disebut panjang proper. Kontraksi panjang dapat
dinyatakan dalam persamaan berikut ini :

( 3.2 )
Dimana :
Lo

= Panjang pada lonceng yang diam relatif terhadap pengamat

L

= Panjang pada lonceng yang dalam keadaan gerak relatif


terhadap pengamat
v

= kelajuan gerak relatif

c

= kelajuan cahaya (Beiser, 1999)

3.2 Fisika Modern
3.2.1

Efek Fotolistrik
Pada efek fotolistrik, permukaan sebuah logam disinari
dengan seberkas cahaya, dan sejumlah elektron terpancar dari
permukaannya. Atau dengan kata lain efek fotolistrik merupakan

peristiwa foton yang menumbuk elektron terikat pada logam
kemudian menghasilkan eksitasi dan elektron keluar dari logam
tersebut.


Gambar 3.1 Percobaan Efek Fotolistrik

Susunan percobaan efek fotolistrik diperlihatkan seperti
pada gambar 3.1. Laju pancaran elektron diukur sebagai arus listrik
pada rangkaian luar dengan menggunakan sebuah Ammeter ,
sedangkan energi kinetiknya ditentukan dengan mengenakan suatu
potensial perlambat ( retarding potential ) pada anoda sehingga
elektron tidak mempunyai energi yang cukup untuk melebihi bukit
potensial yang terpasang. Secara eksperimen, tegangan perlambat
terus diperbesar hingga pembacaan arus pada ammeter menurun ke
nol. Tegangan yang bersangkutan ini disebut potensial henti (
stopping potential ) Vs. Karena elektron yang berenergi tinggi tidak
dapat melewati potensial henti ini, maka pengukuran Vs merupakan
suatu cara untuk menentukan energi kinetik maksimum elektron K
max (Krane, 2014). Dapat dituliskan dalam persamaan berikut :

( 3.3 )

Dimana :

K max = energi kinetik maksimum elektron ( eV )

3.2.2

e

= muatan elektron ( C )

h

= konstanta Plank (eVs)

v

= frekuensi (Hz)

W

= fungsi kerja (eV)


c

= kecepatan cahaya (m/s)

λ

= panjang gelombang foton (m)

Efek Compton
Efek ini terjadi apabila sinar gamma yang ditembakkan
mengenai elektron paling luar atau elektron bebas, karena daya ikat
elektron terluar sama denga daya ikat elektron bebas. Maka akan terjadi
hamburan Compton, yaitu tumbukan antara foton dengan elektron
bebas. Foton yang dating dibelokkan arahnya dengan sudut tertentu dan
foton akan mentranfer sebagian energinya kepada elektron yang disebut
dengan elektron recoil. Karena sudutnya bisa sembarang maka energi
yang ditranfer antara nol hingga besarnya fraksi energi foton (Knoll,
1989). Hal tersebut dapat dirumuskan dengan persamaan :
λ – λ’ = λc ( 1 – Cos θ )


( 3.4 )
1

1

KE max = h (v – v’) = ( - 𝜆′ )

Dimana :

𝜆

λ

= panjang gelombang awal (m)

λ’

= panjang gelombang akhir (m)

λc


= panjang gelombang Compton (m)

KE max = energi kinetik maksimum (eV)
h

= tetapan Plank ( eVs)

v

= frekuensi awal ( Hz)

v’

= frekuensi akhir ( Hz)

( 3.5 )

3.2.3


Sinar X
Sinar-X berasal dari elektron berenergi tinggi yang
menumbuk suatu bahan yang bila mengenai salah satu elektron bahan
maka elektron tersebut akan terpental keluar. Tempat elektron yang
kosong ini kemudian diisi oleh elektron dari kulit luar. Perpindahan
elektron dari kulit luar ke kulit dalam ini disertai dengan pancaran sinarX.
Sifat radiasi sinar-X:
 Dapat menembus benda secara umum.
 Terbentuk dari tumbukan bahan oleh elektron berenergi tinggi.
 Merusak kertas film fotografi.
 Tidak dipengaruhi medan magnet
λ min =

3.3 Fisika Nuklir
3.3.1

ℎ𝑐

𝑒𝑉

( 3.6 )

Radioaktivitas
Radiasi adalah pemancaran energi baik dari suatu medium atau
tanpa medium dalam bentuk partikel atau gelombang. Keberadaan
radiasi tidak dapat dilihat, tidak dapat tercium karena tidak berbau, tidak
dapat didengar, dan tidak dapat dirasa, tetapi hanya dapat dideteksi
dengan alat detektor radiasi. Radioaktivitas adalah perubahan inti atom
yang tidak stabil

menjadi inti atom lain yang lebih stabil dengan

memancarkan radiasi. Peristiwa perubahan inti menjadi inti atom yang
lain disebut disintegrasi inti atau peluruhan radioaktif (BATAN, 2011).
( 3.7 )

( 3.8 )

3.3.2

Dosis Radiasi
Radiasi dapat dimanfaatkan untuk berbagai keperluan, namun
perlu disadari bahwa radiasi juga mengandung potensi bahaya
apabila berinteraksi dengan sistem tubuh manusia. Untuk keperluan
tersebut diperlukan besaran radiasi yang dapat digunakan sebagai
kuantisasi efek biologi yang ditimbulkannya atau disebut dengan
dosis radiasi (BATAN, 2012).

3.3.3

Kritikalitas Reaktor
Pada saat terjadi reaksi fisi, beberapa jumlah neutron akan
diserap oleh ini fissil atau inti dapat dibelah dan merambat ke fisi
yang lain. Hal itu menyebabkan lahirnya fisi neutron yang baru dan
merupakan generasi baru dari fisi neutron. Sehingga dapat dihitung
jumlah neutron pada dua generasi yang berbeda. Kemudian
didefinisikan besarnya perbandingan faktor multiplikasi ( k ) pada
rantai reaksi (Duderstadt, 1976).
K eff =

𝑁𝑛

=
𝑁𝑜

𝐽𝑢𝑚𝑙𝑎ℎ 𝑛𝑒𝑢𝑡𝑟𝑜𝑛 𝑝𝑎𝑑𝑎 𝑠𝑎𝑡𝑢 𝑔𝑒𝑛𝑒𝑟𝑎𝑠𝑖

𝐽𝑢𝑚𝑙𝑎ℎ 𝑛𝑒𝑢𝑡𝑟𝑜𝑛 𝑝𝑎𝑑𝑎 𝑔𝑒𝑛𝑒𝑟𝑎𝑠𝑖 𝑠𝑒𝑏𝑒𝑙𝑢𝑚𝑛𝑦𝑎

( 3.9 )

Pada satu neutron pada satu generasi faktor multiplikasinya
akan relatif konstan yang disebut posisi kritis ( k = 1 ). Jika populasi
neutron menjadi menurun maka dapat disebut posisi subkritis ( k <
1 ), namun jika populasi neutron menjadi meningkat maka dapat
disebut posisi superkritis ( k > 1 ). Besarnya komposisi k bergantung
jumlah nuklida pada jenis yang berbeda yang dihasilkan dan
perhitungan

distribusi

energi

neutron,

dimana

merupakan

perhitungan rata – rata tampang lintang pada masing – masing
nuklida (Stacey, 2001).
Nn = No ( Keff )n
Dimana =
n

= jumlah generasi

Keff

= kritikalitas reaktor

IV.

Desain dan rancangan program

4.1 Diagram blok secara umum
Mode normal
Kalkulator
Mode scientific

Dilatasi waktu
Relativitas
Kontraksi panjang

Home

Efek Fotolistrik
Fisika Modern

Efek Compton
Sinar X

Radioaktivitas
Fisika Nuklir

Dosis radiasi
Kritikalitas Reaktor

Gambar 3.2. Diagram blok secara umum

4.2 Desain GUI

Gambar 3.3. Home

Gambar 3.4. Kalkulator mode normal

Gambar 3.5. Kalkulator scientific

Gambar 3.6. Dilatasi Waktu

Gambar 3.7 Kontraksi panjang

Gambar 3.8. Efek fotolistrik

Gambar 3.9. Efek compton

Gambar 3.10. Sinar X

Gambar 3.11. Radioaktivitas

Gambar 3.12. Dosis radiasi

Gambar 3.13. Kritikalitas reaktor

4.3 Flow chart
4.3.1

Kalkulator normal
Mulai

Masukkan angka

Angka ditampilkan di layar

Masukkan operator

Operator ditampilkan di layar

./

Masukkan angka

Angka ditampilkan di layar

Klik sama dengan

Muncul hasil

Selesai

Gambar 3.14. Flow chart kalkulator normal

4.3.2

Kalkulator Scientific

Mulai

Masukkan angka

Angka ditampilkan di layar

Masukkan operator

Operator ditampilkan di layar

Masukkan angka

Angka ditampilkan di layar

Klik sama dengan

Muncul hasil

Selesai

Gambar 3.15. Flow chart kalkulator scientific

4.3.3

Dilatasi waktu

Mulai

Masukkan t, to, v
dan c

t=0
to = 0
t = t/ sqrt ( 1- v2/c2 )

v=0

t = t*sqrt ( 1- v2/c2 )

v = sqrt ( 1- to2/t2 )

Selesai

Gambar 3.15. Flow chart dilatasi waktu

EROR

4.3.4

Kontraksi panjang

Mulai

Masukkan Lo, L, v
dan c

Lo = 0
L=0
Lo = L/ sqrt ( 1- v2/c2 )

v=0

L = Lo*sqrt ( 1- v2/c2 )

v = sqrt ( 1- L2/Lo2 )

Selesai

EROR

Gambar 3.16. Flow chart kontraksi panjang

4.3.5

Efek fotolistrik

Mulai

Masukkan K max ,
V, λ dan W

K max = 0
V=0
K max = hc / λ - W

λ=0

V = K max / e

W=0

λ = hc/( K max + W )
W = hc / λ – K max

Selesai

EROR

Gambar 3.17. Flow chart efek fotolistrik

4.3.6

Efek Compton

Mulai

Masukkan K max ,
λ’, λ dan θ

K max = 0
λ’ = 0
K max = hc ( 1/λ – 1/λ’)

λ=0

θ=0

λ' = λc (1-cos θ )- λ
λ = λ’ - λc (1-cos θ )

Θ = Cos’ ( 1 – ((λ – λ’)/λc))

Selesai

EROR

Gambar 3.18. Flow chart efek compton

4.3.7

Sinar X

Mulai

Masukkan λ min
dan V

λ min
V=0
λ min = hc/eV

V = hc/ λ min e

Selesai

Gambar 3.19. Flow chart sinar x

EROR

4.3.8

Radioaktivitas

Mulai

Pilih jenis nuklida

Muncul massa atom
dan waktu paro

Masukkan A, m,
Nt, No dan t

Pilih variabel yang
dicari ( p )

p=1
p=2
A = 0,693*m*NA/
t ½*Mr

p=3
m = A*t ½*Mr/
0,693*NA

p=4
Nt =No*exp(0,693*t
/t ½ )
P=5

Selesai

No =Nt/ exp(0,693*t
/t ½)

t = ln ( No/Nt )*t ½
/0,693

Gambar 3.20. Flow chart radioaktivitas

4.3.9

Dosis radiasi
Mulai

Masukkan dosis
radiasi

Pilih organ tubuh
(p)

p=1
p=2
Analisis pada kulit

p=3

p=4

Analisis pada mata
Analisis pada paru paru

p=5

Analisis pada testis
Muncul status
diagnosis
Analisis pada
ovarium
Analisis pada darah
p=6
Analisis pada janin
Selesai
Analisis pada
seluruh tubuh

p=7

4.3.10 Kritikalitas reaktor

Mulai

Masukkan K eff ,
Nn , No dan n

Pilih variabel yang
dicari ( p )

P=1
P=2
K eff = Nn/No
P=3
Nn = No ( K eff)n

No = Nn/( K eff)n

Muncul status
reaktor

Selesai

Gambar 3.22. Flow chart kritikalitas reaktor

V.

Hasil dan pembahasan

Program ini berfungsi untuk memudahkan para pekerja atau peneliti nuklir
untuk melakukan analisis secara sederhana. Program ini terdiri dari 10 aplikasi yang
tersusun dalam satu program bernama “Home”. Dalam home ini berisi aplikasi yang
dapat di buka pada menu bar. Menu bar yang ditampilkan adalah kalkulator,
relativitas, fisika modern, fisika nuklir dan keluar. Pada masing – masing menu bar
tersebut terdapat submenu yang berupa aplikasi. Perintah keluar digunakan untuk
keluar dari program.
Pada menu kalkulator berisi dua submenu yaitu mode normal dan mode
Scientific. Mode normal berisi kalkulator biasa yang hanya dapat melakukan
operasi perkalian, pembagian, penjumlahan dan pengurangan. Mode Scientific
dapat melakukan operasi yang lebih rumit misal fungsi trigonometri, akar, pangkat
dan eksponensial. Pada program aplikasi nuklir dilengkapi dengan kalkulator
fungsinya adalah untuk memudahkan pengguna dalam perhitungan jika dibutuhkan
perhitungan tambahan.
% --- Executes on button press in tbl_0.
function tbl_0_Callback(hObject, eventdata, handles)
global jj
textString = get(handles.edit1,'string');
if(strcmp(textString,'0.')==1)& (jj==0);
set(handles.edit1,'string','0');
else
textString = strcat(textString,'0');
set(handles.edit1,'string',textString);
end
jj=0;
% --- Executes on button press in clear.
function clear_Callback(hObject, eventdata, handles)
set(handles.edit1,'string','')
% --- Executes on button press in samadengan.
function samadengan_Callback(hObject, eventdata, handles)
textString = get(handles.edit1,'string');
ans = eval(textString);
set(handles.edit1,'string',ans);

Pada program diatas, tombol angka ( 0 – 9 ) menggunakan fungsi if. Hal itu
berarti jika tombol 0 di tekan maka akan keluar pada layar edit1. Jika tombol 1
ditekan setelah tombol 0 maka menjadi 01 pada layar edit1 begitu juga seterusnya.

Prinsip tersebut digunakan pada operator yang lain misal +, - , : dan x . Pada tombol
Clear, jika ditekan maka layar edit1 akan kosong karena ada perintah set untuk edit1
berupa pengkosongan string. Pada tombol sama dengan, menggunakan perintah
eval. Perintah eval digunakan untuk mengubah teks yang berupa string menjadi
number, sehingga hasilnya dapat dihitung oleh komputer.
Kemudian pada menu relativitas, berisi dua aplikasi yaitu dilatasi waktu dan
kontraksi panjang. Pada aplikasi dilatasi waktu, digunakan untuk menghitung
perbedaan waktu akibat pengaruh dari relativitas pada orang yang kecepatannya
mendekati kecepatan cahaya. Pada aplikasi kontraksi panjang, digunakan untuk
menghitung perbedaan panjang akibat pengaruh dari relativitas pada orang yang
kecepatannya mendekati kecepatan cahaya. Pada aplikasi dilatasi waktu berisi
program berikut ini :
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
I=imread('dilatasi.jpg');
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(I));
colormap('gray');
set(open.axes1,'Userdata',I);
% --- Executes on button press in hitung.
function hitung_Callback(hObject, eventdata, handles)
%ambil input
a=get(handles.edit1,'string');
b=get(handles.edit2,'string');
c=get(handles.edit3,'string');
d=get(handles.edit4,'string');
%ubah type
a=str2num(a);
b=str2num(b);
c=str2num(c);
d=str2num(d);
%hitung
if a==0
hasil=d*(sqrt(1-(b^2/c^2)));
set(handles.edit5,'string','to (detik)')
elseif b==0
hasil=sqrt(c^2*(1-(a^2/d^2)));
set(handles.edit5,'string','v (m/detik)')
elseif d==0
hasil=a/sqrt(1-(b^2/c^2));
set(handles.edit5,'string','t (detik)')
else hasil='EROR'
set(handles.edit5,'string','EROR')
end
%ubah hasil

hasil1=num2str(hasil);
set(handles.edit6,'string',hasil1)

Pada perintah pushbutton1, digunakan untuk menampilkan gambar
persamaan dilatasi waktu saat tombol tersebut ditekan. Perintah tersebut mengambil
gambar yang bernama “dilatasi.jpg” untuk ditampilkan pada axes1. Pada perintah
tombol hitung, berfungsi untuk menghitung variabel yang dicari. Pengguna harus
memasukkan angka 0 ( nol ) pada variabel yang dicari , dan variabel yang lain harus
diisi dengan angka selain 0 ( nol ). Hasil dari perhitungan tersebut akan ditampilkan
pada layar edit5 dan edit6. Pada layar edit5 akan menampilkan tulisan variabel yang
dicari dan satuannya. Sedangkan pada layar edit6 akan menampilkan hasil
perhitungan variabel yang dicari.
% --- Executes on button press in reset.
function reset_Callback(hObject, eventdata, handles)
set(handles.edit1,'string','')
set(handles.edit2,'string','')
set(handles.edit3,'string','')
set(handles.edit4,'string','')
set(handles.edit5,'string','')
set(handles.edit6,'string','')
% --- Executes on button press in print.
function print_Callback(hObject, eventdata, handles)
[gambar,dir]=uiputfile(' * .jpg','Keluaran');
fileName=fullfile(dir,gambar);
f=getframe(dilatasi);
[x,map]=frame2im(f);
imwrite(x,fileName,'jpg');
% --- Executes on button press in keluar.
function keluar_Callback(hObject, eventdata, handles)
jawaban=questdlg('anda akan menutup program
?','konfirmasi','ya','tidak','ya');
if strcmp(jawaban,'ya')==1
close
end

Pada tombol reset , digunakan untuk membersihkan layar dari angka. Pada
tombol sprint screen digunakan untuk melakukan print layar GUI agar masukkan
dan keluarannya dapat disimpan dengan gambar. Pada tombol keluar digunakan
untuk keluar dari program. Saat ditekan tombol keluar maka akan muncul kotak
dialog yang berisi konfirmasi bahwa pengguna yakin untuk menutup program atau

tidak. Jika ditekan tombol “ya” maka aplikasi tersebut akan tertutup dan jika diteka
“tidak” maka aplikasi tersebut akan tetap terbuka.
Kemudian pada aplikasi kontraksi panjang hampir sama script-nya dengan
aplikasi dilatasi waktu namun yang dirubah adalah bagian gambar dan persamaan
nya.
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
I=imread('kontraksi.jpg');
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(I));
colormap('gray');
set(open.axes1,'Userdata',I);
% --- Executes on button press in hitung.
function hitung_Callback(hObject, eventdata, handles)
%ambil input
a=get(handles.edit1,'string');
b=get(handles.edit2,'string');
c=get(handles.edit3,'string');
d=get(handles.edit4,'string');
%ubah type
a=str2num(a);
b=str2num(b);
c=str2num(c);
d=str2num(d);
%hitung
if a==0
hasil=d/sqrt(1-(b^2/c^2));
set(handles.edit5,'string','Lo (m)')
elseif b==0
hasil=sqrt(c^2*(1-(d^2/a^2)));
set(handles.edit5,'string','v (m/detik)')
elseif d==0
hasil=a*(sqrt(1-(b^2/c^2)));
set(handles.edit5,'string','L (m)')
else hasil='EROR'
set(handles.edit5,'string','EROR')
end
%ubah hasil
hasil1=num2str(hasil);
set(handles.edit6,'string',hasil1)

Pada menu fisika modern berisi tiga program aplikasi yaitu efek fotolistrik,
efek compton dan sinar x. Ketiga aplikasi tersebut merupakan konsep fisika modern
yang seri dipakai dalam dunia nuklir. Untuk listing programnya hampir sama
dengan dilatasi waktu hanya dirubah persamaannya dan gambarnya, kemudian juga
dirubah banyak variabelnya yang akan dicari. Listing progamnya yaitu :

Pada efek fotolistrik
% --- Executes on button press in hitung.
function hitung_Callback(hObject, eventdata, handles)
%ambil input
a=get(handles.edit1,'string');
b=get(handles.edit2,'string');
c=get(handles.edit3,'string');
d=get(handles.edit4,'string');
%ubah type
a=str2num(a);
b=str2num(b);
c=str2num(c);
d=str2num(d);
%hitung
h=4.135e-15;
ce=3e8;
e=1.6e-19;
if a==0
hasil=((h*ce)/c)-d;
set(handles.edit5,'string','K max (eV)')
elseif b==0
hasil=a/e;
set(handles.edit5,'string','Tegangan (volt)')
elseif c==0
hasil=(h*ce)/(a+d);
set(handles.edit5,'string','lamda (m)')
elseif d==0
hasil=((h*ce)/c)-a;
set(handles.edit5,'string','W (eV)')
else hasil='EROR'
set(handles.edit5,'string','EROR')
end
%ubah hasil
hasil1=num2str(hasil);
set(handles.edit6,'string',hasil1)

Pada efek compton
% --- Executes on button press in hitung.
function hitung_Callback(hObject, eventdata, handles)
%ambil input
a=get(handles.edit1,'string');
b=get(handles.edit2,'string');
c=get(handles.edit3,'string');
d=get(handles.edit4,'string');
%ubah type
a=str2num(a);
b=str2num(b);
c=str2num(c);
d=str2num(d);
%hitung
h=4.135e-15;
ce=3e8;
lamdac=2.426e-12;
if a==0

hasil=(h*ce)*((1/c)-(1/b));
set(handles.edit5,'string','KE max (eV)')
elseif b==0
hasil=(lamdac*(1-cosd(d)))+c;
set(handles.edit5,'string','lamda" (m)')
elseif c==0
hasil=b-(lamdac*(1-cosd(d)));
set(handles.edit5,'string','lamda (m)')
elseif d==0
hasil=acosd(1-((b-c)/lamdac));
set(handles.edit5,'string','tetha (derajat)')
else hasil='EROR'
set(handles.edit5,'string','EROR')
end
%ubah hasil
hasil1=num2str(hasil);
set(handles.edit6,'string',hasil1)

Pada sinar x
% --- Executes on button press in hitung.
function hitung_Callback(hObject, eventdata, handles)
%ambil input
a=get(handles.edit1,'string');
b=get(handles.edit2,'string');
%ubah type
a=str2num(a);
b=str2num(b);
%hitung
h=4.135e-15;
ce=3e8;
e=1.6e-19;
if a==0
hasil=(h*ce)/(e*b);
set(handles.edit5,'string','lamda min (m)')
elseif b==0
hasil=(h*ce)/(a*e);
set(handles.edit5,'string','Tegangan (volt)')
else hasil='EROR'
set(handles.edit5,'string','EROR')
end
%ubah hasil
hasil1=num2str(hasil);
set(handles.edit6,'string',hasil1)

Pada menu fisika nuklir terdapat tiga program aplikasi yaitu radioaktivitas ,
dosis radiasi dan kritikalitas reaktor. Ketiga konsep tersebut paling sering
digunakan dalam dunia nuklir. Pada radioaktivitas , digunakan untuk menghitung
aktivitas radioaktif pada suatu bahan yang mengandung unsur nuklida tertentu.
Pada dosis radiasi digunakan untuk menganalisa efek yang ditimbulkan radiasi

nuklir pada bagian organ tubuh tertentu. Pada kritikalitas reaktor digunakan untuk
menentukan status reaktor apakah dalam keadaan subkritis, kritis atau superkritis.
Pada program aplikasi radioaktivitas, pengguna akan diminta untuk
memilih jenis nuklida yang akan dihitung pada popupmenu. Dari pilihan nuklida
tersebut akan muncul massa atom dan waktu paro. Dengan ketentuan jika waktu
paro sama dengan nol ( 0 ) maka nuklida tersebut tidak bersifat radioaktif sehingga
tidak dapat dihitung aktivitasnya. Listing programnya adalah berikut ini :
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
a=get(handles.popupmenu1,'value')
d=[1.007825;2.014102;3.016049;3.016029;4.002603;6.015123;7.016005;
8.022487;7.016930;8.005305
9.012183;10.013535;11.021660;8.024608;9.013329;10.012938;11.009305
;12.014353;10.016858;11.011433
12.000000;13.003355;14.003242;15.010599;13.005739;14.003074;15.000
109;16.006099;17.008449;14.008597
15.003065;15.994915;16.999131;17.999159;19.003576;20.004078;17.002
095;18.000937;18.998403;19.999982
20.999949;18.005710;19.001880;19.992439;20.993845;21.991384;22.994
466;23.993613;20.997654;21.994435
22.989770;23.990964;24.989955;25.992606;21.999577;22.994127;23.985
045;24.985839;25.982595;26.984343
27.983879;24.990432;25.986895;26.981541;27.981913;28.980448;25.992
332;26.986704;27.976928;28.976496
29.973772;30.975364;31.974137;28.981804;29.978310;30.973763;31.973
908;32.971726;29.984904;30.979555
31.972072;32.971459;33.967868;34.969033;35.967079;36.971113;32.977
453;33.973765;34.968853;35.968307
36.965903;37.968011;38.968006;33.980269;34.975256;35.967546;36.966
776;37.962732;38.964315;39.962383
40.964501;41.963050;36.973377;37.969080;38.963999;39.963999;40.961
825;41.962402;42.960721;37.976318
38.970711;39.962591;40.962278;41.958622;42.958770;43.995485;44.956
189;45.953689;46.954543;47.952532
48.955677;42.961154;43.959409;44.955914;45.955174;46.952410;47.952
230;43.959693;44.958128;45.952633
46.951765;47.947947;48.947871;49.944786;50.946610;51.946893;47.952
257;48.948517;49.947161;50.943963

51.944779;52.944323;47.954033;48.951338;49.946046;50.944769;51.940
510;52.940651;53.938882;54.940842
55.940671;51.945567;52.941291;53.940361;54.938086;55.938906;56.938
285;51.948114;52.945310;53.939612
54.938295;55.934939;56.935396;57.933278;58.934878;59.934045;60.936
650;56.936294;57.935755;58.933198
59.933820;60.932478;55.942134;56.939775;57.935347;58.934350;59.930
789;60.931059;61.928346;62.929670
63.927968;64.930087;60.933462;61.932586;62.929599;63.292766;64.927
792;65.928871;66.927746];
e=d(a);
f=[0;0;12.3*3.14e7;0;0;0;0;0.84;53.3*24*3600;0.07e-15
0;1.6*3.14e13;13.8;0.77;0.85e-18;0;0;20.4e-3;19.2;20.4*60
0;0;5730*3.14e7;2.45;9.96*60;0;0;7.1;4.2;71
122;0;0;0;26.9;13.5;64.5;110*60;0;11
4.3;1.7;17.3;0;0;0;37.6;3.4*60;22.5;2.6*3.14e7
0;15*3600;60;1.1;3.86;11.3;0;0;0;9.46*60
21*3600;7.18;0.72*3.14e13;0;2.24*60;6.6*60;2.21;4.13;0;0
0;2.62*3600;650*3.14e7;4.1;2.5*60;0;14.3*24*3600;25.3*24*3600;1.2;
2.6
0;0;0;87.4*24*3600;0;5*60;2.51;1.53;0;0.3*3.14e13
0;37.3*60;56*60;0.844;1.78;0;35*24*3600;0;269*3.14e7;0
1.83*3600;33*3.14e7;1.23;7.61*60;0;1.28*3.14e16;0;12.4*3600;22.3*3
600;0.44
0.86;0;0.1*3.14e13;0;0;0;165*24*3600;0;4.54*24*3600;0
8.72*60;3.89*24*3600;3.93*24*3600;0;83.8*24*3600;3.42*24*3600;43.7
*3600;47*3.14e7;3.09*3600;0
0;0;0;0;5.8*60;1.7*60;16*24*3600;330*24*3600;0;0
3.76*60;1.6*60;21.6*3600;41.9*60;0;27.7*24*3600;0;0;0;3.55*60
5.9*60;5.59*24*3600;3.7*3.14e13;312*24*3600;0;2.58*3600;1.6*60;8.2
7*3600;8.51*60;0
2.7*3.14e7;0;0;0;44.6*3600;0.3*3.14e13;6*60;271*3600;70.8*3600;0
5.27*3.14e7;1.65*3600;6.1*24*3600;36*3600;0;0.075*3.14e13;0;0;0;10
0*3.14e7
0;2.52*3600;3.41*3600;9.73*60;0;12.7*3600;0;5.1*60;61.9*3600];
g=f(a);
set(handles.edit2,'string',num2str(e))
set(handles.edit3,'string',num2str(g))

Dari listing program tersebut, maka setiap pengguna yang memilih suatu
nuklida pada popupmenu1 akan ditampilkan dalam bentuk urutan angka. Kemudian
angka tersebut akan mengambil matriks pada massa atom dan waktu paro yang

telah dibuat pada baris sesuai baris popupmenu1. Kemudian akan massa atom akan
ditampilkan pada layar edit2 dan waktu paro akan ditampilkan pada layar edit3.
Setelah itu pengguna harus mengisi variabel – variabel yang ada dengan
angka sesuai yang diketahui. Variabel yang akan dicari dapat ditentukan dengan
memilih pada popupmenu2 dan akan keluar hasilnya. Listing programnya sebagai
berikut :
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
p=get(handles.popupmenu2,'value');
t=get(handles.edit3,'string');
m=get(handles.edit2,'string');
%ambil input
a=get(handles.edit4,'string');
b=get(handles.edit5,'string');
c=get(handles.edit6,'string');
d=get(handles.edit7,'string');
e=get(handles.edit8,'string');
%ubah type
a=str2num(a);
b=str2num(b);
c=str2num(c);
d=str2num(d);
e=str2num(e);
t=str2num(t);
m=str2num(m);
%hitung
na=6.02e23;
ans1=(0.693*b*na)/(t*m);
ans2=(a*t*m)/(0.693*na);
ans3=d*exp((-0.693*e)/t);
ans4=c/exp((-0.693*e)/t);
ans5=log((d/c))/(0.693/t);
r=[ans1;ans2;ans3;ans4;ans5];
h=r(p);
set(handles.edit9,'string',num2str(h))

Pada program tersebut, ans1 – ans5 dibentuk dalam sebuah matriks 1x5 dan
akan dipanggil oleh komputer saat variabel yang dicari dipilih. Kemudian hasilnya
akan ditampilkan pada layar edit9.
Pada program aplikasi dosis radiasi dan kritikalitas reaktor hampir sama
dengan radioaktivitas. Pada dosis radiasi, pengguna akan diminta untuk
memasukkan besarnya dosis radiasi dalam satuan gray. Kemudian memilih organ
tubuh yang terkena pada popupmenu. Kemudian hasilnya akan ditampilkan pada
status yang berisi penyakit yang ditimbulkan akibat dosis tersebut. Pada kritikalitas

reaktor, pengguna akan diminta memasukkan angka pada masing – masing variabel
( harus di isi semua ) dan memilih variabel yang dicari pada popupmenu. Khusus
jika variabel yang dicari adalah Keff maka status reaktor akan muncul apakah
subkritis, kritis atau superkritis. Listing programnya adalah sebagai berikut :

Pada dosis radiasi
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
a=get(handles.edit1,'string');
b=get(handles.popupmenu1,'value')
if b==1
if a>=0
c='Aman'
elseif a>=2
c='Eriterna awal';
elseif a>=3
c='Epilasi dan deskuamasi kering';
elseif a>=12
c='Deskuamasi basah';
else a>=20
c='Nekrosis';
end
elseif b==2
if a>=0
c='Aman';
else a>=0.5
c='Katarak';
end
elseif b==3
if a>=0
c='Aman';
elseif a>=3
c='Pneumonitis';
else a>=5
c='Pulmonary fibrosis';
end
elseif b==4
if a>=0
c='Aman';
elseif a==0.15
c='Oligosperma';
elseif a>0.15
c='Steril beberapa bulan';
elseif a>=1
c='Steril beberapa tahun';
else a>=3.5
c='Steril permanen';
end
elseif b==5
if a>=0
c='Aman';

elseif a>=0.65
c='Steril sementara';
elseif a>=5
c='Steril pada usia 40 tahun';
else a>=12
c='Steril pada usia 20 tahun';
end
elseif b==6
if a>=0
c='Aman';
else a>=0.5
c='Kematian';
end
elseif b==7
if a>=0
c='Aman';
else a>=0.05
c='Kematian';
end
elseif b==8
if a>=0
c='Aman'
elseif a>=1
c='Sindroma pembentukan darah';
elseif a>=5
c='Sindroma pencernaan';
else a>=20
c='Sindroma sistem syaraf pusat';
end
else c='EROR'
end
set(handles.edit2,'string',c)

Pada kritikalitas reaktor
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
p=get(handles.popupmenu2,'value');
%ambil input
a=get(handles.edit4,'string');
b=get(handles.edit5,'string');
c=get(handles.edit6,'string');
d=get(handles.edit7,'string');
%ubah type
a=str2num(a);
b=str2num(b);
c=str2num(c);
d=str2num(d);
%hitung
ans1=b/c;
ans2=c*(a^d);
ans3=b/(a^d);
r=[ans1;ans2;ans3];
h=r(p);
if p==1
if ans1==1

s='Kritis';
elseif ans1>1
s='Superkritis';
else ans1