Aplikasi PSB Berbasis Web Versi 2

Pada aplikasi psb (penerimaan siswa baru) versi yang kedua ini ada beberapa penambahan fitur/kemampuan aplikasi yang tidak dimiliki oleh versi sebelumnya diantaranya, fungsi penggantian username dan password administrator, penambahan fitur upload gambar untuk siswa, dan menampilkan foto tersebut pada halaman administrator.

Lihat : 
 
Penambahan fungsi upload dan tampil gambar
Pada versi sebelumya aplikasi pada halaman registrasinya belum Saya lengkapi dengan fasilitas untuk upload gambar siswa, pada versi yang terbaru ini sudah Saya lengkapi dengan fasilitas untuk uplod gambar sehingga diharapkan administrator bukan hanya mengetahui siswa dari data nama dan alamatnya saja melainkan juga dari fotonya. Script yang diperbaharui pada fasilitas ini diantaranya
form penerimaan siswa yang baru
Tampilan form penerimaan siswa dengan tambahan upload file
menampilkan data siswa
Menampilkan data siswa beserta foto


1.form_psb.php

Penambahan fungsi enctype="multipart/form-data dan input file pada form karena memang form ini bukan hanya mengirim data biasa namun juga data gambar. Berikut potongan kodenya
<?php
include('key_sesi.php');

?>      <ul class="actions small">
           
            </ul>  
<h3>Form Pendaftaran Siswa Baru</h3>
<p>Silahkan isi form dibawah ini dengan lengkap dan benar</p>
<form method="post" action="formaksi.php" enctype="multipart/form-data">
<div class="row uniform">
<div class="12u"><input type="text" name="nama" id="nama" placeholder="Nama" required="" /></div>
<div class="12u"><input type="text" name="alamat" id="alamat" placeholder="Alamat" required="" /></div>
<div class="12u"><input type="text" name="ttl" id="ttl" placeholder="Tempat Tanggal Lahir" required="" /></div>
<div class="12u"><input type="text" name="asal_sekolah" id="asal_sekolah" placeholder="Asal Sekolah" required="" /></div>
<div class="12u"><input type="text" name="nisn" id="nisn" placeholder="NISN" /></div>
<div class="12u"><input type="text" name="no_tlp" id="no_tlp" placeholder="Nomor Telepon" required="" /></div>

<div class="12u"><input type="file" name='gambar' id='gambar' required=""/></div>
           
 </div>
 <br/>
<div cla<diss="row uniform">
<div class="12u">
<ul class="actions">
<li><input type="submit" class="special" value="kirim" /></li>
<li><input type="reset" value="Batal" /></li>
</ul>
</div>
</div>
</form>
</div>
</section>
       
<section>
<div class="container">
<h5>Contoh Format Penulisan</h5>
<div class="table-wrapper">
<table class="alt">
<thead>
<tr>
<th>Data form</th>
<th>Isian Form</th>
              
</tr>
</thead>
<tbody>
<tr>
 <td>Nama</td>
 <td>Ahmad Sbastian</td>
 <tr>
 <td>Alamat</td>
 <td>Dusun Babakan RT 01 RW 04 Kec.Parigi Kab Pangandaran</td>
              
 </tr>
             
 <tr>
 <td>Tempat tanggal lahir</td>
 <td>Ciamis 30 juli 1991</td>
              
 </tr>
 <tr>
 <td>Asal Sekolah</td>
 <td>SMPN 1 Parigi</td>
   
 </tr>
 <tr>
 <td>NISN</td>
 <td>35268528554</td>   
 </tr>
 <tr>
 <td>Telepon</td>
 <td>08212787777</td>
  
  </tr></tbody> 
      </table></div></div></section>
<!-- ROOT93 PSB (aplikasi penerimaan siswa baru berbasis web)
 ********************************************
 * Created      : Ahmad Zaelani    *
 * Update   : 18 April 2017   *
 * E-mail       : myroot593@gmail.com  *
  ********************************************
 -->



