Académique Documents
Professionnel Documents
Culture Documents
Pada tulisan saya sebelumnya telah saya posting bagaimana membuat aplikasi konversi notasi
infix-prefix-postfix serta aplikasi kalkulator formula 1 digit, kemarin sebenarnya ada tugas
Struktur Data agar kalkulator formulanya bisa lebih dari 1 digit bahkan sampe sekian digit,
kemarin udah tak buat dengan VB.Net tapi nggak tak posting.
Nah barusan saya iseng-iseng untuk buat pake bahasa PHP coz biar gak lupa coz terakhir pake
PHP pas waktu Tugas Akhir SMK suruh buat Perpustakaan digital. Selama kuliah ini belum
pernah ada tugas pake PHP jadi ya gitu deh.. takut kelupaan .
Berikut screenshot dan sourcecodenya.
008
009
010 </tr>
011 <tr>
012
013
<td></td>
<td><input type="submit" name="submit" value="Hitung"></td>
014
<td></td>
015
016 </tr>
017
018 </table>
019 </form>
020
021 <?php
022 $ekspresi = $_POST['ekspresi'];
023 $jmleks = strlen($ekspresi);
024 $jmleks -= 1;
025
026 function derajat($tandaop)
027 {
028
if ($tandaop == '^')
029
030
$derajat = 3;
031
032
033
034
$derajat = 2;
035
036
037
038
$derajat = 1;
039
040
041
042
043
$derajat = 0;
}
046
047 for ($i=0; $i<=$jmleks; $i++)
048 {
049
050
051 }
052
053 $postfix = '';
054 $top1 = 0;
055 $top2 = 0;
056 for ($j=0; $j<=$jmleks; $j++)
057 {
058
$r = $data[$j];
if ($r != '*' && $r != '/' && $r != '+' && $r != '-' && $r != '^' && $r !=
059
'(' && $r != ')')
060
061
062
if ($j == $jmleks)
063
064
065
$top2 += 1;
$stack2[$top2] = $postfix;
066
$postfix = '';
067
068
069
070
071
$top1 += 1;
072
$stack1[$top1] = $r;
073
074
075
076
077
$top2 += 1;
$stack2[$top2] = $postfix;
078
$postfix = '';
079
080
081
082
083
$top2 += 1;
$stack2[$top2] = $stack1[$top1];
084
$top1 -= 1;
085
086
087
088
}
$top1 -= 1;
}
089
090
091
092
093
if ($data[$j-1] != ')')
094
095
$top2 += 1;
096
097
$stack2[$top2] = $postfix;
$postfix = '';
098
099
100
101
$top1 +=1;
102
$stack1[$top1] = $r;
103
104
else
105
106
107
$top2 +=1;
$stack2[$top2] =
108
$top1 -= 1;
109
110
111
$top1 +=1;
112
113
$stack1[$top1] = $r;
}
114
115
116 }
$stack1[$top1];
}
}
117
118 while ($top1 != 0)
119 {
120
121
$top2 += 1;
$stack2[$top2] = $stack1[$top1];
122
$top1 -= 1;
123 }
124
125 /*
126 for ($k = 1; $k <= $top2; $k++)
127 {
128 echo $stack2[$k]. "<br>". "" ;
129 }*/
130
131 $top3 = 0;
132 for ($k = 1; $k <= $top2; $k++)
133 {
134
135
$q = $stack2[$k];
if ($q != '+' && $q != '-' && $q != '*' && $q != '/' && $q != '^')
136
137
$top3 += 1;
138
$stack3[$top3] = $q;
139
140
141
142
switch ($q)
143
144
145
case '+':
$temp = $stack3[$top3-1] + $stack3[$top3];
146
break;
147
case '-':
148
149
break;
150
151
case '*':
$temp = $stack3[$top3-1] * $stack3[$top3];
152
break;
153
case '/':
154
155
break;
156
157
case '^':
$temp = $stack3[$top3-1] ^ $stack3[$top3];
158
break;
159
160
161
$top3 -= 1;
$stack3[$top3] = $temp;
162
163
164 }
165
166 $hasilhitung = $stack3[$top3];
167
168
171 ?>
172 </htm>
Bagi temen-temen yang pingin nyoba kalkulatornya bisa langsung copy sourcecode diatas dan
paste di notepad terus simpan dengan nama terserah misal : kalkulator.php
Atau langsung download di sini
terus letakkan di webserver lokal anda misal di /xampp/htdocs/kalkulator.php, Cara bukanya
adalah bukan Browser misal : Mozilla Firefox dan ketikkan http://localhost/kalkulator.php