Thursday, December 4, 2014

Kalendar Agenda Berbasis Web PHP

Gak terasa udah di penghujung tahun 2014, dan udah lama banget gak bikin postingan di blog ini. Kalo gua inget-inget terakhir kali gua bikin postingan di blog sekitar 5 bulan yg lalu.

Selama itu gua kangen ama ngeblog lagi. Tapi apa daya dikarenakan terserang galau akut, maka kegiatan ngeblog jadi vakum. Dengan mengumpulkan segenap niat dan tenaga, gua putuskan untuk bikin posting baru di blog gua ini.

Mengingat sekarang adalah penghujung tahun 2014, pasti sudah banyak orang membuat daftar acara/agenda apa saja yg bakal dilakuin di tahun 2014. Gua bakal posting bagaimana membuat kalendar agenda berbasiskan web PHP.

Sebenarnya aplikasi sudah ada yg posting di salah satu web, kalau gak salah www.diskusiweb.com. Tapi gua lupa gak catet urlnya. So bagi pemilik script kalendar agenda berbasiskan web php, gua mohon ini untuk repost. Kalo tidak berkenan bakal gua hapus postingan gua ini.

Supaya gak penasaran dan terlalu panjang lebar, please refer to script below

1. Buat tabel dengan nama t_kalendar_agenda