2.form_aksi.php
Penambahan fungsi validasi gambar seperti mengecek ektensi dan besar gambar. Kemudian fungsi untuk rename dan memindahkan gambar ke sebuah direktori gambar yang sudah disediakan. Gambar yang di upload kedatabase nantinya hanya berupa path/nama file gambarnya saja. Pada halaman administrator nanti dibuatlah fungsi untuk mengakses gambar dengan tambahan path/letak folder gambar ditaruh. Berikut ini adalah potongan kode dari form_aksi.php
<?php
include('key_sesi.php');
include('connect.php');
$name=true;
if($_POST['nama']=="") {
 echo "Nama Belum Diisi<br/>";
 $name=false;
}
$al=true;
if($_POST['alamat']=="") {
 echo"Alamat belum diisi<br/>";
 $al=false;
}
$te=true;
if($_POST['ttl']==""){
 echo"Tempat tanggal lahir belum diisi<br/>";
 $te=false;
}
$as=true;
if($_POST['asal_sekolah']=="") {
 echo"Asal Sekolah belum diisi<br/>";
 $as=false;
}
$nis=true;
if($_POST['nisn']==""){
echo "NISN Belum diisi<br/>";
$nis=false;

}
$tlp=true;
if($_POST['no_tlp']=="") {
 echo "No telepon belum diisi";
 $tlp=false;
}
$gbr=true;
if($_FILES['gambar']=="") {
 echo "Gambar masih kosong";
 $gbr=false;
}

      
$cek=($name&&$al&&$te&&$as&&$nis&&$tlp&&$gbr)?true:false;


if($cek==true){//cek lagi apakan semua sudah diisi
$imgFile = $_FILES['gambar']['name'];
$tmp_dir = $_FILES['gambar']['tmp_name'];
$imgSize = $_FILES['gambar']['size'];

$upload_dir = 'gambar/';
$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); 
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); 
$itempic = rand(1000,1000000).".".$imgExt; //rename kedalam angka

  //validasi ektensi gambar b2
   if(in_array($imgExt, $valid_extensions)){   
  //jika gambar lebih kecil b1
    if($imgSize < 5000000)    {
     move_uploaded_file($tmp_dir,$upload_dir.$itempic);
 $perintah=sprintf("INSERT INTO daftar
 VALUES('null','%s','%s','%s','%s','%s','%s','$itempic')",
 $_POST['nama'],
 $_POST['alamat'],
 $_POST['ttl'],
 $_POST['asal_sekolah'],
 $_POST['nisn'],
 $_POST['no_tlp'],
 '$itempic');
$query=@mysql_query($perintah,$koneksi);
if(!$query) {
    echo "Akses Gagal<br/>";
    echo "ERROR:".mysql_error();
    }
    else{     
   echo "<script>alert('Data successfully saved!')</script>";   
   echo "<script>window.open('key_destroy.php','_self')</script>";
    }
   }
   //jika gambar kecil b1
   
   else{
   echo "<script>alert('Sorry, your file is too large.')</script>"; 
   echo "<script>window.open('index.php?page=daftar','_self')</script>";
   }
   //jika gambar terlalu besar b1

}//akhiri fungsi b1
//validasi ektensi gambar b2
   else{
    
 echo "<script>alert('Sorry, only JPG, JPEG, PNG & GIF files are allowed.')</script>";    
 echo "<script>window.open('index.php?page=daftar','_self')</script>";
    
   }
//validasi akhir b2
}
  



?>
<!-- ROOT93 PSB (aplikasi penerimaan siswa baru berbasis web)
 ********************************************
 * Created      : Ahmad Zaelani    *
 * Update   : 18 April 2017   *
 * E-mail       : myroot593@gmail.com  *
  ********************************************
 -->


3.lihat_data_siswa.php
Pada file ini sudah Saya tambahkan fungsi untuk menampilkan gambar yang di upload oleh siswa. Kode akan mengambil letak/path gambar yang disimpan kemudian diikuti dengan parameter untuk mengakses nama gambar yang tersimpan di database. Berikut ini script dari lihat_data_siswa.php yang baru
<?php include('sesi.php'); ?>

<?php
//This code created by root93.co.id
//if you have any question
//contact me : myroot593@gmail.com
$awal=0;
$byk_tampil=5;
if(isset($_GET['hal'])){
    $awal=$_GET['hal']*$byk_tampil;
}
require_once('connect.php');
$perintah=sprintf("SELECT * FROM daftar");
$limit="limit $awal,$byk_tampil";
$per_limit=sprintf("%s %s",$perintah,$limit);
$query=@mysql_query($perintah,$koneksi);
$jml_siswa=mysql_num_rows($query);

?>


<!DOCTYPE HTML>

<html>
 <head>
  <title>Admin Panel</title>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <!--[if lte IE 8]><script src="../assets/js/ie/html5shiv.js"></script><![endif]-->
  <link rel="stylesheet" href="../assets/css/main.css" />
   <!--[if lte IE 8]><link href="../assets/css/ie8.css" type="text/css" rel="stylesheet"><![endif]-->
 </head>
 <body>
         <!-- Header -->
