Your question is very vague, so will necessarily be the answer: Presumably you somewhere have some variables for each alien that hold its current position. Each frame you need to update those positions and render a new image with everything that moved now at those updated positions. If you've hardcoded the positions of everything the first thing you need to change is store the positions in variables.

This is more of a general programming/software engineering question, as such a general programming forum may be a better place to ask.

Please try to ask concrete questions, do not just dump some code on people and have them figure out what the heck the problem is - see Forum Posting Guidelines for suggestions how to ask good questions.
I've already mentioned that instead of hardcoded positions you should use variables. You could for example do something like this:

And for each alien in your game you allocate a variable of type Alien. In your render function you call drawAlien for each of them to draw them at their location. At the beginning of each frame you also call moveAlien for each one and calculate the position where they should be in this frame (probably based on the aliens movement direction and speed and how much time has elapsed since the last frame).

The next thing (I would do) would be to put your alien drawing code into a subroutine, something like 'Draw_Alien'. Then call that subroutine from another higher level routine. It would look something like this -

The Push and Pop matrix routines cause the glTranslates to only affect the drawing routines directly below them. Without them the glTranslate function that moves the alien would also move the cannon, which you wouldn't want. It is up to you to figure out what values to assign to x_aln, y_can, etc. This could be done computationally or in response to a GUI element or an input device (like the mouse). The motion variables could all be global, in which case you wouldn't have to call Display_Scene with any arguments. But this is not recommended.