Choose one node as the reference node
(usually the node with the most
branches, and/or a node that is at one end of an independent voltage source).
Label the remaining nodes with numbers 1, 2, ....
Assign variables to the unknown
"node voltages" v1, v2, ....
Each vk is the voltage rise
from the reference node to node k.
Write KCL at each nonreference node, with positive current
leaving each node.
(I will use the convention that positive current leaves the node.
However, the choice is arbitrary, as long as you apply your
convention consistently.)
In this step, you will need to use Ohm's law to
express the currents through the resistors in terms of the node
voltages.
If the circuit contains dependent sources,
find expressions for the controlling variables in terms of the node
voltages, and substitute these into the network equations,
yielding equations having only the node voltages as unknowns.
Solve the resulting set of simultaneous linear equations.
If desired, other voltages and currents in the circuit may
be computed from the node voltages.
Dealing with voltage sources:
Avoid writing equations that require the current
through a voltage source.
Voltage sources directly relate node voltages,
and sometimes reduce the number of simultaneous equations.
Supernodes allow you to write KCL at a larger node
(involving more than one node voltage).
Then voltage sources "inside" the supernode
provide another equation to relate the node voltages.