<section id="header">
<header>
<span class="image avatar"><img src="../images/avatar.jpg" alt=""></span>
<h1 id="logo"><a href="#">Admin Panel SMKN 1 Parigi</a></h1>
<p>Halaman Admin Panel PSB<br />
SMKN 1 Parigi Kab. Pangandaran</p>
</header>
<nav id="nav">
<ul>
<li><a href="#home" class="active">Home</a></li>
<li><a href="lihat_data_siswa.php">Data Siswa</a></li>
<li><a href="lihat_data_siswa.php?page=input_key">Masukan Key</a></li>
<li><a href="admin.php">Pengaturan Admin</a></li>
<li><a href="lihat_data_siswa.php?page=logout">Logout</a></li>
</ul>
</nav>
</section>
   
         <!-- Wrapper -->
<div id="wrapper">
<div class="container">
<?php
$page=(isset($_GET['page']))?$_GET['page']:"main";
switch($page) {
case'input_key':include"input_key.php";break;
case'logout':include"logout.php";break;
case 'main':
}
?>
<section>
<h3 align="center">DATA CALON SISWA</h3>
<div class="table-wrapper">
<table class="alt">
<tbody>
 <tr>
 <th>No</th>
 <th>Nama</th>
 <th>Alamat</th>
 <th>TTL</th>
 <th>Asl Sekolah</th>
 <th>NISN</th>
 <th>No.HP</th>
 <th>Foto</th> 
 <th>Delete</th> 
 <th>Edit</th>               
 </tr>
<?php  
while($data=mysql_fetch_array($query)) {
?>             
             
<tr>
<td><?php echo $data['id'];?></td>
<td><?php echo $data['nama'];?></td>
<td><?php echo $data['alamat'];?></td>
<td><?php echo $data['ttl'];?></td>
<td><?php echo $data['asal_sekolah'];?></td>
<td><?php echo $data['nisn'];?></td>
<td><?php echo $data['telepon'];?></td> 
<td><img src="../psb/gambar/<?php echo $data['gambar']; ?>" width="50" height="50"/></td> 
<td><a href="delete.php?del=<?php echo $data['id']?>">Delete</a></td>
<td><a href="edit_siswa.php?idedit=<?php echo $data['id']?>">Edit</a></td>     </tr><?php } ?> 
</tbody>          
</table>
<center>
<?php
//This code created by root93.co.id
$ke=$_SERVER['PHP_SELF'];
$page=ceil($jml_siswa/5); //jumlah data dibagi 5
$pg=1;
while($pg<=$page){ //jika $pg kurang dari atau sama dengan $page
    $hal=$pg-1; //maka $hal=$pg dikurangi 1
    echo "<a href=\"$ke?hal=$hal\">$pg</a>";
    $pg+=1;
}
?>
<br/>
Halaman :<?php echo "$hal dari $page";?><br/></center>
</section>
</div>
</div>
          

   <!-- Footer -->
<?php include('footer.php');?>
  
  

 </body>
</html>
<!-- ROOT93 PSB (aplikasi penerimaan siswa baru berbasis web)
 ********************************************
 * Created      : Ahmad Zaelani    *
 * Update   : 18 April 2017   *
 * E-mail       : myroot593@gmail.com  *
  ********************************************
 -->



Penambahan fungsi untuk ganti username & password Administrator
 
Fungsi yang dibuat ujtuk mengganti nama, username dan password ini sebenarnya di adopsi dari script sebelumnya yaitu script edit_siswa.php dan update_siswa.php pada folder mimin, hanya saja disini saya tidak menggunakan fungsi $_GET karena memang jumlah Administratornya hanya satu sehingga Saya langsung menentukan data – data untuk administratornya secara manual didalam script. Berikut ini adala 2 file yang Saya tambahkan kedalam folder administrator
halaman untuk mengganti username dan password


1. admin.php

