datadamped =
Import["http://comsics.usm.my/tlyoon/teaching/ZCE111_1516SEM2/data/\
data_A6Q2.dat", "Data"];
max = datadamped[[#]] &@FindPeaks[datadamped[[All, 2]], 0][[All, 1]]
min = datadamped[[#]] &@FindPeaks[-datadamped[[All, 2]], 0][[All, 1]]
This gives you list of maximums and minimums. If you need a fit you probably want to simplify the fitting space and optimize for different fit parameters:
g = NonlinearModelFit[datadamped,
A Exp[-b x] Sin[c x + h], {A, b, c, h}, x]
Show[ListPlot[{datadamped, max, min},
PlotStyle -> {Blue, Red, Green}],
Plot[g[x], {x, 0, 5}, PlotStyle -> {{Dashed, Orange}}]]

Your data doesn't look real, since the fit was too good to be true :)
For real data you probably want to play with parameters for FindPeaks
.
If you trust your fit better than your data, you can find peaks from fitted function now:
minfit = {x, g[x]} /.
Solve[g'[x] == 0 && g''[x] > 0 && x > 0 && x < 5, x]
maxfit = {x, g[x]} /.
Solve[g'[x] == 0 && g''[x] < 0 && x > 0 && x < 5, x]
And finally you can use FindMinimum
if you really want to use this function:
FindMinimum[g[x], {x, 0}]
And it gives the same answer as minfit[[1]]
Now you probably want to find out your original parameters set $d,e$
params = g["BestFitParameters"]
Solve[-d e == b && Sqrt[1 - d^2] e == c /. params, {d, e}]
{A -> -0.5, b -> 0.628319, c -> -6.25169, h -> 4.71239}
{{d -> 0.1, e -> -6.28319}}
And $e$ really looks suspiciously close to $2\pi$
Plot[i[1, 0.01, 6, t, 1], {t, 0, 5}, PlotRange -> All]
, which returns this: image. $\endgroup$