If you want to code your own application that plot the magnitude response, you first need to extract the poles and zeros from your transfer function in the $Z$ domain. The process that follows can either be analytic or graphical. I will try to cover both, starting with the analytic approach, then graphical.
Extracting the poles and zeros
Taking your time domain equation. :
$$y[n] = 0.0976⋅x[n]+0.1952⋅x[n−1]+0.0976⋅x[n−2]+0.9429⋅y[n−1]−0.3334⋅y[n−2]$$
Transfer function in the Z domain is
$$H(z)=\frac{Y}{X}=\frac{0.0976+0.1952z^{-1}+0.0976z^{-2}}{1-0.9429z^{-1}+0.3334z^{-2}}=\frac{0.0976(1+2z^{-1}+1z^{-2})}{1-0.9429z^{-1}+0.3334z^{-2}}$$
Solving the numerator and denominator for $z=0$ will yield some poles,zeros and gains. I will not detail this step as this subject is widely covered. In your case, you will find:
$$zeros = \{-1, -1\}$$
$$poles = \{(0.4746 + 0.3289j), (0.4746 - 0.3289j)\}$$
$$K_{num}=0.0976$$
$$K_{denom}=1$$
The analytic approach
Once you have the poles and zeros, you can rewrite your transfer function in this different form :
$$H(z)=\frac{K_{num}}{K_{denom}}\cdot\frac{(z-zero_{1})(z-zero_{2})...(z-zero_{n})}{(z-pole_{1})(z-pole_{2})...(z-pole_{n})}$$
Or in a condensed form :
$$H(z) = \frac{K_{num}}{K_{denom}}\cdot\frac{\prod_{n=0}^{N_{zeros}}{(z-q_{n})} }{\prod_{n=0}^{N_{poles}}{(z-p_{n})}}$$
The magnitude response of your filter is basically the magnitude of your transfer function when $z=e^{j\omega}$. We can define $|H(z)|\biggr\rvert_{z=e^{j\omega}}$
You then get :
$$|H(z)|\biggr\rvert_{z=e^{j\omega}} = \biggr\rvert \frac{K_{num}}{K_{denom}}\cdot \frac{\prod_{n=0}^{N_{zeros}}{(e^{j\omega}-q_{n})} }{\prod_{n=0}^{N_{poles}}{(e^{j\omega}-p_{n})}}\biggr\rvert$$
Translate that into a code, and you get something like : (matlab example)
h = ones(1,n);
knum=0.0976
kdenom=1
%Zeros
for k=1:length(q)
v = exp(1i*w)-q(k);
h = h .* v;
end
%Poles
for k=1:length(p)
v = exp(1i*w)-p(k);
h = h ./ v;
end
h = h * knum/kdeom
plot(abs(h))
The graphical approach
What we will see here, is exactly what we just saw in the analytic approach, but we will try to visualize it a little bit. Let's plot you poles and zeros into the $Z$ plane:

The unit circle, or $z=e^{j\omega}$, contains all the frequencies from $\omega=0$ to $\omega=Nyquist=\frac{2\pi f_{s}}{2}$
In order to know the frequency response of your filter at a specific value of $\omega$. Draw a line from each poles/zeros to the corresponding point on the unit circle.
Take the products of the line length originating from a zero and divide by the product of the line length originating from a poles. You'll get the magnitude response of your filter.
In other word:
$$ |H(z)|\biggr\rvert_{z=e^{j\omega}} = \frac{d_{3}d_{4}}{d_{1}d_{2}}\cdot\frac{k_{num}}{k_{denom}}$$
Take few seconds to understand what we just did there, and you will see that it is exactly what the analytical approach suggests.
Finally
I wrote some matlab code to plot the frequency response of a filter not so long ago and I posted this question to get help getting this done. It might also help you.
Good luck
freqzcommand. – MBaz Feb 13 '17 at 22:06