File ini digunakan untuk menampilkan, mengedit data administrator dalam sebuah form, seperti nama, username, password dan password administrator. Level administrator sudah ditentukan sendiri dan di set dengan nilai 1 (satu) untuk session admin. Data pada form untuk selanjutnya akan dikirim ke halaman update_admin.php. Berikut ini adalah file dari admin.php
<?php include('sesi.php'); ?>
<?php
//This code created by root93.co.id
//if yoau have any question
//contact me : myroot593@gmail.com
include('connect.php');
$query="select * from user where id='1'";
$perintah=@mysql_query ($query,$koneksi) 
or die ("Gagal konek".mysql_error());
$dta_admin=mysql_fetch_array($perintah);
$dta_idadmin =$dta_admin['id'];
$dta_username =$dta_admin['username'];
$dta_password =$dta_admin['password'];
$dta_namaadmin=$dta_admin['nama'];
$dta_email=$dta_admin['email'];
$dta_level=$dta_admin['level'];

?>

<!DOCTYPE HTML>

<html>
 <head>
  <title>Admin Panel</title>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <!--[if lte IE 8]><script src="../assets/js/ie/html5shiv.js"></script><![endif]-->
  <link rel="stylesheet" href="../assets/css/main.css" />
   <!--[if lte IE 8]><link href="../assets/css/ie8.css" type="text/css" rel="stylesheet"><![endif]-->
 </head>
 <body>
      <!-- Header -->
<section id="header">
<header>
<span class="image avatar"><img src="../images/avatar.jpg" alt=""></span>
<h1 id="logo"><a href="#">Admin Panel SMKN 1 Parigi</a></h1>
<p>Halaman Admin Panel PSB<br />
SMKN 1 Parigi Kab. Pangandaran</p>
</header>
<nav id="nav">
<ul>
<li><a href="#home" class="active">Home</a></li>
<li><a href="lihat_data_siswa.php">Data Siswa</a></li>
<li><a href="lihat_data_siswa.php?page=logout">Logout</a></li>
</ul>
</nav> 
</section>
   
      <!-- Wrapper -->
<div id="wrapper">
<section>
<div class="container">

<h3 align="center">Ganti Admin</h3>
<form action="update_admin.php" method="post" name="form1" target="_self">
<div class="table-wrapper">
<table class="alt">
<tbody>
<tr>
<td>Nama Admin</td>
<td><input name="namaadmin" type="text" value="<?php echo"$dta_namaadmin";?>"><input name="id" type="hidden" value="<?php echo "$dta_idadmin";?>"></td>
</tr>
<tr>
<td>Username</td>
<td><input name="username" type="text" id="username" value="<?php echo"$dta_username";?>">
</td>
</tr>
<tr>
<td>password</td>
<td><input name="password" type="password" id="password" placeholder="Masukan Password Baru"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" id="email" name="email" value="<?php echo "$dta_email";?>">
<input type="hidden" id="level" name="level" value="<?php echo "$dta_level";?>">
</td>
</tr>
<tr>
<td></td>
<td><input type="reset" name="batal" value="Batal"> | <input name="update" type="submit" value="Update"></td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
</div>
       <!-- Footer -->
<?php include('footer.php');?>
  
</body>
</html>
<!-- ROOT93 PSB (aplikasi penerimaan siswa baru berbasis web)
 ********************************************
 * Created      : Ahmad Zaelani    *
 * Update   : 18 April 2017   *
 * E-mail       : myroot593@gmail.com  *
  ********************************************
 -->



2.update_admin.php
File ini bertugas untuk memastikan semua data – data yang diinputkan pada halaman admin.php sudah benar, bila semua data sudah diisi maka selanjutnya akan ada proses query dengan perintah UPDATE sesuai dengan data – data yang di masukan pada halaman admin.php. Berikut adalah script dari update_admin.php
<?php
//This code created by root93.co.id
//if you have any question
//contact me : myroot593@gmail.com
include('sesi.php');
include('connect.php');

$id =$_POST['id'];
$username =$_POST['username'];
$password =$_POST['password']
$nama=$_POST['namaadmin'];
$email=$_POST['email'];
$level=$_POST['level'];

//Validasi, jika kosong tidak akan diproses
if(empty($id)){
?><script language="JavaScript">alert('Id kosong !');
document.location=('admin.php')</script>
<?php
}
else if(empty($username)){
?><script language="JavaScript">alert('Username Kosong!');
document.location=('admin.php')</script>
<?php
}
else if(empty($password)){
?><script language="JavaScript">alert('Password belum diisi');
 document.location=('admin.php')</script>
<?php
}
else if(empty($nama)){
?><script language="JavaScript">alert('Nama Administrator belum diisi');
 document.location=('admin.php')</script>
<?php
}
else if(empty($email)){
?><script language="JavaScript">alert('Email masih kosong');
 document.location=('admin.php')</script>
<?php
}
else if(empty($level)){
?><script language="JavaScript">alert('Level Admin kosong');
 document.location=('admin.php')</script>
<?php
}

