5.1 Kesimpulan
Dengan pembuatan Tugas Akhir Aplikasi Penginputan Nilai Mahasiswa D3 Teknik Informatika USU Berbasis Android, penulis dapat mengambil beberapa kesimpulan, yaitu:
1. Adanya alternatif lain untuk menginput nilai mahasiswa, khususnya untuk permasalahan ini adalah penginputan nilai mahasiswa.
2. Dengan adanya teknologi telepon mobile Android yang open source, kita dapat menjadi pengembangnya, pembuat aplikasi-aplikasi yang bermanfaat.
3. Menarik minat user atau pengguna untuk mempelajari mobile computing.
5.2 Saran
Adapun beberapa saran yang ingin penulis sampaikan adalah sebagai berikut:
1. Sebaiknya program aplikasi penginputan nilai ini dikembangkan lagi, tidak hanya pada penginputan nilai. Penulis berharap setelah ada pengembangan dan perbaikan terhadap sistem yang berjalan yang lebih efektif dan efisien, dapat benar-benar digunakan untuk penginputan nilai Mahasiswa D3 Teknik Informatika USU Berbasis Android
2. Penambahan materi kuliah mengenai mobile computing, akan sangat membantu mahasiswa-mahasiswi D-III Teknik Informatika FMIPA USU untuk menarik minat dan mengembangkan teknologi open source Android ini. Sehingga tidak hanya sebagai pengguna, tetapi sebagai pengembangnya.
3. Hingga saat ini Android terus mengalami perkembangan, dengan begitu diharapkan aplikasi ini dapat di-upgrade mengikuti versi selanjutnya.
“Apa Itu Android OS ? Berikut Pengertian Dan Fungsinya”. 29 December 2017 https://www.utopicomputers.com/apa-itu-android-os-berikut-pengertian-dan-fungsinya/
Davidk. “Mengenal Apa Itu Android Studio”. 4 Oktober 2017.
https://teknologimodern.com/mengenal-apa-itu-android-studio/
“Aplikasi system penginputan nilai berbasis android”./2019/5/25
http://repositori.usu.ac.id/bitstream/handle/123456789/3625/142406004.pdf?se quence=1&isAllowed=y
“Proses ERD dan DFD”. /2011/12/1/.
http://octavia-chaniago.blogspot.com/2011/01/pengertian-dan-contohdari-dfd-dan-erd.html
Bayu Nico Dahlan. “Mengenal dan Memulai Pemrograman Java”. 25 Jul 2016.
https://www.codepolitan.com/mengenal-dan-memulai-pemrograman-java-belajar-java
Coding Java
public class MainActivity extends AppCompatActivity { EditText edtpass,edtEmail;
Button btnLogin,btnDaftar;
String email_user,password_user;
private static final String PREFS_NAME = "preferences";
private static final String PREF_EMAIL = "email_user";
private static final String PREF_NO = "Password";
private static final String PREF_PASS = "Password2";
private final String DefaultUnameValue = "";
private String UnameValue;
private String no_telp;
private String pass;
private final String DefaultPasswordValue = "";
private String PasswordValue;
private static final String TAG = "LoginActivity";
private static final int REQUEST_SIGNUP = 0;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtEmail=(EditText)findViewById(R.id.input_email);
edtpass=(EditText)findViewById(R.id.input_password);
btnLogin=(Button)findViewById(R.id.btn_login);
btnLogin.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) { loginMining();
} });
String url =Config.APP_SERVER+"login.php";
StringRequest stringRequest2 = new StringRequest(url + "?username="
+ edtEmail.getText().toString().trim() + "&password=" +
edtpass.getText().toString().trim(), new Response.Listener<String>() {
requestQueue2.add(stringRequest2);
}
SharedPreferences settings = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
// Edit and commit
UnameValue = edtEmail.getText().toString();
pass = edtpass.getText().toString();
System.out.println("onPause save name: " + UnameValue);
editor.putString(PREF_EMAIL, UnameValue);
editor.putString(PREF_PASS, pass);
editor.commit();
}
private void loadPreferences() {
SharedPreferences settings = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
// Get value
UnameValue = settings.getString(PREF_EMAIL, DefaultUnameValue);
pass = settings.getString(PREF_PASS, DefaultUnameValue);
edtEmail.setText(UnameValue);
edtpass.setText(pass);
System.out.println("onResume load name: " + UnameValue);
System.out.println("onResume load password: " + PasswordValue);
}
public class MainMenuActivity extends AppCompatActivity { Button btnpanduan,btninputnilai,btnrekapnilai,btnlogout;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainmenu);
btninputnilai=(Button)findViewById(R.id.btninputnilai);
btnpanduan=(Button)findViewById(R.id.btnpanduan);
btnrekapnilai=(Button)findViewById(R.id.btnrekapnilai);
btnlogout=(Button)findViewById(R.id.btnlogout);
btninputnilai.setOnClickListener(new View.OnClickListener() { @Override
btnpanduan.setOnClickListener(new View.OnClickListener() {
startActivity(intent);
} });
btnrekapnilai.setOnClickListener(new View.OnClickListener() { @Override
btnlogout.setOnClickListener(new View.OnClickListener() { @Override
public class PanduanActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_panduan);
}
public class PilihKelas extends AppCompatActivity {
ImageView imgkoma16,imgkoma17,imgkomb17,imgkoma18,imgkomb18;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pilihkelas);
imgkoma16=(ImageView)findViewById(R.id.imgkoma16);
imgkoma17=(ImageView)findViewById(R.id.imgkoma17);
imgkomb17=(ImageView)findViewById(R.id.imgkomb17);
imgkoma18=(ImageView)findViewById(R.id.imgkoma18);
imgkomb18=(ImageView)findViewById(R.id.imgkomb18);
Intent(PilihKelas.this,InputNilaiActivity.class);
intent.putExtra("kelas","KomA16");
startActivity(intent);
} });
imgkoma17.setOnClickListener(new View.OnClickListener() { @Override
imgkomb17.setOnClickListener(new View.OnClickListener() { @Override
imgkoma18.setOnClickListener(new View.OnClickListener() { @Override
imgkomb18.setOnClickListener(new View.OnClickListener() { @Override
import com.android.volley.AuthFailureError;
public class InputNilaiActivity extends AppCompatActivity { public static final String DATA_URL_NAMA=
Config.APP_SERVER+"sp_mhs.php";
public static final String DATA_URL_MATKUL = Config.APP_SERVER+"sp_mapel.php";
public static final String JSON_ARRAY = "result";
private ArrayList<String> mhs_array;
private ArrayList<String> matkul_array;
Spinner spmhs,spmatkul;
public static final String TAG_NAMA = "nama_mhs";
public static final String TAG_MATKUL = "matkul";
private JSONArray resultmatkul;
private JSONArray resultmhs;
EditText edtnilaiabsen,edtnilaitugas,edtnilaiuts,edtnilaiuas;
TextView tvnim,tvidmatkul,tvnilaiakhir,tvgradenilai,tvketerangan;
Button btnsimpan;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inputnilai);
mhs_array = new ArrayList<String>();
matkul_array = new ArrayList<String>();
spmhs=(Spinner)findViewById(R.id.spmahasiswa);
spmatkul=(Spinner)findViewById(R.id.spmatkul);
Intent intent =getIntent();
getDatamhs(intent.getStringExtra("kelas"));
getdataMatkul();
edtnilaiabsen=(EditText)findViewById(R.id.edtnilaiabsensi);
edtnilaitugas=(EditText)findViewById(R.id.edtnilaitugas);
edtnilaiuts=(EditText)findViewById(R.id.edtnilaiuts);
edtnilaiuas=(EditText)findViewById(R.id.edtnilaiuas);
tvnilaiakhir=(TextView)findViewById(R.id.tvnilai);
tvgradenilai=(TextView)findViewById(R.id.tvgradenilai);
tvketerangan=(TextView)findViewById(R.id.tvketerangan);
tvnim=(TextView)findViewById(R.id.tvnim);
tvidmatkul=(TextView)findViewById(R.id.tvidmatkul);
btnsimpan=(Button)findViewById(R.id.btnhitung);
btnsimpan.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
double absensi,tugas,uas,uts,hasil,hasil2;
absensi=Double.valueOf(edtnilaiabsen.getText().toString());
hasil2=hasil/4;
spmatkul.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
spmhs.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
private void getDatamhs(String kelas){
StringRequest stringRequest = new
JSONObject j = null;
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void getNama(JSONArray j){
for(int i=0;i<j.length();i++){
spmhs.setAdapter(new ArrayAdapter<String>(InputNilaiActivity.this, android.R.layout.simple_spinner_dropdown_item, mhs_array));
}
private void getdataMatkul(){
StringRequest stringRequest = new StringRequest(DATA_URL_MATKUL, new Response.Listener<String>() {
}
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void getMatkul(JSONArray j){
for(int i=0;i<j.length();i++){
pdModel.pdData(InputNilaiActivity.this);
String url = Config.APP_SERVER+"insertnilai.php" ;
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
String nim = tvnim.getText().toString().trim();
private String getNim(int position){
String nim="";
private String getIdmatkul(int position){
String id_matkul="";
6. RekapNilaiActivity.Java
public class RekapNilaiActivity extends AppCompatActivity { private static final int INPUT_FILE_REQUEST_CODE = 1;
private static final int FILECHOOSER_RESULTCODE = 1;
private static final String TAG = MainActivity.class.getSimpleName();
private WebView webView;
private WebSettings webSettings;
private ValueCallback<Uri> mUploadMessage;
private Uri mCapturedImageURI = null;
private ValueCallback<Uri[]> mFilePathCallback;
private String mCameraPhotoPath;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (requestCode != INPUT_FILE_REQUEST_CODE || mFilePathCallback
mFilePathCallback.onReceiveValue(results);
mFilePathCallback = null;
} else if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) { if (requestCode != FILECHOOSER_RESULTCODE || mUploadMessage ==
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rekap);
webView = (WebView) findViewById(R.id.webview);
webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setAllowFileAccess(true);
webView.setWebViewClient(new Client());
webView.setWebChromeClient(new ChromeClient());
if (Build.VERSION.SDK_INT >= 19) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else if (Build.VERSION.SDK_INT >= 11 && Build.VERSION.SDK_INT <
19) {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
webView.loadUrl(Config.APP_SERVER+"manage_nilai.php");
}
private File createImageFile() throws IOException { String timeStamp = new
SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = Environment.getExternalStoragePublicDirectory(
storageDir );
return imageFile;
}
public class ChromeClient extends WebChromeClient {
public boolean onShowFileChooser(WebView view, ValueCallback<Uri[]>
filePath, WebChromeClient.FileChooserParams fileChooserParams) {
if (takePictureIntent.resolveActivity(getPackageManager()) !=
null) {
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("*/*");
chooserIntent.putExtra(Intent.EXTRA_TITLE, "File Chooser");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivityForResult(chooserIntent, INPUT_FILE_REQUEST_CODE);
return true;
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
Environment.DIRECTORY_PICTURES)
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS , new Parcelable[]{captureIntent});
// On select image call onActivityResult method of activity startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE);
}
// openFileChooser for Android < 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg) { openFileChooser(uploadMsg, "");
}
//openFileChooser for other Android versions
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType,
String capture) { openFileChooser(uploadMsg, acceptType);
} }
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Check if the key event was the Back button and if there's history if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { webView.goBack();
public class Client extends WebViewClient { ProgressDialog progressDialog;
public boolean shouldOverrideUrlLoading(WebView view, String url) { // If url contains mailto link then open Mail Intent
if (url.contains("mailto:")) {
// Could be cleverer and use a regex
return true;
public void onPageStarted(WebView view, String url, Bitmap favicon) {
public static String APP_SERVER="http://192.168.43.110/inputnilai/";
}
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="fill_parent"
android:fitsSystemWindows="true"
android:background="@drawable/bg"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.design.widget.TextInputLayout android:layout_width="match_parent"
</android.support.design.widget.TextInputLayout>
<!-- Password Label -->
<android.support.design.widget.TextInputLayout android:layout_width="match_parent"
</android.support.design.widget.TextInputLayout>
<android.support.v7.widget.AppCompatButton android:id="@+id/btn_login"
android:textColor="@color/white"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bg1">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30pt"
android:paddingBottom="25pt"
</RelativeLayout>
<Button
android:id="@+id/btnpanduan"
android:text="Panduan"
android:textStyle="bold" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="100pt"
android:paddingLeft="7pt">
</RelativeLayout>
<ImageView
android:layout_width="45pt"
android:layout_height="100pt"
android:layout_marginLeft="40dp"
android:layout_marginTop="270dp"
android:src="@drawable/rekapnilaii"
android:clickable="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true" />
<Button
android:id="@+id/btnrekapnilai"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginTop="450dp"
android:text="Rekap nilai"
android:layout_marginLeft="240dp"
android:layout_marginTop="270dp"
android:src="@drawable/logout"/>
<Button
android:id="@+id/btnlogout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="230dp"
android:layout_marginTop="450dp"
android:text="Logout"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/bg"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PanduanActivity">
<LinearLayout home,klik input nilai\n3.Pilih kelasnya\n4.Pilih siswa yang akan diinput nilainya\n6.Kemudian masukkan nilai yang diinginkan\n7.Klik simpan"
android:textSize="20dp"
<TextView home,klik rekap nilai\n3.Pilih kelasnya\n4.Jika ingin mengedit nilai
mahasiswa dengan cara pilih mahasiswa yang akan diedit atau diubah nilainya\n6.Kemudian masukkan nilai yang baru\n7.Klik simpan"
android:textSize="20dp" dalam penginputan nilai di D3 TEKNIK INFORMATIKA USU."
android:textStyle="bold"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
<TextView
android:id="@+id/tvusername"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="asd"
android:visibility="invisible" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
</LinearLayout>
android:layout_gravity="center_horizontal"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
android:background="@drawable/bg">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20sp">
<TextView
android:layout_width="match_parent"
android:text="Mahasiswa :"
android:layout_height="wrap_content" />
<Spinner
android:layout_width="match_parent"
android:id="@+id/spmahasiswa"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:text="Matakuliah :"
android:layout_height="wrap_content" />
<Spinner
android:layout_width="match_parent"
android:id="@+id/spmatkul"
android:layout_height="wrap_content"></Spinner>
<TextView
android:layout_width="match_parent"
android:id="@+id/tvidmatkul"
android:text="0"
android:layout_height="wrap_content" />
<android.support.design.widget.TextInputLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp">
<EditText android:id="@+id/edtnilaiabsensi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:hint="Nilai Tugas" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp">
<EditText android:id="@+id/edtnilaitugas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:hint="Nilai Kuis" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp">
<EditText
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp">
<EditText android:id="@+id/edtnilaiuas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnhitung"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:padding="12dp"
android:textColor="@color/white"
android:background="@color/colorPrimaryDark"
android:text="Simpan"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
</LinearLayout>
$sql = "select active from tbl_pengguna where username='$username' and password='$password'";
$result = mysqli_query($con, $sql);
$response = array("content_access" => array());
while ($row = mysqli_fetch_array($result)) {
$temp = array("active" => $row["active"]);
array_push($response["content_access"], $temp);
include("includes/connection.php");
include("language/language.php");
href="assets/css/theme/blue.css">
<div class="app-container app-login">
<div class="flex-center">
<div class="app-body">
<div class="flipInX-1 blind icon">
<span class="icon">
<div class="input-group" style="border:0px;">
<?php if(isset($_SESSION['msg'])){?>
<div class="alert alert-danger alert-dismissible"
role="alert"> <?php echo $client_lang[$_SESSION['msg']]; ?> </div>
<?php unset($_SESSION['msg']);}?>
</div>
<div class="input-group"> <span class="input-group-addon" id="basic-addon1"> <i class="fa fa-user"
aria-hidden="true"></i></span> class="input-group-addon" id="basic-addon2"> <i class="fa fa-key"
aria-hidden="true"></i></span>
</div>
include("includes/connection.php");
include("language/language.php");
<div class="app-container app-login">
<div class="flex-center">
<div class="app-brand">YukSinau</div>
</div>
<div class="login_title_lineitem">
<div class="line_1"></div>
<div class="flipInX-1 blind icon">
<span class="icon">
<div class="input-group" style="border:0px;">
<?php if(isset($_SESSION['msg'])){?>
<div class="alert alert-danger alert-dismissible"
role="alert"> <?php echo $client_lang[$_SESSION['msg']]; ?> </div>
<?php unset($_SESSION['msg']);}?>
</div>
<div class="input-group"> <span class="input-group-addon" id="basic-addon1"> <i class="fa fa-user"
aria-hidden="true"></i></span> class="input-group-addon" id="basic-addon2"> <i class="fa fa-key"
aria-hidden="true"></i></span>
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$keterangan=$_POST["keterangan"];
$query = "INSERT tbl_nilai SET
nim='$nim',nilai_absensi='$nilai_absensi',nilai_tugas='$nilai_tugas'
include('includes/function.php');
include('language/language.php');
if ($nilai_akhir2 <= 45){
$grade_nilai="E";
$keterangan="Lulus";
'id_nilai' => $_POST['id_nilai'], 'nilai_absensi' => $_POST['nilai_absensi'], 'nilai_tugas' => $_POST['nilai_tugas'], 'nilai_uts' => $_POST['nilai_uts'], 'nilai_uas' => $_POST['nilai_uas'], 'nilai_akhir' => $nilai_akhir2, 'grade_nilai' => $grade_nilai, 'keterangan' => $keterangan
);
$user_qry="SELECT * FROM tbl_nilai where id_nilai='".$_GET['user_id']."'";
if ($nilai_akhir2 <= 59){ 'nilai_absensi' => $_POST['nilai_absensi'], 'nilai_tugas' => $_POST['nilai_tugas'], 'nilai_uts' => $_POST['nilai_uts'], 'nilai_uas' => $_POST['nilai_uas'], 'nilai_akhir' => $nilai_akhir2, 'grade_nilai' => $grade_nilai, 'keterangan' => $keterangan
);
}
$data = array(
'id_nilai' => $_POST['id_nilai'],
'nilai_absensi' => $_POST['nilai_absensi'], 'nilai_tugas' => $_POST['nilai_tugas'], 'nilai_uts' => $_POST['nilai_uts'], 'nilai_uas' => $_POST['nilai_uas'], 'nilai_akhir' => $nilai_akhir2, 'grade_nilai' => $grade_nilai, 'keterangan' => $keterangan
);
}
$user_edit=Update('tbl_nilai', $data, "WHERE id_nilai
= '".$_POST['user_id']."'");
alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert" label="Close"><span
<input type="hidden" name="user_id" value="<?php