CREATE TABLE IF NOT EXISTS `t_kalendar_agenda` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tgl_acara` date NOT NULL,
  `tgl_kalendar` varchar(10) NOT NULL,
  `subjek` text NOT NULL,
  `keterangan` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

2. Buat script untuk form input
<html>
       <head>
              <title>Form Input Kalendar Agenda</title>
               
              <style type="text/css">
              th
              {
                color            : #FFFFFF;
                font-size        : 10pt;
                padding          : 0.1em;
                border-width     : 1px;
                border-style     : solid;
                border-color     : #969BA5;
                border-collapse  : collapse;
                background-color : #00FF00;      
              }
              </style>
               
              <link href="../demoengine/demoengine.min.css" rel="stylesheet">
              <script src="../demoengine/demoengine.min.js" defer></script>
              <link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/ui-darkness/jquery-ui.min.css" rel="stylesheet">
              <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
              <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>
               
              <script language="JavaScript">
              /*
               * jQuery UI Datepicker: Parse and Format Dates
               * http://salman-w.blogspot.com/2013/01/jquery-ui-datepicker-examples.html
               */
             
              $(function() {
                $("#tgl_acara").datepicker({
                  dateFormat: "yy-mm-dd"
                });
              });
              </script>
       </head>
       <body>
              <form method="POST" action="input_jadwal_agenda.php">
              <table>
                      <tr>
                           <td>Jadwal Agenda</td>
                           <td align="center"> : </td>
                           <td><input id="tgl_acara" type="text" name="tgl_acara"></td>
                      </tr>
                      <tr>
                           <td>Subjek Agenda</td>
                           <td align="center"> : </td>
                           <td><input type="text" name="subjek"></td>
                      </tr>
                      <tr>
                           <td>Detail Agenda</td>
                           <td align="center"> : </td>
                           <td><textarea name="keterangan" cols="45" rows="3"></textarea></td>
                      </tr>
                      <tr>
                           <td colspan="3" align="center"><input type="submit" value="Submit"> | <input type="button" value="Cancel" onclick=self.history.back()></td>
                      </tr>
              </table>
              </form>
       </body>
</html>


3. Nah ini bagian yg ribet, yaitu bagian input ke dalam tabel, karena harus mengubah format date ke dalam format varchar dan menghilangkan angka nol di depan tanggal dan bulan

<html>
       <head>
              <title>Input Data Jadwal</title>
       </head>
       <body>
              <?php
             
              #Mengubah format date menjadi varchar untuk tanggal kalendar agenda
              $pecah = explode("-", $_POST['tgl_acara']);
              $date  = $pecah[2];
              $month = $pecah[1];
              $year  = $pecah[0];
           
              #Menghilangkan angka nol di depan tanggal dan bulan            
              $tgl   = ltrim($date,'0');
              $bln   = ltrim($month,'0');
               
              $jadwal_kalendar = "$tgl-$bln-$year";
               
              include "koneksi.php";
               
              mysql_query("INSERT INTO t_kalendar_agenda(tgl_acara,
                                                         tgl_kalendar,
                                                         subjek,
                                                         keterangan)
                                                  VALUES('$_POST[tgl_acara]',
                                                         '$jadwal_kalendar',
                                                         '$_POST[subjek]',
                                                         '$_POST[keterangan]')");
               
               header('location:tampil_jadwal_agenda.php');
               
               ?>
       </body>
</html>

4. Tampilan data agenda yg di input

<html>
       <head>
              <title>Tampil Data Jadwal Agenda</title>
               
              <style type="text/css">
              th
              {
                color            : #FFFFFF;
                font-size        : 10pt;
                padding          : 0.1em;
                border-width     : 1px;
                border-style     : solid;
                border-color     : #969BA5;
                border-collapse  : collapse;
                background-color : #00FF00;      
              }
              </style>
       </head>
       <body>
              <a href="form_input_kalendar_agenda.php" style="text-decoration:none; color: red;">Input Agenda</a> | <a href="kalendar_agenda.php" style="text-decoration:none; color: red;" target="blank">Lihat Kalendar</a>
               
              <br><br>
               
              <table border="1">
                     <tr>
                          <th>No.</th>
                          <th>Tanggal Agenda</th>
                          <th>Subjek</th>
                          <th>Detail Agenda</th>
                     </tr>
                       
                     <?php
                       
                     include "koneksi.php";
                     include "fungsi_indotgl.php";
                       
                     $no = 1;
                       
                     $sql_1 = mysql_query("SELECT * FROM t_kalendar_agenda ORDER BY id ASC");
                     while($a=mysql_fetch_array($sql_1))
                     {
                     ?>
                       
                        <?php
                        #Ubah menjadi format tanggal Indonesia untuk tanggal input dan tanggal maintenance
                        $tgl_acara = tgl_indo($a['tgl_acara']);
                        ?>
                           
                        <?php
                        #Merapikan keluaran untuk format teks untuk keterangan
                        $keterangan = nl2br($a['keterangan']);
                        ?>
                       
                        <tr>
                             <td width="50" align="center"><?php echo"$no"; ?></td>
                             <td width="100" align="center"><?php echo"$tgl_acara"; ?></td>
                             <td width="250" align="justify"><?php echo"$a[subjek]"; ?></td>
                             <td width="325" align="justify"><?php echo"$keterangan";?></td>
                        </tr>
                           
                        <?php $no++; ?>
                           
                      <?php
                      }
                      ?>
              </table>               
      </body>
</html>


5. OK, mari kita buat untuk output kalendar agendanya

<html>
       <head>
              <title>Kalendar Agenda</title>
               
              <style type="text/css">
              table
              {
                border : 0px solid #000000;
              }
              th
              {
                background-color : #00FF00;
                color            : #FFFFFF;
              }
              </style>
       </head>
       <body>
              <h2 align="center">Kalendar Maintenance</h2>
             
              <?php
                   
              $monthNames = Array("Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli",
                                  "Agustus", "September", "Oktober", "November", "Desember");
              ?>

              <?php
                
              if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
              if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
                
              ?>

              <?php
              $cMonth = $_REQUEST["month"];
              $cYear  = $_REQUEST["year"];

              $prev_year  = $cYear;
              $next_year  = $cYear;
              $prev_month = $cMonth-1;
              $next_month = $cMonth+1;

              if($prev_month == 0 )
              {
                 $prev_month = 12;
                 $prev_year = $cYear - 1;
              }

              if($next_month == 13 )
              {
                 $next_month = 1;
                 $next_year = $cYear + 1;
              }
              ?>
               
              <table border="1">
                     <tr>
                          <td align="left"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>">Previous</a></td>
                          <td align="center" colspan="5"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
                          <td align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>">Next</a></td>
                     </tr>
                     <tr>
                          <th width=250>Minggu</th>
                          <th width=250>Senin</th>
                          <th width=250>Selasa</th>
                          <th width=250>Rabu</th>
                          <th width=250>Kamis</th>
                          <th width=250>Jum'at</th>
                          <th width=250>Sabtu</th>
                     </tr>
           
                     <?php
                       
                     $timestamp = mktime(0,0,0,$cMonth,1,$cYear);
                     $maxday    = date("t",$timestamp);
                     $thismonth = getdate ($timestamp);
                     $startday  = $thismonth['wday'];
                    
                     for ($i=0; $i<($maxday+$startday); $i++)
                     {
                       if(($i % 7) == 0 )
                       {
                           echo "<tr>";
                       }
                      
                       if($i < $startday)
                       {
                          echo "<td></td>";
                       }
                       else
                       {
                          include "koneksi.php";
       
                          $sql_1    = "SELECT * FROM t_kalendar_agenda WHERE tgl_kalendar='".($i - $startday + 1).'-'.$cMonth.'-'.$cYear."'";
                          $hs       = mysql_query($sql_1);
                          $jmlAcara = mysql_num_rows($hs);
                           
                          echo "<td valign='top' height='150px'".($jmlAcara > 0 ? " " : '').">";
                          echo ($i - $startday + 1);
                           
                          if($jmlAcara > 0)
                          {
                             while($acara = mysql_fetch_array($hs))
                             {
                               echo"<br><a href=detail_agenda.php?id=$acara[id] style=text-decoration:none; color: blue; target='_blank'><font size=2>$acara[subjek]</font></a>";
                             }
                          }
                           
                          echo "</td>";
                       }
                     
                       if(($i % 7) == 6 )
                       {
                           echo "</tr>";
                       }
                     }
           
                     ?>           
              </table>
       </body>
</html>


6. Dan terakhir buatlah detail dari agenda yg di input ke dalam kalendar

<html>
       <head>
              <title>Detail Agenda</title>
       </head>
       <body>
              <?php
             
              $id = $_GET['id'];
             
              include "koneksi.php";
              include "fungsi_indotgl.php";
             
              $sql_1 = mysql_query("SELECT * FROM t_kalendar_agenda WHERE id='$id'");
              $a     = mysql_fetch_array($sql_1);
             
              ?>
             
              <?php
              #Ubah menjadi format tanggal Indonesia untuk tanggal acara
              $tgl_acara = tgl_indo($a['tgl_acara']);
              ?>
             
              <?php
              #Merapikan format teks untuk detail acara
              $detail = nl2br($a['keterangan']);
              ?>
             
              <table>
                      <tr>
                           <td>Tanggal Agenda</td>
                           <td align="center"> : </td>
                           <td><?php echo"$tgl_acara"; ?></td>
                      </tr>
                      <tr>
                           <td>Subjek</td>
                           <td align="center"> : </td>
                           <td><?php echo"$a[subjek]"; ?></td>
                      </tr>
                      <tr>
                           <td>Detail</td>
                           <td align="center"> : </td>
                           <td><?php echo"$detail"; ?></td>
                      </tr>
              </table>
       </body>
</html>


Bagi yg kurang jelas, masih bingung bisa menghubungi gua via email. Ato yg ingin file lengkapnya silahkan download di sini.

6 comments:

  1. Perkenalkan, saya dari tim kumpulbagi. Saya ingin tau, apakah kiranya anda berencana untuk mengoleksi files menggunakan hosting yang baru?
    Jika ya, silahkan kunjungi website ini www.kumpulbagi.com untuk info selengkapnya.

    Di sana anda bisa dengan bebas share dan mendowload foto-foto keluarga dan trip, music, video, filem dll dalam jumlah dan waktu yang tidak terbatas, setelah registrasi terlebih dahulu. Gratis :)

    ReplyDelete
  2. mau tanya... file "fungsi_indotgl.php" dibagian mana ya?

    ReplyDelete
  3. setiap nama penyimpanan filenya yang gk jelas

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete

Tiket Bus Dengan Format Ms. Excel

 Hi Teman-teman, Udah lama buangeeetttt ga update blog ini dan mungkin juga udah di anggap ilang sama Google.  Mumpung ada energi positif bu...