else{
 //Bila semuanya telah di cek maka lanjutkan update
 $sql_ubah="UPDATE user SET
    username='$username',
    password='$password',
    nama='$nama',
    email='$email',
    level='$level'
        
   WHERE id='$id'";
   
  mysql_query($sql_ubah,$koneksi) or die ("Perubahan data gagal".mysql_error());
  ?><script language="JavaScript">alert('Data Berhasil diubah !');
document.location=('admin.php')</script>
<?php
 
  exit;
}
?>
<!-- ROOT93 PSB (aplikasi penerimaan siswa baru berbasis web)
 ********************************************
 * Created      : Ahmad Zaelani    *
 * Update   : 18 April 2017   *
 * E-mail       : myroot593@gmail.com  *
  ********************************************
 -->



Mungkin masih banyak lagi fitur – fitur/kemampuan yang harus Saya tambahkan pada aplikasi ini, sehingga aplikasi penerimaan siswa baru ini bisa tampil lebih sempurna lagi. Untuk itu bila Anda memiliki kritik dan saran ataupun informasi tentang bugs pada aplikasi penerimaan siswa baru versi 2 ini Anda bisa langsung menghubngi Saya melalui halaman Contact Us


DOWNLOAD
#Update 12-05-2017
DOWNLOAD
Demo Aplikasi Penerimaan Siswa Baru (PSB) Berbasis Web versi 2
#Update 27-05-2017 - kesalahan memproses kunci masuk
 DOWNLOAD


Update #23/06/17
Aplikasi PSB (Penerimaan Siswa Baru) diatas sudah saya rombak dan berganti menjadi Aplikasi Penerimaan Peserta Didik Baru (PPDB), pergantian ini bukan hanya sekedar pergantian atau perubahan dalam penamaanya saja, melainkan kemampuannya juga berbeda. Silahkan lihat dokumentasi dan penjelasaanya melalui halaman berikut : Aplikasi Penerimaan Peserta Didik Baru (PPDB) 


Baru : Pembaharuan dari Aplikasi PPDB versi 2.3 sudah direlease. Anda bisa mengunduh versi 3 dari Aplikasi PPDB ini pada halaman Aplikasi PPDB Berbasis Web Versi 3

3 Responses to "Aplikasi PSB Berbasis Web Versi 2 "

  1. Wah bisa dibuat proposal penawaran ini ke sekolah2...proyek..proyek....hehehe....

    ReplyDelete
  2. Martahira Rahim,STMay 28, 2018 at 2:07 AM

    trms.

    ReplyDelete
  3. Wasobi IndonesiaApril 3, 2020 at 10:51 PM

    Hal terbaik ketika banyak memberikan manfaat bagi orang lain. Tetap semangat dan selalu berinofasi. Hasil karya yang berguna bagi anak bangsa....Sukses selalu....Tks

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin

nagabet76slot gacorslot online1213141516Slot Online Menghadirkan Pengalaman Digital Yang Didukung Pemrosesan Data Secara Real TimeMahjongways Menganalisis Pola Visual Dan Dinamika Simbol Berdasarkan Pemrosesan Data DigitalMahjongways Mengembangkan Dinamika Permainan Melalui Pengelolaan Data Dan Elemen Visual TerintegrasiAnalisis Komputasi Modern Membantu Memetakan Dinamika Sistem Digital Berdasarkan Data ObservasiMember Baru Mendorong Dinamika Komunitas Digital Menuju Pengalaman Yang Lebih Aktif Dan Menarikslot onlinemahjongwayasarsitektur layananpemrosesan data adaptifmember baruSlot Online Terbaru Menghadirkan AnalisisScatter Hitam Dianalisis Melalui PemetaanPola Scatter Hitam Membentuk Distribusi Visual Yang Dapat Dikaji Menggunakan Komputasi AdaptifArsitektur Teknologi TerdistribusiTeknologi Visualisasi DataMahjongways Mengembangkan Interaksi Visual Melalui Integrasi Simbol Digital Yang DinamisAnalisis Mahjongways Memetakan Dinamika Visual Dan Respons Antarmuka Berbasis DataScatter Hitam Dianalisis Melalui Pemetaan Struktur Simbol Digital Berbasis Komputasi AdaptifAlgoritma Scatter Hitam Membantu Mengidentifikasi Dinamika Pola Melalui Analisis Data ObservasiPg Soft Mengembangkan Sistem Rendering Adaptif Untuk Mendukung Visualisasi Digital ModernTeknologi Pg Soft Mengoptimalkan Pemrosesan Grafis Melalui Arsitektur Rendering TerintegrasiTeknologi Pemodelan Data Membantu Menganalisis Dinamika Informasi Pada Ekosistem Digital ModernArsitektur Komputasi Terdistribusi Meningkatkan Keandalan Pengelolaan Data Pada Platform DigitalTeknologi Kecerdasan Komputasional Mendorong Pengembangan Sistem Digital Yang Lebih AdaptifPemrosesan Data Modern Membantu Memetakan Pola Informasi Melalui Pendekatan Komputasi TerukurTeknologi Integrasi Data Mempermudah Sinkronisasi Informasi Dalam Lingkungan Digital TerpaduVisualisasi Komputasi Modern Membantu Menginterpretasikan Perubahan Pola Pada Sistem Digital KompleksTeknologi Otomasi Data Meningkatkan Efisiensi Pengelolaan Informasi Pada Infrastruktur DigitalModel Komputasi Adaptif Mendukung Pengembangan Teknologi Digital Melalui Analisis Data BerkelanjutanPengembangan Pg Soft Mengintegrasikan Teknologi Rendering Dengan Interaksi Visual Yang ResponsifPg Soft Menerapkan Komputasi Visual Untuk Meningkatkan Efisiensi Pengolahan Elemen DigitalEksplorasi Scatter Hitam Memetakan Distribusi Simbol Melalui Model Analitik Digital TerintegrasiPola Scatter Hitam Dikaji Menggunakan Pendekatan Visualisasi Data Dan Pemodelan StatistikMahjongways Menghadirkan Pendekatan Visual Interaktif Melalui Pemrosesan Simbol Yang AdaptifEksplorasi Mahjongways Mengungkap Perubahan Pola Visual Dalam Lingkungan Digital Terintegrasiqris dan pg soft dalam pembahasan ekosistem transaksi digitalmemahami kaitan pembayaran qris dengan platform game pg softpg soft dan perkembangan teknologi pembayaran berbasis qrissistem nontunai qris dalam konteks layanan game digitalqris pada platform game dan pentingnya verifikasi transaksimenelusuri hubungan qris dan layanan digital pg softpg soft qris dan perubahan kebiasaan pembayaran melalui mobilekeamanan transaksi qris dalam pembahasan platform game onlineteknologi pembayaran qris dan ekosistem game pg softmengenal batas layanan qris dan platform permainan digitalmahjong ways dan detail simbol yang membentuk identitas permainanmengulik animasi mahjong ways dari sudut desain digitalmahjong ways dalam perbincangan tren game di komunitas internetperpaduan motif klasik dan visual modern pada mahjong waysmahjong ways mengenal fitur tumble dan perubahan simbolwarna dan komposisi grafis yang menandai tampilan mahjong waysmahjong ways dan perjalanan game bertema tile ke platform mobilemembedah mitos pola permainan mahjong ways dengan fakta probabilitasmahjong ways menjadi bahan cerita di tengah budaya game digitaldi balik tampilan mahjong ways ada peran audio dan animasigame online menghadirkan misi unik dan dunia penuh kejutanmenjelajahi arena dan karakter dalam game online populergame online dan strategi pemain menghadapi tantangan baruketika game online menjadi ruang berkumpul komunitas digitalrahasia desain level yang membuat game online menarik dijelajahigame online dalam perubahan gaya bermain generasi mudadari misi sampingan hingga bos akhir dunia game onlinekarakter dan alur cerita yang membentuk identitas game onlinegame online menggabungkan eksplorasi dan interaksi antarpemainmenelusuri evolusi mode permainan dalam game onlinegame digital membuka ruang eksperimen bagi desainer visualdi balik layar proses pembuatan dunia game digitalteknologi audio 3d mengubah suasana dalam game digitalgame digital dan perkembangan karakter berbasis kecerdasan buatantekstur pixel dan perjalanan estetika game digitalbagaimana fisika virtual membentuk gerakan dalam game digitalgame digital menjelajahi batas antara seni dan teknologiproses rendering menghidupkan lingkungan game digitaldunia terbuka menjadi tantangan baru produksi game digitalinovasi kontrol interaktif dalam perjalanan game digital modern